Ce este un cod Hamming?

Un cod Hamming este o metodă de detectare și corectare a erorilor într-o transmisie binară. Face acest lucru prin includerea unor cifre binare suplimentare în secvența care sunt utilizate pentru verificare, precum și a unui algoritm care oferă logica de detecție. Un astfel de cod este capabil să găsească două erori în orice secvență de biți și să repare un bit care ar putea fi incorect. Codul Hamming cel mai frecvent referit este cunoscut sub numele de Hamming(7,4), unde cei patru indică numărul inițial de biți de pornire și cei șapte reprezintă numărul total de biți din secvența după ce au fost incluși biții de verificare suplimentari.

Tehnica și-a luat numele de la creatorul său, Richard Hamming, care a publicat metoda în 1950. Modul în care funcționează codul Hamming este prin preluarea unui șir de biți și inserarea de biți de verificare suplimentari, denumiți biți de paritate, în secvență. Biții de verificare sunt întotdeauna injectați într-o poziție care este o putere de doi, astfel încât orice număr de biți poate fi verificat prin includerea de biți de paritate suplimentari. Aceasta poate continua până când ultimul bit de paritate adăugat în secvență se află într-o poziție care este o putere de doi care este mai mică sau egală cu poziția finală din secvență.

Cu toți biții de paritate la locul lor, pozițiile rămase sunt biții de date actuali. Având în vedere exemplul pe patru biți, pozițiile de biți unu, doi și patru ar fi biții de paritate, în timp ce pozițiile trei, cinci, șase și șapte sunt datele. Odată ce această secvență a fost stabilită, logica codului Hamming merge la lucru.

Într-un cod Hamming, fiecare dintre biții de paritate care au fost adăugați la secvență sunt utilizați pentru a verifica unele dintre pozițiile de biți de care sunt aproape, inclusiv ei înșiși. Bitul de paritate din poziția unu verifică fiecare poziție de biți, care este în esență fiecare poziție impară din secvență. Al doilea bit de paritate, în poziția doi, verifică pozițiile doi și trei, apoi omite două poziții, verifică încă două poziții, omite încă două și așa mai departe. Dacă există un bit de paritate în poziția patru, acesta acționează în mod similar prin aceea că verifică pozițiile patru până la șapte, apoi omite patru poziții, verifică încă patru și mai departe. Fiecare bit de paritate din secvență continuă în acest mod pe parcursul întregii secvențe.

Procesul prin care un cod Hamming detectează și corectează o eroare este prin adunarea biților din secvența de verificare pentru fiecare verificare de paritate, fiecare dintre acestea trebuie să iasă un număr par. Având în vedere exemplul pe șapte biți, pentru prima verificare de paritate, biții unu, trei, cinci și șapte sunt adunați. Dacă totalul este un număr par, paritatea se verifică, dar dacă totalul este impar, atunci există o eroare. Deoarece verificările de paritate se suprapun, vor apărea două astfel de erori. Când pozițiile biților cu două parități care nu reușesc să obțină totaluri egale sunt adăugate împreună, va dezvălui bitul care trebuie corectat.

În exemplul de cod Hamming pe șapte biți, luați în considerare că bitul din poziția numărul cinci este incorect. Suma biților din pozițiile unu, trei, cinci și șapte va apărea ca un număr impar, la fel ca suma biților din pozițiile patru până la șapte. Aceasta indică faptul că verificările de paritate pentru biții de verificare din pozițiile unu și patru au eșuat. Când se adună unul și patru, totalul este cinci, care este poziția bitului incorect din transmisie care trebuie corectat.