Cum se calculează codul Hamming
Pasul 1
Creați cuvântul de date. Orice bit cu o poziție care este o putere de două (primul, al doilea, al patrulea, etc.) trebuie să fie rezervat pentru informația parității. Utilizați lungimea unui cuvânt de care aveți nevoie pentru a vă adapta sursei de date și biților de paritate.
De exemplu:
1 1 0 1 0 0 1 0 devine _ _ 1 _ 1 0 1 _ 0 0 1 0
Bitii rămân în aceeași ordine, dar au fost extinși pentru a acomoda biții de paritate.
Pasul 2
Calculați mai întâi bitul de paritate. Începând cu primul bit, citiți un pic, apoi săriți puțin și repetați operația, luând în considerare numărul celor găsite. Paritii de biți sunt numiți ca zerouri.
Dacă numărul celor este egal, puneți primul bit ca zero. În caz contrar, puneți-l ca unul.
De exemplu:
Biturile 1, 3, 5, 7, 9 și 11, din __ 1 _ 1 0 1 _ 0 0 1 0, _11101, conțin patru. Aceasta este chiar, deci primul bit este setat la zero: 0 _ 1 _ 1 0 1 _ 0 0 1 0.
Pasul 3
Calculează biți de paritate rămași. Bitul doi citește doi biți din bitul doi, apoi sare două și repetă. Bitul patru citește patru biți, apoi sare patru și începe cu bitul patru. Continuați cu acest model până când nu mai sunt biți de paritate rămași pentru a calcula.
De exemplu:
Bit 2: 0 _ 1 _ 1 0 1 _ 0 0 1 0 revizui _1, 01, 01, care conține 3, deci bitul 2 este setat la 1. Bit 4: 0 1 1 _ 1 0 1 _ 0 0 1 0 revizuiește _101, 0, care conține 2, deci bitul 4 este setat la 0. Bit 8: 0 1 1 0 1 0 1 _ 0 0 1 0 revizui _0010, cu doar unu, bitul setat 8 ca 1.
Prin urmare, cuvântul codificat este 011010110010.
Pasul 4
Confirmați cuvântul. Dacă un cuvânt este corupt, biți de paritate nu se vor potrivi cu ceea ce se așteaptă. Pentru a confirma că un cuvânt nu este corupt, trebuie doar să calculați biți de paritate cu pași doi și trei. Dacă vreunul dintre biți nu se potrivește, înregistrați pozițiile.
Pasul 5
Fixați bitul rău. Dacă găsiți biți de paritate incorect, adăugați pur și simplu pozițiile biților. Suma este poziția bitului incorect. Mutați valoarea bitului în acea poziție.
De exemplu, dacă biții de paritate unul și patru sunt incorecte, răsturnați valoarea celui de-al cincilea bit pentru a corecta eroarea.