Home ⇒ Überblick ⇒ Digitaltechnik ⇒ Codes in der Digitaltechnik ⇒ Hamming Code
Hamming Code
Table of Contents
ToggleDer Hammingcode*) ist ein selbstkorrigierender Code (ECC → Error Correcting Code, Fehlerkorrektur). Dazu verwendet er mehrere Paritätsbits. Die Information tragenden Nutzdatenbits werden in Gruppen unterteilt, wobei jede Gruppe durch die Paritätsbits ergänzt wird. Durch eine geschickte Wahl der Gruppierung, ist neben einer Fehlererkennung auch eine Fehlerkorrektur der übertragenen Datenbits möglich.
Im folgenden wollen wir anhand eines Beispieles kennenlernen, wie der Hamming-Code eine zu übertragende Bitreihe bildet, wie bei Empfang der Bitreihe überprüft wird, ob diese Fehlerhaft oder korrekt ist und zuletzt, wie es der Hamming-Code schafft, eine Fehlerkorrektur durchzuführen.
*) Benannt nach seinem Erfinder Richard Wesley Hamming von den Bell Labs.
Bildung der zu übertragende Bitreihe, sprich Hamming-Code
- Zu übertragen ist die Bitreihe 1001010. Diese sieben Nutzdatenbits werden in die Tabelle unter Punkt 1 eintragen - dabei die Zellen 1,2,4 und 8 auslassen.
- Die Position der Zellen 1..11, welche mit einer "1" (Nutzdatenbits Bitreihe) belegt sind, sind einer bestimmten Reihennummer zugeordnet. Deren Binärwerte werden übertragslos addiert.
- Die aus der Summe erhaltenen 4 Bits in die 4 Lücken der Tabelle.
Hier veranschaulicht mittels einer Grafik:
Hamming-Code - Überprüfung auf fehlerhafte Übertragung
- Die sieben Nutzdatenbits in die bekannte zweizeilige Tabelle eintragen.
- Die Position der Zellen 1 bis 11, in der eine "1" steht werden übertragslos addiert. Dazu die Zahlentabelle benützen.
- Ist das Ergebnis der Addition 0000, dann ist war die Übertragung fehlerfrei.
Hamming-Code - Übertragungsfehler beschädigter Hamming-Code empfangen und korrigieren
- Es wurden 11 Bit empfangen. Diese Bits wie gehabt in die zweizeilige Tabelle eintragen.
- Die Position der Zellen 1 bis 11, in der eine "1" steht übertragslos addieren. Dazu die Zahlentabelle benützen. Als Ergebnis erhält man nicht 0000 sondern diesmal 0111.
- Diese 01112 steht für die Zahl 710, d.h. deutet auf einen Fehler an der Stelle 7 hin. Eine Korrektur erfolgt durch Umkehrung dieses Bits.
< vorherige Seite | nächste Seite >