Как да изчислите кода на 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
Коригирайте лошия бит. Ако откриете неправилни бита за паритет, просто добавете позициите на битовете. Сумата е позицията на неправилния бит. Преместете стойността на бита в тази позиция.
Например, ако паритет битове един и четири са неправилни, обърнете стойността на петия пети бит, за да коригирате грешката.