Как да изчислите кода на Hamming

Кодовете на 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, който съдържа 3 такива, така че бит 2 е настроен на 1. Бит 4: 0 1 1 _ 1 0 1 _ 0 0 1 0 revise _101, 0, който съдържа 2 такива, така че бит 4 е настроен на 0. Бит 8: 0 1 1 0 1 0 1 _ 0 0 1 0 ревизира _0010, само с един, зададен бит 8 като 1.

Така кодираната дума е 011010110010.

Стъпка 4

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

Стъпка 5

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

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