Wat is Hamming-code: geschiedenis, werking en toepassingen

Probeer Ons Instrument Voor Het Oplossen Van Problemen





In digitale systemen worden de verzonden gegevens voor communicatie kan worden beschadigd door externe ruis en andere fysieke storingen. Als de verzonden gegevens niet overeenkomen met de opgegeven invoergegevens, wordt dit een ‘fout’ genoemd. De datafouten kunnen vitale data in digitale systemen wissen. De gegevensoverdracht vindt plaats in de vorm van bits (0 en 1) in digitale systemen. Als een van de bits wordt gewijzigd, kunnen de prestaties van het hele systeem worden beïnvloed. Als bit ‘1’ wordt gewijzigd in bit ‘0’ of vice versa, wordt dit bitfout genoemd. Er zijn verschillende soorten fouten zoals enkele bitfouten, meerdere fouten en burst-fouten. In dit artikel bespreken we foutcorrectie en -detectie en hamming-code.

Wat is foutdetectie en -correctie?

Bij digitale communicatie gaan de gegevens verloren als er een fout optreedt bij de overdracht van informatie van het ene systeem / netwerk naar het andere systeem / netwerk. Het is dus belangrijk om fouten te vinden en te corrigeren. Een fout detectie en correctiemethoden worden gebruikt om de fouten op te sporen en te corrigeren voor effectieve communicatie. Als deze methoden worden gebruikt, kunnen de gegevens met een hogere nauwkeurigheid worden overgedragen.




Foutdetectie wordt gedefinieerd als de methode die wordt gebruikt om de fouten te detecteren die in digitale systemen van zender / zender naar ontvanger worden verzonden. Redundantiecodes worden tijdens de verzending aan de gegevens toegevoegd om de fouten op te sporen. Dit worden foutdetectiecodes genoemd.

Foutcorrectie is de correctie van gegevens die van zender naar ontvanger worden verzonden. Foutcorrectie kan in twee soorten worden uitgevoerd.



Achterwaartse foutcorrectie

Bij dit type foutcorrectie vraagt ​​de ontvanger de afzender terug om de gegevens opnieuw te verzenden als de ontvanger de fout detecteert.

Voorwaartse foutcorrectie

als de door de ontvanger ontvangen gegevens de fout vinden, voert deze de foutcorrectiecodes uit om de gegevens automatisch te corrigeren en te herstellen.


Als er ‘m’ aantal databits en ‘r’ aantal redundante bits is, dan zijn de combinaties van informatie 2r.

2r> = m + r + 1

Soorten foutdetectiecodes

De fouten in de ontvangen gegevens kunnen worden opgespoord door 3 soorten foutdetectiecodes te gebruiken. Dit zijn pariteitscontrole, cyclische redundantiecontrole (CRC) en longitudinale redundantiecontrole.

Pariteitscontrole

Het redundante bit genaamd pariteitsbit wordt toegevoegd om het aantal bits even of oneven te maken in het geval van even pariteit of oneven pariteit. De ontvanger telt het aantal bits (enen) in een frame om de pariteitsbit toe te voegen. Dit wordt pariteitscontrole genoemd. Als het aantal enen in een frame even is, wordt de even pariteit gebruikt door de bit '1' met nulwaarde toe te voegen. Evenzo is van het aantal enen oneven, dan wordt de oneven pariteit gebruikt door het bit met waarde ‘1’ toe te voegen.

Fout detectie

fout detectie

Daarom wordt het gebruikt om ervoor te zorgen dat het frame / de datum die door de ontvanger van de bron wordt ontvangen, niet wordt beschadigd. Bij dit type foutdetectie moet het aantal enen gelijk zijn in het ontvangen frame. Het is bij alle soorten foutdetectie veel goedkoper.

Longitudinale redundantiecontrole (LRC)

