SpracheEnglishDeutsch
Elektrotechnik

Hamming-Code

Englisch: Hamming code

Eine Familie linearer fehlerkorrigierender Codes, die den 1950 von Richard Hamming erfundenen Hamming(7,4)-Code verallgemeinert.

Hamming-Code: Fehler sind in den Daten selbst eingebaut

Ein Hamming-Code ist eine Methode, Daten mit zusätzlichen Bits zu kodieren, sodass Einzelbit-Fehler automatisch erkannt und korrigiert werden können. Die häufigste praktische Variante, Hamming(7,4), nimmt 4 Bits echte Daten und addiert 3 Paritätsbits, was ein 7-Bit-Codewort ergibt. Wenn dieser 7-Bit-Block durch elektronische Störungen oder Speicher wandert, kann jeder Bitfehler vom Empfänger präzise lokalisiert und auf seinen ursprünglichen Zustand zurückgesetzt werden, ohne eine Neuübertragung anzufordern.

Die Eleganz von Hamming-Codes liegt in ihrer systematischen Struktur. Jedes Paritätsbit deckt eine bestimmte Teilmenge der Datenbits ab, positioniert bei Potenzen von zwei (Positionen 1, 2, 4 in einem 7-Bit-Wort). Durch Überprüfung, welche Paritätsbits fehlschlagen, berechnet der Decoder eine Binäradresse, die direkt auf das fehlerhafte Bit zeigt. Das ist der Grund, warum Hamming(7,4) jeden Fehler in einem 7-Bit-Block korrigieren kann: Die drei Paritätsbits erzeugen 2^3 = 8 mögliche Syndromwerte, genug um jede der sieben Positionen plus einen Fehlerfrei-Zustand zu kennzeichnen.

Erweiterte Hamming-Codes addieren ein zusätzliches Paritätsbit über das gesamte Codewort und ermöglichen Erkennung (nicht aber Korrektur) von Zweibit-Fehlern. Hamming(8,4) ist die erweiterte Variante von Hamming(7,4). Größere Varianten wie Hamming(15,11) und Hamming(31,26) packen mehr Datenbits mit derselben Korrekturmöglichkeit, was die Effizienz verbessert; sie folgen dem Muster, dass jeder Code Hamming(2^m - 1, 2^m - m - 1) Einzelfehler mit m Paritätsbits korrigieren kann.

Hamming-Codes haben praktische Anwendung in frühen Computerspeichern (Einzelbit-Fehlerkorrektur in DRAM war in älteren Systemen üblich), in Telekommunikationsgeräten und in eingebetteten Systemen, wo der Rechenaufwand zum Dekodieren minimal ist. Sie versagen bei stark gestörten Kanälen, wo Multibit-Fehler überwiegen, und werden durch robustere Familien wie Reed-Solomon- oder LDPC-Codes abgelöst. Für Speicher und kurze Übertragungsstrecken mit niedriger Fehlerquote bleiben Hamming-Codes allerdings effizient, weil ihr Overhead bescheiden ist und die Dekodierung schnell läuft.

Der Kompromiss ist starr: Korrekturfähigkeit ist an die Codelänge gebunden. Man kann nicht einfach mehr Paritätsbits zu einem Hamming(7,4) hinzufügen, um Doppelfehler zu korrigieren; man muss zu einer anderen Familie wechseln. Das schränkt die Flexibilität ein, sich an verändernde Kanalbedingungen anzupassen. Moderne Anwendungen bevorzugen oft Turbo-Codes oder Faltungscodes wegen ihrer Anpassbarkeit, aber Hamming-Codes bleiben das pädagogische Referenzwerk für Fehlerkorrektur und treten weiterhin in Legacy-Systemen und sicherheitskritischen eingebetteten Designs auf, wo Einfachheit und Vorhersagbarkeit zählen.

Mehr aus Electrical engineering

Alle ansehen

Get the Word of the Day

One industrial term every day, with the trade it belongs to and why it is worth knowing. No advertising.