Hamming CodeFehlererkennung und -korrektur mit Beispielen
โก Intelligente Zusammenfassung
Der Hamming-Code ist ein linearer Fehlerkorrekturcode, der redundante Paritรคtsbits an Zweierpotenzpositionen hinzufรผgt, wodurch ein Empfรคnger bis zu Zwei-Bit-Fehler erkennen und jeden Einzelbitfehler wรคhrend der Datenรผbertragung automatisch korrigieren kann.

Was ist ein Fehler?
TransmitDaten kรถnnen wรคhrend der รbertragung beschรคdigt werden. Sie kรถnnen durch externe Stรถrungen oder andere physikalische Defekte beeintrรคchtigt werden. In einem solchen Fall stimmen die Eingangsdaten nicht mit den Ausgangsdaten รผberein. Diese Diskrepanz wird als โFehlerโ bezeichnet.
Datenfehler kรถnnen zum Verlust wichtiger oder vertraulicher Daten fรผhren. Der Groรteil der Datenรผbertragung in digitalen Systemen erfolgt als โBitรผbertragungโ, und selbst die geringfรผgige รnderung eines einzelnen Bits kann die Leistung des gesamten Systems beeintrรคchtigen. Wird in einer Datensequenz eine 1 in eine 0 oder eine 0 in eine 1 geรคndert, spricht man von einem โBitfehlerโ.
Arten von Fehlern
Es gibt hauptsรคchlich drei Arten von Bitfehlern, die bei der Datenverarbeitung auftreten. transmitvom Sender zum Empfรคnger รผbertragen. Das folgende Diagramm veranschaulicht, wie sich die einzelnen Typen auf eine Datensequenz auswirken:
- Einzelbitfehler
- Mehrere Bitfehler
- Burst-Fehler
Einzelbitfehler
Eine รnderung an einem einzelnen Bit in der gesamten Datensequenz wird als โEinzelbitfehlerโ bezeichnet. Einzelbitfehler treten nicht hรคufig auf. Sie kommen hauptsรคchlich in parallelen Kommunikationssystemen vor, da die Daten bitweise รผber separate Leitungen รผbertragen werden. Dadurch ist die Wahrscheinlichkeit hรถher, dass eine Leitung verrauscht wird, wรคhrend die anderen fehlerfrei bleiben.
Mehrere Bitfehler
Wenn sich zwei oder mehr Bits einer Datensequenz zwischen den transmitWenn zwischen dem Empfรคnger und dem Empfรคnger ein Fehler auftritt, spricht man von einem โMehrbitfehlerโ.
Dieser Fehlertyp tritt sowohl in seriellen als auch in parallelen Datenkommunikationsnetzen auf.
Burst-Fehler
Eine รnderung an einer Gruppe aufeinanderfolgender Bits in einer Datensequenz wird als โBurst-Fehlerโ bezeichnet. Die Lรคnge eines Burst-Fehlers wird vom ersten geรคnderten Bit bis zum letzten geรคnderten Bit gemessen.
Was versteht man unter Fehlererkennung und Fehlerkorrektur?
In digitalen Kommunikationssystemen kรถnnen Fehler bei der Datenรผbertragung zwischen Gerรคten auftreten. Werden diese Fehler nicht erkannt und korrigiert, gehen die Daten verloren. Fรผr eine effektive Kommunikation ist eine hohe Genauigkeit der Datenรผbertragung unerlรคsslich. Dies wird erreicht, indem Fehler zunรคchst identifiziert und anschlieรend korrigiert werden.
Fehlererkennung ist eine Methode, um die in den Daten vorhandenen Fehler zu finden. transmitted von einem transmitan einen Empfรคnger in einem Datenkommunikation System.
Redundanzcodes werden verwendet, um diese Fehler zu finden, indem den Daten zusรคtzliche Bits hinzugefรผgt werden, wenn sie transmitDiese zusรคtzlichen Bits werden von der Quelle รผbernommen und als โFehlererkennungscodesโ bezeichnet. Die drei gebrรคuchlichsten Arten von Fehlererkennungscodes sind:
- Paritรคtsprรผfung
- Zyklische Redundanzprรผfung (CRC)
- Lรคngsredundanzprรผfung (LRC)
Paritรคtsprรผfung
- Es wird auch als Paritรคtsprรผfung bezeichnet.
- Es bietet einen kostengรผnstigen Mechanismus zur Fehlererkennung.
- Bei dieser Technik wird das jeder Dateneinheit hinzugefรผgte redundante Bit als Paritรคtsbit bezeichnet. Es wird so gesetzt, dass die Gesamtzahl der Einsen in der Einheit gerade (gerade Paritรคt) oder ungerade (ungerade Paritรคt) ist.
Lรคngsredundanzprรผfung
Bei diesem Fehlererkennungsverfahren wird ein Bitblock in einer Tabelle organisiert. Das LRC-Verfahren berechnet fรผr jede Spalte ein Paritรคtsbit, und dieser Satz von Paritรคtsbits wird zusammen mit den Originaldaten gesendet. Der Paritรคtsbitblock hilft dem Empfรคnger, Redundanz zu prรผfen und Fehler zu erkennen.
Zyklische Redundanzprรผfung
Bei der zyklischen Redundanzprรผfung wird eine Folge redundanter Bits an das Ende der Dateneinheit angehรคngt, sodass die resultierende Dateneinheit genau durch eine zweite, vorbestimmte Binรคrzahl teilbar ist.
Am Zielort werden die eingehenden Daten durch dieselbe Zahl geteilt. Ergibt sich kein Rest, gilt die Dateneinheit als korrekt und wird akzeptiert. Andernfalls deutet dies darauf hin, dass die Dateneinheit bei der รbertragung beschรคdigt wurde und verworfen werden muss.
Was ist ein Hamming? Code?
Der Hamming-Code ist ein linearer Code, der sich zur Erkennung von bis zu zwei aufeinanderfolgenden Bitfehlern und zur Korrektur von Einzelbitfehlern eignet. Die Fehlerkorrektur dieser Art erfolgt typischerweise auf der Sicherungsschicht (Data Link Layer), indem sie Daten rahmt und deren Integritรคt zwischen benachbarten Knoten รผberprรผft.
Beim Hamming-Code wird die Nachricht durch Hinzufรผgen redundanter Bits codiert. Diese redundanten Bits werden an bestimmten Positionen in der Nachricht eingefรผgt und generiert, um Fehler zu erkennen und zu korrigieren.
Geschichte von Hamming Code
- Der Hamming-Code ist eine von R. W. Hamming entwickelte Technik zur Erkennung und Korrektur von Fehlern.
- Es kann auf Dateneinheiten beliebiger Lรคnge angewendet werden und nutzt die Beziehung zwischen Datenbits und Redundanzbits.
- Hamming beschรคftigte sich mit dem Problem der Fehlerkorrektur und entwickelte eine immer leistungsfรคhigere Reihe von Algorithmen.
- Im Jahr 1950 verรถffentlichte er den Hamming-Code, der auch heute noch in Anwendungen wie ECC-Speicher weit verbreitet ist.
Anwendungen der Hamming-Methode Code
Hier einige gรคngige Anwendungsgebiete des Hamming-Codes:
- Satelliten
- Computerspeicher (ECC RAM)
- Modem
- PlasmaCAM
- Offene Anschlรผsse
- Abgeschirmtes Kabel
- Eingebettete Prozessoren
Vorteile der Hamming-Methode Code
- Hamming-Code ist effektiv in Netzwerken, in denen Datenstrรถme Einzelbitfehlern ausgesetzt sind.
- Es erkennt nicht nur Bitfehler, sondern hilft Ihnen auch dabei, das fehlerhafte Bit zu identifizieren, damit es korrigiert werden kann.
- Aufgrund ihrer einfachen Anwendbarkeit eignen sich Hamming-Codes hervorragend fรผr Computerspeicher und die Korrektur einzelner Fehler.
Nachteile der Hamming-Methode Code
- Es handelt sich um einen Einzelbit-Fehlererkennungs- und -korrekturcode. Werden mehrere fehlerhafte Bits gefunden, kann das Ergebnis ein weiteres, eigentlich korrektes Bit umkehren und die Daten dadurch weiter verfรคlschen.
- Der Hamming-Code-Algorithmus kann nur Einzelbit-Probleme lรถsen.
Wie man eine Nachricht in Hamming kodiert Code
Der vom Absender verwendete Prozess zur Kodierung der Nachricht umfasst die folgenden drei Schritte:
- Berechnen Sie die Gesamtzahl der redundanten Bits.
- Ermitteln Sie die Position der redundanten Bits.
- Berechne den Wert jedes redundanten Bits.
Wenn die redundanten Bits in die Nachricht eingebettet sind, wird das vollstรคndige Codewort an den Empfรคnger gesendet.
Schritt 1) โโBerechnen Sie die Gesamtzahl der redundanten Bits.
Angenommen, die Nachricht enthรคlt n Datenbits und p redundante Bits, hinzugefรผgt, so dass 2p kann mindestens (n โโ+ p + 1) verschiedene Zustรคnde anzeigen.
Hierbei berรผcksichtigt (n + p) die Position eines Fehlers an jeder der (n + p) Bitpositionen, und ein zusรคtzlicher Zustand bedeutet, dass kein Fehler vorliegt. Da p Paritรคtsbits 2<sup>n</sup> anzeigen kรถnnen, โฆp Staaten, 2p muss mindestens gleich (n + p + 1) sein.
Schritt 2) Platzieren Sie die redundanten Bits an ihren richtigen Positionen.
Die p redundanten Bits werden an Bitpositionen platziert, die Zweierpotenzen sind โ beispielsweise 1, 2, 4, 8 und 16. Sie werden als p bezeichnet.1 (an Position 1), S2 (an Position 2), S3 (an Position 4) und so weiter.
Schritt 3) Berechne den Wert jedes redundanten Bits.
Jedes redundante Bit ist ein Paritรคtsbit, das die Anzahl der Einsen in seiner Gruppe entweder gerade oder ungerade macht. Es gibt zwei Arten von Paritรคtsbits:
- Gleichstellung: Die Gesamtzahl der Einsen in den abgedeckten Positionen wird ausgeglichen.
- Ungerade Paritรคt: Die Gesamtzahl der Einsen in den abgedeckten Positionen ist ungerade.
Jedes Paritรคtsbit deckt einen bestimmten Satz von Positionen ab, der durch die Binรคrdarstellung der Positionsnummern bestimmt wird:
- p1 รberprรผft jede Position, deren Binรคrwert im niedrigstwertigen Bit eine 1 hat โ Positionen 1, 3, 5, 7, 9, 11 usw.
- p2 รberprรผft jede Position, deren Binรคrwert im zweiten Bit von rechts eine 1 hat โ Positionen 2, 3, 6, 7, 10, 11 usw.
- p3 รberprรผft jede Position, deren Binรคrwert im dritten Bit von rechts eine 1 hat โ Positionen 4 bis 7, 12 bis 15 usw.
Durchgerechnetes Beispiel (7,4): Betrachten wir die vier Datenbits 1011Es werden drei Paritรคtsbits benรถtigt (23 = 8 โฅ 4 + 3 + 1), was ein sieben Bit langes Codewort ergibt, das wie folgt aufgebaut ist: p1 p2 d1 p3 d2 d3 d4Durch die Anordnung der Daten ergeben sich die Positionen 3, 5, 6, 7 = 1, 0, 1, 1. Bei Verwendung gerader Paritรคt: p1 deckt die Positionen 1, 3, 5, 7 ab (Bits 1, 0, 1 โ p).1 = 0); p2 deckt 2, 3, 6, 7 ab (Bits 1, 1, 1 โ p2 = 1); p3 deckt 4, 5, 6, 7 ab (Bits 0, 1, 1 โ p3 = 0). transmitDas Codewort lautet daher 0110011.
Wie man eine Nachricht in Hamming entschlรผsselt Code
Der Empfรคnger nimmt die eingehende Nachricht entgegen und fรผhrt Neuberechnungen durch, um Fehler zu finden und zu korrigieren. Der Neuberechnungsprozess umfasst die folgenden Schritte:
- Zรคhle die Anzahl der redundanten Bits.
- Positionieren Sie alle redundanten Bits korrekt.
- Fรผhren Sie die Paritรคtsprรผfung durch.
Schritt 1) โโZรคhlen Sie die Anzahl der redundanten Bits. Verwenden Sie dieselbe Formel wie fรผr die Kodierung: 2p โฅ n + p + 1, wobei n die Anzahl der Datenbits und p die Anzahl der redundanten Bits ist.
Schritt 2) Positionieren Sie alle redundanten Bits korrekt. Jedes redundante Bit befindet sich an einer Bitposition, die eine Zweierpotenz ist โ zum Beispiel 1, 2, 4 und 8.
Schritt 3) Fรผhren Sie die Paritรคtsprรผfung durch. Die Paritรคtsbits werden aus den Datenbits und den empfangenen redundanten Bits neu berechnet:
- p1 = Paritรคt(1, 3, 5, 7, 9, 11, โฆ)
- p2 = Paritรคt(2, 3, 6, 7, 10, 11, โฆ)
- p3 = Paritรคt(4โ7, 12โ15, 20โ23, โฆ)
Die neu berechneten Paritรคtsbits bilden zusammen eine Binรคrzahl. Ist diese Zahl null, liegt kein Fehler vor; andernfalls gibt ihr Wert die genaue Position des einzelnen fehlerhaften Bits an, welches dann invertiert wird, um die Nachricht zu korrigieren.