Als de set / het blok bits is georganiseerd, kan de LRC-methode worden gebruikt om de pariteitsbit in elk frame te controleren. Het helpt om de set pariteitsbits samen met de originele gegevens te verzenden en controleert de redundantie.

Cyclische redundantiecontrole

zijn type wordt gebruikt om te detecteren of de data / frame ontvangen van de bron geldig is of niet. Het omvat de binaire verdeling van de gegevens die moeten worden verzonden en gebruikt veeltermen (om een ​​deler te genereren). Voordat de transmissie , wordt een deeloperatie uitgevoerd door de afzender op de data / bits / frame om de rest te berekenen.

Cyclische redundantiecontrole

cyclische-redundantie-check

Tijdens de verzending van feitelijke gegevens van de afzender, voegt het de rest toe aan het einde van de feitelijke gegevens. De combinatie van feitelijke gegevens en de rest wordt een codewoord genoemd. De gegevens worden verzonden in de vorm van codewoorden. Als de gegevens tijdens dit proces beschadigd zijn, worden de gegevens door de ontvanger geweigerd, anders worden ze geaccepteerd.

Wat is de Hamming-code?

Hamming-code wordt gedefinieerd als een lineaire code die wordt gebruikt in het foutdetectieproces tot 2-tussenliggende fouten. Het is ook in staat om enkelbitsfouten te detecteren. Bij deze methode worden de redundante bits door de afzender aan de gegevens / het bericht toegevoegd om de gegevens te coderen. Om foutdetectie en -correctie uit te voeren, worden deze redundante bits op bepaalde posities toegevoegd voor het foutcorrectieproces.

Hamming-code

hamming-code

Geschiedenis van Hamming-codes

In 1950 bedacht Richard W. hamming Hamming-codes om de fouten in gegevens op te sporen en te corrigeren. Na de evolutie van computers met een hogere betrouwbaarheid, introduceerde hij hamming-codes voor 1-foutcorrectiecodes en later breidde hij uit tot 2-foutcodes. Hamming-codes worden gemaakt omdat pariteitscontrole geen fouten in de gegevens kan detecteren en corrigeren. De Hamming-codes worden ingevoegd in elke bloklengte van gegevens tussen feitelijke gegevens en redundantiebits. Hij ontwikkelde een reeks algoritmen om te werken aan de problemen van foutcorrectiemethoden en deze codes worden veel gebruikt in ECC-geheugen.

Proces voor het coderen van een bericht met Hamming-code

Het proces van het coderen van een bericht met behulp van een hamming-code door de afzender omvat 3 stappen.

Stap 1: De eerste stap is het berekenen van het aantal overtollige bits in een bericht

  • Als een bericht bijvoorbeeld een ‘n’ aantal bits bevat en ‘p’ aantal overtollige bits wordt toegevoegd aan het bericht, dan geeft ‘np’ verschillende toestanden aan (n + p + 1).
  • Waar (n + p) staat voor de locatie van een fout in elke bitpositie
  • 1 (extra status) vertegenwoordigt geen fout.
  • Omdat ‘p’ 2 ^ p (2p) staten aangeeft, die gelijk zijn aan (n + p + 1) staten.

Stap 2: Plaats de overtollige bits in de exacte / juiste positie

'p'-bits worden ingevoegd in de bitposities die de macht van 2 zijn, zoals 1, 2, 4, 8, 16, etc. Deze bitposities worden aangegeven als p1 (positie 1), p2 (positie 2), p3 (positie 4), enz.

Stap 3: Bereken de waarden van overtollige bits

  • Hier worden pariteitsbits gebruikt om de waarden van overtollige bits te berekenen.
  • Pariteitsbits kunnen het aantal enen in een bericht even of oneven maken.
  • Als het totale aantal enen in een bericht even is, wordt even pariteit gebruikt
  • Als het totale aantal enen in een bericht oneven is, wordt een oneven pariteit gebruikt.

Proces voor het decoderen van een bericht in Hamming-code

