Ce este Codul Hamming: Istorie, funcționare și aplicațiile sale

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





În sistemele digitale, datele transmise pentru comunicare poate fi corupt din cauza zgomotului extern și a oricăror alte defecțiuni fizice. Dacă datele transmise nu sunt potrivite cu datele de intrare date, atunci se numește „eroare”. Erorile de date pot șterge datele vitale din sistemele digitale. Transferul de date se va face sub formă de biți (0 și 1) în sistemele digitale. Dacă cineva din bit este schimbat, atunci performanța întregului sistem poate fi afectată. Dacă bitul ‘1’ este schimbat în bitul ‘0’ sau invers, atunci se numește bit error. Sunt diferite tipuri de erori cum ar fi erorile cu un singur bit, erori multiple și erori de explozie. În acest articol, discutăm corectarea și detectarea erorilor și codul de lovire.

Ce este detectarea și corectarea erorilor?

În comunicarea digitală, datele se vor pierde dacă există o eroare la transferul informațiilor dintr-un sistem / rețea în alt sistem / rețea. Deci, este important să găsiți și să corectați erorile. O eroare detectare și metodele de corecție sunt utilizate pentru a detecta și corecta erorile pentru o comunicare eficientă. Dacă se utilizează aceste metode, atunci datele pot fi transferate cu o precizie mai mare.




Detectarea erorilor este definită ca fiind metoda utilizată pentru a detecta erorile transmise de la emițător / expeditor la receptor în sistemele digitale. Codurile de redundanță sunt adăugate la date în timpul transmisiei pentru a găsi erorile. Acestea se numesc coduri de detectare a erorilor.

Corecția erorilor este corecția datelor transmise de la emițător la receptor. Corectarea erorilor se poate face în două tipuri.



Corecție de eroare înapoi

În acest tip de corectare a erorilor, receptorul solicită înapoi expeditorului să retransmită datele dacă receptorul detectează eroarea.

Corecție eroare înainte

dacă datele primite de receptor găsesc eroarea, atunci execută codurile de corectare a erorilor, pentru a corecta și recupera automat datele.


Dacă există „m” nr. De biți de date și „r” nr. De biți redundanți, atunci combinațiile de informații vor fi 2r.

2r> = m + r + 1

Tipuri de coduri de detectare a erorilor

Erorile din datele primite pot fi detectate folosind 3 tipuri de coduri de detectare a erorilor. Acestea sunt, verificarea parității, verificarea redundanței ciclice (CRC) și verificarea longitudinală a redundanței.

Verificare paritate

Bitul redundant numit bit de paritate este adăugat pentru a face numărul de biți par sau impar în caz de paritate pară sau paritate impar. Receptorul numără numărul de biți (1) într-un cadru pentru a adăuga bitul de paritate. Aceasta se numește verificarea parității. Dacă numărul 1 dintr-un cadru este egal, atunci paritatea uniformă este utilizată prin adăugarea bitului „1” cu valoare zero. În mod similar, din numărul 1 este impar, atunci paritatea impar este utilizată prin adăugarea bitului cu valoarea ‘1’.

Eroare detectata

eroare detectata

Prin urmare, este folosit pentru a se asigura că cadrul / data primită de receptor de la sursă nu este coruptă. În acest tip de detectare a erorilor, numărul 1 trebuie să fie egal în cadrul primit. Este foarte puțin costisitor printre toate tipurile de detectare a erorilor.

Verificarea longitudinală a redundanței (LRC)

când setul / blocul de biți sunt organizați, atunci metoda LRC poate fi utilizată pentru a verifica bitul de paritate în fiecare cadru. Ajută la trimiterea setului de biți de paritate împreună cu datele originale și verifică redundanța.

Verificare redundanță ciclică

tipul său este folosit pentru a detecta datele / cadrele primite de la sursă sunt valide sau nu. Implică în divizarea binară a datelor care ar trebui trimise și folosește polinoame (pentru a genera divizor). Inainte de transmisia , o operație de divizare este efectuată de către expeditor pe datele / biții / cadru pentru a calcula restul.

Verificare redundanță ciclică

verificare redundanță ciclică

În timpul transmiterii datelor reale de la expeditor, acesta adaugă restul la sfârșitul datelor reale. Combinația de date reale și restul se numește cuvânt de cod. Datele sunt transmise sub formă de cuvinte de cod. În acest proces, dacă datele sunt corupte, atunci datele vor fi respinse de către receptor, altfel vor fi acceptate.

Ce este Codul Hamming?

Codul Hamming este definit ca un cod liniar care este utilizat în procesul de detectare a erorilor până la 2 erori intermediare. De asemenea, este capabil să detecteze erori cu un singur bit. În această metodă, biții redundanți sunt adăugați la date / mesaj de către expeditor pentru a codifica datele. Pentru a face detectarea și corectarea erorilor, acești biți redundanți sunt adăugați în anumite poziții pentru procesul de corectare a erorilor.

Hamming-Code

hamming-code

Istoria codurilor Hamming

În 1950, Richard W. hamming a inventat codurile Hamming pentru a detecta și corecta erorile din date. După evoluția computerelor cu fiabilitate mai mare, el a introdus coduri de lovire pentru codurile de corectare cu 1 eroare și mai târziu a extins până la coduri de detectare a 2 erori. Codurile Hamming sunt create deoarece verificarea parității nu poate detecta și corecta erorile din date. Codurile Hamming sunt inserate pe orice lungime de bloc a datelor între datele reale și biții de redundanță. El a dezvoltat o serie de algoritmi pentru a lucra la problemele metodelor de corectare a erorilor, iar aceste coduri sunt utilizate pe scară largă în memoria ECC.

Procesul de codificare a unui mesaj folosind codul Hamming

Procesul de codificare a unui mesaj folosind un cod de trimitere de către expeditor include 3 pași.

Pasul 1: Primul pas este de a calcula numărul de biți redundanți dintr-un mesaj

  • De exemplu, dacă un mesaj conține „n” numărul de biți și „p” numărul de biți redundanți sunt adăugați la mesaj, atunci ‘np’ indică (n + p + 1) stări diferite.
  • Unde (n + p) reprezintă locația unei erori în fiecare poziție de bit
  • 1 (stare suplimentară) nu reprezintă nicio eroare.
  • Deoarece „p” indică 2 ^ p (2p) stări, care sunt egale cu stările (n + p + 1).

Pasul 2: Plasați biții redundanți în poziția exactă / corectă

biții „p” sunt introduși în pozițiile de biți care sunt puterea a 2 ca 1, 2, 4, 8, 16 etc. Aceste poziții de biți sunt indicate ca p1 (poziția 1), p2 (poziția 2), p3 (poziția 4), etc.

Pasul 3: Calculați valorile biților redundanți

  • Aici biții de paritate sunt folosiți pentru a calcula valorile biților redundanți.
  • Biții de paritate pot face numărul 1 dintr-un mesaj par sau impar.
  • Dacă numărul total de 1 dintr-un mesaj este egal, atunci se utilizează chiar paritatea
  • Dacă numărul total de 1 dintr-un mesaj este impar, atunci se utilizează paritatea impară.

Procesul de decriptare a unui mesaj în codul Hamming

Procesul de decriptare a unui mesaj primit de la expeditor de către receptor utilizând codul de ciocănire include pașii următori. Acest proces nu este altceva decât recalcularea pentru a detecta și corecta erorile dintr-un mesaj.

Pasul 1: Numărați numărul de biți redundanți

Formula pentru a codifica mesajul folosind biți redundanți este,

2p≥ n + p + 1

Pasul 2: corectați pozițiile tuturor biților redundanți

„P” nr. De biți redundanți sunt așezați într-o poziție de putere de biți de 2, cum ar fi 1,2,4,8,16,32 etc.

Pasul 3: verificarea parității (paritate impară și paritate pară)

Biții de paritate sunt calculați pe baza numărului 1 în biți de date și biți redundanți.

De exemplu

Paritatea p1 ar fi 1, 3, 5, 7, 9, 11, ...

Paritatea lui p2 ar fi 2, 3, 6, 7, 10, 11, ...

Paritatea p3 ar fi 4-7, 12-15, 20-23, ...

Avantajele Codului Hamming

Principalul avantaj al utilizării unui cod de hamming este rentabil dacă un flux de date conține erori pe un singur bit.

  • Poate oferi detectarea erorilor și indică, de asemenea, bitul care conține o eroare pentru corectare.
  • Codurile Hamming sunt foarte ușor de utilizat și cel mai bine în memoria computerului și corectarea și detectarea erorilor pe un singur bit.

Dezavantaje ale codului Hamming

  • Este cel mai bun numai pentru corectarea și detectarea erorilor pe un singur bit. Dacă există erori de mai mulți biți, atunci întregul poate fi corupt.
  • Algoritmul codului Hamming poate rezolva numai erorile cu un singur bit.

Aplicații ale codurilor Hamming

Codurile Hamming sunt utilizate în,

  • Tehnica de calcul
  • Telecomunicații
  • Comprimarea datelor
  • Rezolvarea puzzle-urilor și codurilor turbo
  • Sateliți
  • CAM cu plasmă
  • Firele ecranate
  • Modemuri
  • Memoria computerului
  • Deschideți conectorii
  • Sisteme integrate și procesor

Întrebări frecvente

1). Poate codul Hamming să detecteze erori pe 2 biți?

Codurile Hamming pot detecta și corecta erori de până la 2 biți într-un flux de date

2). Cum remediați codul Hamming?

Codurile Hamming sunt plasate în orice lungime de date între datele reale și biții redundanți. Aceste coduri sunt locuri cu o distanță minimă de 3 biți

3). Care este codul de paritate?

Codul de paritate sau bitul de paritate adaugă un bit la cadrul primit (datele conțin 1 și 0) pentru a face numărul total de biți (1) par sau impar.

4). Care este distanța Hamming între date?

Distanța de ciocănire între cele două fluxuri de date diferite de lungime egală este de 1.

Distanța de lovire între două șiruri de date de lungime egală poate fi calculată utilizând operația XOR.

De exemplu, a = 11011001

b = 10011101

Distanța de lovire poate fi calculată ca,

11011001 ⊕ 10011101 = 01000100 (numărul de 1 biți sunt 2)

Distanța de lovitură indică numărul 1 în fluxul de date rezultat

Deci, d (11011001, 10011101) = 2

În mod similar, 010 ⊕ 011 = 001, d (010, 011) = 1.

5). Codul Hamming este ciclic?

Da, codurile de lovire sunt echivalente cu codurile ciclice care pot fi utilizate ca coduri de detectare a erorilor.

Astfel este vorba despre corectarea și detectarea erorilor, tipurile de detectare a erorilor, coduri de ciocănit , procesul de criptare și decriptare a mesajului folosind coduri de hamming, aplicații ale codurilor hamming, avantaje și dezavantaje ale codurilor Hamming. Iată o întrebare pentru dumneavoastră: „Care sunt aplicațiile de detectare și corectare a erorilor?”