Како израчунати Хамингов код

Аутор: Rachel Coleman
Датум Стварања: 24 Јануар 2021
Ажурирати Датум: 17 Може 2024
Anonim
Код Хэмминга
Видео: Код Хэмминга

Садржај

Хамминг кодови се користе за уметање информација о исправљању грешака у токове података. Кодови су дизајнирани тако да се грешка не само открије, већ и исправи. Додавање информација о исправљању грешака повећава количину података, али такође повећава поузданост комуникације преко медија са великом стопом грешака.

Хаммингово кодирање може бити сложено за примену, али се то може учинити врло брзо помоћу аритметичких трикова на нивоу битова. То омогућава стварање корисног система за корекцију грешака велике брзине који ће се користити у уграђеним апликацијама.

Корак 1

Направите реч података. Било који бит са положајем који је степен двојке (први, други, четврти, итд.) Мора бити резервисан за информације о паритету. Користите онолико дуго колико је потребно да реч има оригиналне податке и битове паритета.


Пример:

1 1 0 1 0 0 1 0 постаје _ _ 1 _ 1 0 1 _ 0 0 1 0

Оригинални битови остају у истом редоследу, али су раширени да би се уметнули битови паритета.

Корак 2

Израчунајте први бит парности. Почевши од првог бита, мало се чита, а затим се мало прескаче и поступак се понавља до краја. У међувремену се броји број пронађених. Битови паритета се не рачунају у овом процесу.

Ако је број оних паран, поставите први бит на нулу. У супротном, подесите га на један.

Пример:

Битови 1, 3, 5, 7, 9 и 11 од _ _ 1 _ 1 0 1 _ 0 0 1 0, _11101, садрже четири јединице. Ово је парно, па је први бит постављен на нулу: 0 _ 1 _ 1 0 1 _ 0 0 1 0

3. корак

Израчунајте преостале битове паритета. Почевши од другог бита, читају се два бита, а затим се прескачу два бита и поступак се понавља до краја. Четврти бит чита четири бита, прескаче још четири, почевши од бита четири. Исти образац прате сви битови паритета, све док се сви не израчунају.


Пример:

Бит 2: 0 _ 1 _ 1 0 1 _ 0 0 1 0 проверава _1, 01, 01, који садрже три јединице, па је бит 2 постављен на један. Бит 4: _ 0 1 1 1 0 1 _ 0 0 1 0 проверава _101, 0, који садржи две јединице, па је бит 4 постављен на нулу. Бит 8: 0 1 1 0 1 0 1 _ 0 0 1 0 проверава _0010, који садржи само један, па је бит 8 постављен на један.

Реч је према томе шифрирана као 011010110010.

4. корак

Потврдите реч. Ако је реч оштећена, битови паритета се неће подударати са очекиваним. Да бисте потврдили да реч није оштећена, само израчунајте паритетне битове помоћу корака два и три. Ако битови нису исти, запишите њихове положаје.

Корак 5

Исправите погрешан бит. Ако пронађете нетачне битове паритета, једноставно додајте положаје битова. Вредност збира је положај нетачног бита. Промените вредност бита у овом положају.

На пример, ако су нетачни битови паритета један и четири, промена вредности петог бита исправиће грешку.