Un simplu cod hamamming

Ei bine, atunci. Sarcina. Utilizați codul Hamming pentru un mesaj binar a cărui lungime a cuvântului este de 16 biți. Luăm mesajul inițial "0100010000111101". Cu alte cuvinte, în cuvântul 16 "litere", fiecare poate lua valoarea "0" sau "1".







de codificare

Mai întâi, în mesajul original, adăugăm biți de control și le setăm la zero.
Biti-urile de control sunt situate în acele numere de biți care sunt egale cu puterile celor două (deoarece alfabetul este binar).
Asta este. Două la puterea de zero este o unitate, două la o putere de 1 = doi, doi la o putere de 2 = patru, și doi la o putere de 3 = opt, doi la o putere de 4 = 16
Deci biții de control vor fi în "litere" (biți) sub numerele 1, 2, 4, 8 și 16.

Restul biților suprascrie mesajul original.

Se poate observa că lungimea "cuvântului" datorată acestei redundanțe a crescut cu cinci "litere". În acest caz, bineînțeles. La tine numărul de biți suplimentari va depinde de lungimea "cuvântului" original.

Acum trebuie să calculam aceste biți de control.
Fiecare bit de control cu ​​numărul N "controlează" o secvență continuă de biți N, fiecare N de biți.

Aici în imagine este notat cu X (X), ce biți ar trebui să fie folosite pentru a calcula primul bit de control (cu numărul "1").

Pentru a calcula bitul de control, trebuie doar să adunăm toate "literele" cuvântului nostru pe care îl controlează și apoi să luăm o decizie greu: dacă suma este egală, atunci vom scrie zero ca rezultat și dacă cea ciudată este una.

Calculăm primul bit.
Pliați biții sub numerele 3,5,7,9,11,13,15,17,19,21
Aceasta va fi 0 + 1 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 = 1 + 1 + 1 + 1 + 1 = 5






Sa dovedit 5 (cinci). Suma este ciudată (nu este complet împărțită de două). Deci, vom scrie primul bit la unul:

Acum calculați numărul de biți de control 2. Pentru aceasta, va trebui să găsiți suma celor două biți unul după altul în mod continuu, la fiecare două biți. Am observat, de asemenea, acești biți în imagine.

Adică, acum vom însuma biții, începând cu al treilea după număr, apoi cei care sunt marcați cu un X (X).
Numerele lor sunt 3, 6, 7, 10, 11, 14, 15, 18, 19.
Aceasta va fi 0 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 1 = 4
Patru - numărul este echivalent, apoi lăsăm zero în al doilea bit.

Să mergem mai departe pentru a calcula cel de-al treilea bit de control. Dar acesta este controlul nostru - al treilea. Și în mesaj acest bit este scris sub numărul 4 - patru.

Așa că vom folosi toate biții care se încadrează în regula noastră, începând cu cel de-al cincilea.
Și acestea sunt biți sub numerele 5, 6, 7, 12, 13, 14, 15, 20, 21.
Împingeți-le: 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 = 3
Ca rezultat, avem un număr impar, deci scriem o unitate în bitul nostru de control.

Nu rămâne nimic - calculați cei doi biți de control rămași. care sunt numerele 8 și 16.

În a opta părăsim zero, deoarece în secvența pe care o folosim pentru a calcula, există două unități care dau un număr par în total.

Și în al 16-lea, suma biților este egală, lăsând zero:

Ca rezultat, am primit un cuvânt cu un cod Hamming care conține biți redundanți (în suma de 21): "100110000100001011101".

decodare

Și acum imaginați-vă că am primit un mesaj cu o eroare. Aici este "100110001100001011101".
Știm că biții excesivi îi sunt adăugați prin algoritmul Hamming și trebuie să verificăm dacă există sau nu o eroare în el.

Pentru a face acest lucru, procedați după cum urmează. Mai întâi, recalculați toți biții de control din algoritmul anterior.
Pentru a face acest lucru, mai întâi zero toți biții care sunt pe numărul de puteri de două:

În primul rând, lăsăm zero, deoarece în biții controlați un număr par.

Calculăm toți ceilalți biți de control conform algoritmului descris mai sus (sunt prea leneș să o descriu din nou aici) și obținem că biții de control nu se potrivesc cu numerele 1 și 8:

Acum adăugați numerele acestor biți de control: 1 + 8 și obțineți 9 - numărul de biți, în care eroarea a izbucnit! Ura! Acum vom schimba doar al nouălea bit la cel de-al optulea - de la unul la zero, - și vom primi mesajul original!







Articole similare

Trimiteți-le prietenilor: