Què és el codi Hamming: història, funcionament i les seves aplicacions

Proveu El Nostre Instrument Per Eliminar Problemes





En sistemes digitals, les dades transmeses per a comunicació es pot danyar a causa de sorolls externs i qualsevol altra fallada física. Si les dades transmeses no coincideixen amb les dades d'entrada donades, s'anomena 'error'. Els errors de dades poden eliminar dades vitals dels sistemes digitals. La transferència de dades es realitzarà en forma de bits (0 i 1) en sistemes digitals. Si es canvia algú del bit, es pot veure afectat el rendiment de tot el sistema. Si el bit ‘1’ es canvia al bit ‘0’ o viceversa, s’anomena error de bit. Hi ha diferents tipus d’errors com ara errors d’un sol bit, diversos errors i errors de ràfega. En aquest article, analitzem la correcció i detecció d'errors i el codi de martell.

Què és la detecció i correcció d'errors?

En la comunicació digital, les dades es perdran si hi ha un error en la transferència d’informació d’un sistema / xarxa a un altre sistema / xarxa. Per tant, és important trobar i corregir errors. Algun error detecció i s’utilitzen mètodes de correcció per detectar i corregir els errors per a una comunicació eficaç. Si s’utilitzen aquests mètodes, les dades es poden transferir amb més precisió.




La detecció d’errors es defineix com el mètode utilitzat per detectar els errors transmesos del transmissor / remitent al receptor en sistemes digitals. Els codis de redundància s’afegeixen a les dades durant la transmissió per trobar els errors. S’anomenen codis de detecció d’errors.

La correcció d'errors és la correcció de dades transmeses des del transmissor al receptor. La correcció d'errors es pot fer en dos tipus.



Correcció d'errors cap enrere

En aquest tipus de correcció d'errors, el receptor demana al remitent que retransmeti les dades si el receptor detecta l'error.

Correcció d'errors de reenviament

si les dades rebudes pel receptor detecten l'error, llavors executa els codis de correcció d'errors per corregir i recuperar les dades automàticament.


Si hi ha ‘m’ de bits de dades i ‘r’ de bits redundants, les combinacions d’informació seran 2r.

2r> = m + r + 1

Tipus de codis de detecció d’errors

Els errors de les dades rebudes es poden detectar mitjançant 3 tipus de codis de detecció d'errors. Són, comprovació de paritat, comprovació de redundància cíclica (CRC) i comprovació de redundància longitudinal.

Comitat de paritat

El bit redundant anomenat bit de paritat s’afegeix per fer que el nombre de bits sigui parell o senar en cas de paritat parella o paritat senar. El receptor compta el número de bits (1) en un marc per afegir el bit de paritat. Això s’anomena comprovació de la paritat. Si el número 1 d’un marc és parell, s’utilitza la paritat parell afegint el bit ‘1’ amb valor zero. De la mateixa manera, del número 1 és senar, llavors s’utilitza la paritat senyal afegint el bit amb el valor ‘1’.

Detecció d

detecció d'errors

Per tant, s'utilitza per assegurar-se que el fotograma / la data rebuda pel receptor de la font no es corrompi. En aquest tipus de detecció d’errors, el número 1 hauria d’estar igual al marc rebut. És molt menys costós entre tots els tipus de detecció d'errors.

Comprovació de redundància longitudinal (LRC)

quan s’organitza el conjunt / bloc de bits, es pot utilitzar el mètode LRC per comprovar el bit de paritat en cada fotograma. Ajuda a enviar el conjunt de bits de paritat juntament amb les dades originals i comprova la redundància.

Comprovació de redundància cíclica

el seu tipus s'utilitza per detectar que les dades / fotogrames rebuts de la font són vàlids o no. Implica en la divisió binària de les dades que s’han d’enviar i utilitza polinomis (per generar divisors). Abans la transmissió , el remitent realitza una operació de divisió sobre les dades / bits / trama per calcular la resta.

Comprovació de redundància cíclica

comprovació-redundància cíclica

Durant la transmissió de dades reals del remitent, afegeix la resta al final de les dades reals. La combinació de dades reals i la resta es diu paraula de codi. Les dades es transmeten en forma de paraules clau. En aquest procés, si les dades es corrompen, les dades seran rebutjades pel receptor, en cas contrari s’acceptaran.

Què és el codi Hamming?

El codi Hamming es defineix com un codi lineal que s’utilitza en el procés de detecció d’errors fins a dos errors intermedis. També és capaç de detectar errors d’un sol bit. En aquest mètode, el remitent afegeix els bits redundants a les dades / missatges per codificar les dades. Per tal de fer la detecció i correcció d'errors, aquests bits redundants s'afegeixen en determinades posicions per al procés de correcció d'errors.

Hamming-Code

hamming-code

Història dels codis Hamming

El 1950, Richard W. hamming va inventar codis Hamming per detectar i corregir els errors de les dades. Després de l'evolució dels ordinadors amb una major fiabilitat, va introduir codis de martell per a codis de correcció d'errors 1 i més endavant va ampliar fins a codis de detecció de 2 errors. Els codis Hamming es creen perquè la comprovació de la paritat no pot detectar i corregir errors a les dades. Els codis Hamming s’insereixen a qualsevol longitud de bloc de dades entre dades reals i bits de redundància. Va desenvolupar una sèrie d’algoritmes per treballar els problemes dels mètodes de correcció d’errors i aquests codis són àmpliament utilitzats a la memòria ECC.

Procés de codificació d'un missatge mitjançant el codi Hamming

El procés de codificació d'un missatge mitjançant un codi de martell per part del remitent inclou 3 passos.

Pas 1: El primer pas és calcular el nombre de bits redundants d’un missatge

  • Per exemple, si un missatge conté 'n' núm. De bits i 'p' núm. De bits redundants s'afegeixen al missatge, llavors 'np' indica (n + p + 1) estats diferents.
  • On (n + p) representa la ubicació d'un error en cada posició de bit
  • 1 (estat extra) no representa cap error.
  • Atès que ‘p’ indica 2 ^ p (2p) estats, que són iguals a (n + p + 1) estats.

Pas 2: Col·loqueu els bits redundants a la posició exacta / correcta

Els bits 'p' s'insereixen a les posicions de bits que són la potència de 2 com 1, 2, 4, 8, 16, etc. Aquestes posicions de bits s'indiquen com a p1 (posició 1), p2 (posició 2), p3 (posició) 4), etc.

Pas 3: Calculeu els valors dels bits redundants

  • Aquí s’utilitzen bits de paritat per calcular els valors dels bits redundants.
  • Els bits de paritat poden fer que el número 1 en un missatge sigui parell o senar.
  • Si el número total d’1 d’un missatge és parell, s’utilitza la paritat
  • Si el número total d’1 d’un missatge és senar, s’utilitza la paritat senar.

Procés de desxifratge d'un missatge a Hamming Code

El procés de desxifrar un missatge rebut del remitent pel receptor mitjançant el codi de martell inclou els passos següents. Aquest procés no és més que un recàlcul per detectar i corregir els errors d’un missatge.

Pas 1: Compteu el nombre de bits redundants

La fórmula per codificar el missatge mitjançant bits redundants és,

2p≥ n + p + 1

Pas 2: corregiu les posicions de tots els bits redundants

El número 'p' de bits redundants es col·loca en una posició de potència de bits de 2 com 1,2,4,8,16,32, etc.

Pas 3: comprovació de la paritat (paritat imparella i paritat parella)

Els bits de paritat es calculen en funció del nombre d’1 en bits de dades i bits redundants.

Per exemple

La paritat de p1 seria 1, 3, 5, 7, 9, 11, ...

La paritat de p2 seria 2, 3, 6, 7, 10, 11, ...

La paritat de p3 seria 4-7, 12-15, 20-23, ...

Avantatges de Hamming Code

El principal avantatge d’utilitzar un codi de martell és rendible si un flux de dades conté errors d’un sol bit.

  • Pot proporcionar detecció d'errors i també indica el bit que conté un error per a la correcció.
  • Els codis Hamming són molt fàcils d’utilitzar a la memòria de l’ordinador i a la correcció i detecció d’errors d’un sol bit.

Desavantatges de Hamming Code

  • És millor només per a la correcció i detecció d'errors d'un sol bit. Si hi ha errors de diversos bits, es pot danyar la totalitat.
  • L’algorisme del codi Hamming només pot resoldre els errors d’un sol bit.

Aplicacions dels codis Hamming

S'utilitzen codis Hamming a,

  • Informàtica
  • Telecomunicacions
  • Compressió de dades
  • Resolució de trencaclosques i codis turbo
  • Satèl·lits
  • CAM de plasma
  • Filferros apantallats
  • Mòdems
  • Memòria de l'ordinador
  • Connectors oberts
  • Sistemes incrustats i processador

Preguntes freqüents

1). El codi Hamming pot detectar errors de 2 bits?

Els codis Hamming poden detectar i corregir errors de fins a 2 bits en un flux de dades

2). Com es corregeix el codi Hamming?

Els codis Hamming es col·loquen en qualsevol longitud de dades entre les dades reals i els bits redundants. Aquests codis són llocs amb una distància mínima de 3 bits

3). Què és el codi de paritat?

El codi de paritat o bit de paritat afegeix un bit al marc rebut (les dades contenen 1 i 0) per fer que el nombre total de bits (1) sigui parell o senar.

4). Quina és la distància de Hamming entre les dades?

La distància de martellatge entre els dos fluxos de dades diferents de la mateixa longitud és de 1.

La distància de martellatge entre dues cadenes de dades d’igual longitud es pot calcular mitjançant l’operació XOR.

Per exemple, a = 11011001

b = 10011101

La distància de percussió es pot calcular com:

11011001 ⊕ 10011101 = 01000100 (el nombre d'1 bits són 2)

La distància de martellatge indica el número d’1 al flux de dades resultant

Per tant, d (11011001, 10011101) = 2

De la mateixa manera, 010 ⊕ 011 = 001, d (010, 011) = 1.

5). El codi Hamming és cíclic?

Sí, els codis de martell són equivalents als codis cíclics que es poden utilitzar com a codis de detecció d'errors.

Per tant, es tracta de correcció i detecció d’errors, tipus de detecció d’errors, codis de martell , el procés de xifrar i desxifrar el missatge mitjançant codis de martellatge, aplicacions de codis de martellat, avantatges i desavantatges dels codis de martellat. Aquí teniu una pregunta: 'Quines són les aplicacions de detecció i correcció d'errors?'