Conţinut
Codurile Hamming sunt utilizate pentru a insera informații de corectare a erorilor în fluxurile de date. Codurile sunt concepute astfel încât o eroare nu numai că este detectată, ci și corectată. Adăugarea informațiilor de corectare a erorilor mărește cantitatea de date, dar crește și fiabilitatea comunicațiilor pe suporturi media cu rate de eroare ridicate.
Codarea cu ciocan poate fi complicată de implementat, dar se poate face foarte repede folosind trucuri aritmetice la nivel de biți. Acest lucru permite crearea unui sistem de corecție a erorilor util și de mare viteză, care să fie utilizat în aplicații încorporate.
Pasul 1
Creați cuvântul de date. Orice bit cu o poziție care are o putere de doi (primul, al doilea, al patrulea etc.) trebuie rezervat pentru informații de paritate. Utilizați atât timp cât este necesar pentru ca cuvântul să aibă datele originale și biții de paritate.
Exemplu:
1 1 0 1 0 0 1 0 devine _ _ 1 _ 1 0 1 _ 0 0 1 0
Biții originali rămân în aceeași ordine, dar au fost răspândiți pentru a insera biții de paritate.
Pasul 2
Calculați primul bit de paritate. Începând cu primul bit, un bit este citit și apoi un bit este omis și procedura se repetă până la sfârșit. Între timp, se numără numărul celor găsite. Bitele de paritate nu contează în acest proces.
Dacă numărul celor este par, setați primul bit la zero. În caz contrar, setați-l la unul.
Exemplu:
Biții 1, 3, 5, 7, 9 și 11 din _ _ 1 _ 1 0 1 _ 0 0 1 0, _11101, conțin patru. Acest lucru este egal, astfel încât primul bit este setat la zero: 0 _ 1 _ 1 0 1 _ 0 0 1 0
Pasul 3
Calculați restul de biți de paritate. Începând cu al doilea bit, se citesc doi biți și apoi se omit doi biți și procedura se repetă până la sfârșit. Al patrulea bit citește patru biți, omite încă patru, începând cu bitul patru. Același tipar este urmat de toți biții de paritate, până când sunt calculați cu toții.
Exemplu:
Bit 2: 0 _ 1 _ 1 0 1 _ 0 0 1 0 verifică _1, 01, 01, care conțin trei, deci bitul 2 este setat la unul. Bitul 4: _ 0 1 1 1 0 1 _ 0 0 1 0 verifică _101, 0, care conține două, deci bitul 4 este setat la zero. Bitul 8: 0 1 1 0 1 0 1 _ 0 0 1 0 verifică _0010, care conține doar unul, deci bitul 8 este setat la unul.
Prin urmare, cuvântul este codificat ca 011010110010.
Pasul 4
Confirmați cuvântul. Dacă un cuvânt este corupt, biții de paritate nu se vor potrivi cu ceea ce se așteaptă. Pentru a confirma că cuvântul nu este corupt, calculați biții de paritate folosind pașii doi și trei. Dacă biții nu sunt aceiași, înregistrați pozițiile lor.
Pasul 5
Corectați bitul greșit. Dacă găsiți biți de paritate incorecte, pur și simplu adăugați pozițiile biților. Valoarea sumă este poziția bitului incorect. Modificați valoarea bitului în această poziție.
De exemplu, dacă biții de paritate incorecți sunt unul și patru, modificarea valorii celui de-al cincilea bit va corecta eroarea.