Fehlerkorrekturcodes: Zuverlässige Kommunikation über verrauschte Kanäle
Formel
\text{Hamming}(7,4): \text{syndrome} = H \cdot r^TR = \frac{k}{n} = \frac{4}{7} \approx 0.571P_{\text{block error}} = 1 - (1-p)^n - n \cdot p \cdot (1-p)^{n-1}d_{\min} = 3 \implies \text{corrects } \lfloor(3-1)/2\rfloor = 1 \text{ error} Häufige Fragen
Was ist ein Hamming-Code?
Ein Hamming-Code ist ein linearer fehlerkorrigierender Code, den Richard Hamming 1950 erfand. Die gängigste Variante, Hamming(7,4), codiert 4 Datenbits in 7 Codebits, indem 3 Paritätsbits an den Positionen 1, 2 und 4 hinzugefügt werden. Jedes Paritätsbit deckt eine bestimmte Teilmenge der Datenbits ab. Das Syndrom — berechnet durch Prüfung aller Paritätsgleichungen — identifiziert die Position eines einzelnen Bitfehlers und ermöglicht die Korrektur ohne erneute Übertragung.
Wie hängt Fehlerkorrektur mit Shannons Kanalcodierungstheorem zusammen?
Shannons Kanalcodierungstheorem (1948) beweist, dass für jeden Kanal mit Kapazität C zuverlässige Kommunikation mit jeder Rate unterhalb von C möglich ist, wenn ausreichend lange Codes verwendet werden. Hamming-Codes sind kurze, einfache Codes, die Einzelfehler korrigieren. Moderne Codes wie Turbo-Codes und LDPC-Codes nähern sich Shannons Grenze viel stärker an, indem sie längere Blocklängen und iterative Decodierung verwenden.
Was ist der Unterschied zwischen Fehlererkennung und Fehlerkorrektur?
Fehlererkennung identifiziert, dass ein Fehler aufgetreten ist, aber nicht wo. Ein einfaches Paritätsbit kann jeden einzelnen Bitfehler erkennen. Fehlerkorrektur erkennt und lokalisiert den Fehler, sodass der Empfänger ihn beheben kann. Hamming(7,4) kann jeden Einzelbitfehler korrigieren und jeden Zwei-Bit-Fehler erkennen (aber nicht korrigieren). Korrektur erfordert mehr Redundanz als bloße Erkennung.
Wo werden Fehlerkorrekturcodes in der Praxis eingesetzt?
Fehlerkorrekturcodes sind allgegenwärtig: ECC-RAM verwendet Hamming-Codes zur Behebung von Speicher-Bitkippern; QR-Codes verwenden Reed-Solomon-Codes für Schadenstoleranz; Festplatten, SSDs und optische Datenträger nutzen LDPC- und Reed-Solomon-Codes; 5G-Mobilfunknetze verwenden Polar- und LDPC-Codes; Weltraumkommunikation nutzt Faltungs- und Turbo-Codes, um über Milliarden Kilometer Kontakt zu halten.
Quellen
- [object Object]
- [object Object]
- [object Object]