Het proces van het decoderen van een bericht dat door de ontvanger van de afzender is ontvangen met behulp van de hamming-code, omvat de volgende stappen. Dit proces is niets anders dan herberekening om de fouten in een bericht op te sporen en te corrigeren.

Stap 1: Tel het aantal overtollige bits

De formule om het bericht te coderen met redundante bits is,

2p≥ n + p + 1

Stap 2: corrigeer de posities van alle overtollige bits

‘P’ aantal overtollige bits worden geplaatst in bitposities met een macht van 2 zoals 1,2,4,8,16,32 enz.

Stap 3: pariteitscontrole (oneven pariteit en even pariteit)

Pariteitsbits worden berekend op basis van het aantal enen in databits en redundante bits.

Bijvoorbeeld

De pariteit van p1 zou 1, 3, 5, 7, 9, 11, ... zijn

De pariteit van p2 is 2, 3, 6, 7, 10, 11, ...

De pariteit van p3 is 4-7, 12-15, 20-23, ...

Voordelen van Hamming-code

Het belangrijkste voordeel van het gebruik van een hamming-code is kosteneffectief als een datastroom enkelbitsfouten bevat.

  • Het kan foutdetectie bieden en geeft ook de bit aan die een fout bevat voor correctie.
  • Hamming-codes zijn erg gemakkelijk en het beste te gebruiken in computergeheugen en enkelbits foutcorrectie en detectie.

Nadelen van Hamming-code

  • Het is alleen het beste voor foutcorrectie en detectie van één bit. Als er meerdere bits fouten maken, kan het geheel worden beschadigd.
  • Het Hamming-code-algoritme kan alleen fouten van één bit oplossen.

Toepassingen van Hamming-codes

Hamming-codes worden gebruikt in,

  • Computergebruik
  • Telecommunicatie
  • Data compressie
  • Puzzels en turbocodes oplossen
  • Satellieten
  • Plasma CAM
  • Afgeschermde draden
  • Modems
  • Computer geheugen
  • Open connectoren
  • Embedded systemen en processor

Veelgestelde vragen

1). Kan de Hamming-code 2-bit-fouten detecteren?

Hamming-codes kunnen tot 2-bit fouten in een datastroom detecteren en corrigeren

2). Hoe repareer je de Hamming-code?

Hamming-codes worden in elke gegevenslengte tussen de feitelijke gegevens en redundante bits geplaatst. Deze codes zijn plaatsen met een minimale afstand van 3 bits

3). Wat is de pariteitscode?

Pariteitscode of pariteitsbit voegt een bit toe aan het ontvangen frame (gegevens bevatten enen en nullen) om het totale aantal bits (enen) even of oneven te maken.

4). Wat is de Hamming-afstand tussen de gegevens?

De hamming-afstand tussen de twee verschillende datastromen van gelijke lengte is het aantal enen.

De hamming-afstand tussen twee gegevensstrings van gelijke lengte kan worden berekend met behulp van de XOR-bewerking.

Bijvoorbeeld a = 11011001

b = 10011101

Hamming-afstand kan worden berekend als,

11011001 ⊕ 10011101 = 01000100 (aantal 1-bits is 2)

De hamming-afstand geeft het aantal enen in de resulterende datastroom aan

Dus d (11011001, 10011101) = 2

Evenzo 010 ⊕ 011 = 001, d (010, 011) = 1.

5). Is Hamming-code cyclisch?

Ja, hamming-codes zijn equivalent aan cyclische codes die kunnen worden gebruikt als foutdetectiecodes.

Dit gaat dus allemaal over foutcorrectie en -detectie, soorten foutdetectie, hamming codes , het proces van het versleutelen en ontsleutelen van het bericht met behulp van hamming-codes, toepassingen van hamming-codes, voor- en nadelen van Hamming-codes. Hier is een vraag voor u: ‘Wat zijn de toepassingen van foutdetectie en -correctie? '