Как да изчислим кода на Хаминг

Автор: John Webb
Дата На Създаване: 15 Август 2021
Дата На Актуализиране: 10 Може 2024
Anonim
Богатый Школьник Против Бедного ВСЕ СЕРИИ ПОДРЯД или Каждый Бравлер Такой
Видео: Богатый Школьник Против Бедного ВСЕ СЕРИИ ПОДРЯД или Каждый Бравлер Такой

Съдържание

Хаминг кодовете се използват за вмъкване на информация за коригиране на грешки в потоците от данни. Кодовете са проектирани така, че грешка не само да бъде открита, но и коригирана. Добавянето на информация за коригиране на грешки увеличава количеството данни, но също така увеличава надеждността на комуникациите през носители с висок процент грешки.

Кодирането на Hamming може да бъде сложно за изпълнение, но може да се направи много бързо, като се използват аритметични трикове на ниво бит. Това позволява създаването на полезна и високоскоростна система за корекция на грешки, която да се използва във вградени приложения.

Етап 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

Коригирайте грешния бит. Ако откриете неправилни битове за четност, просто добавете позициите на битовете. Стойността на сумата е позицията на неправилния бит. Променете битовата стойност в тази позиция.

Например, ако неправилните битове за четност са един и четири, промяната на стойността на петия бит ще коригира грешката.