So nutzen Sie den Hamming-Code-Rechner
Mit unserem interaktiven Hamming-Code-Rechner können Sie Binärdaten im Handumdrehen mit Fehlerkorrekturbits absichern oder bestehende Codewörter auf Übertragungsfehler analysieren:
- Modus wählen — Wählen Sie Kodieren, um für reine Nutzdatenbits die passenden Paritätsbits zu erzeugen, oder Prüfen und korrigieren, um ein empfangenes Hamming-Codewort zu untersuchen.
- Binärfolge eingeben — Tragen Sie eine beliebige Folge aus Nullen und Einsen in das Eingabefeld ein (z. B.
1011für 4 Datenbits). - Ergebnis analysieren — Der Hamming-Code-Rechner gibt das vollständige Codewort, die Bit-Positionen sowie bei der Fehlerprüfung das berechnete Fehlersyndrom und die korrigierten Daten aus.
Alle Rechenschritte werden in Echtzeit lokal in Ihrem Browser durchgeführt.
Mathematischer Hintergrund: Paritätsbits & Hamming-Ungleichung
Der von Richard Hamming entwickelte Hamming-Code ist ein linearer Blockcode zur Vorwärtsfehlerkorrektur (Forward Error Correction, FEC). Er ermöglicht es, 1-Bit-Fehler selbstständig zu lokalisieren und zu korrigieren sowie 2-Bit-Fehler zu erkennen.
1. Anzahl der Paritätsbits bestimmen
Um $m$ Datenbits mit $r$ Paritätsbits (Prüfbits) gegen 1-Bit-Fehler abzusichern, muss die Hamming-Ungleichung erfüllt sein:
2^r >= m + r + 1
| Datenbits ($m$) | Prüfbits ($r$) | Gesamtlänge ($n = m + r$) | Code-Bezeichnung |
|---|---|---|---|
| 4 | 3 | 7 | (7,4)-Hamming-Code |
| 8 | 4 | 12 | (12,8)-Hamming-Code |
| 11 | 4 | 15 | (15,11)-Hamming-Code |
| 16 | 5 | 21 | (21,16)-Hamming-Code |
2. Platzierung der Bits
Die Paritätsbits $P_i$ werden an allen Bit-Positionen eingefügt, die eine Zweierpotenz darstellen ($1, 2, 4, 8, 16, \dots$). Die verbleibenden Positionen werden der Reihe nach mit den Datenbits $D_j$ aufgefüllt:
- Position 1 ($2^0$): $P_1$
- Position 2 ($2^1$): $P_2$
- Position 3: $D_1$
- Position 4 ($2^2$): $P_3$
- Position 5: $D_2$
- Position 6: $D_3$
- Position 7: $D_4$
Unser Hamming-Code-Rechner strukturiert diese Zuordnung für jede beliebige Eingabelänge automatisch.
Schritt-für-Schritt-Beispiel: Der (7,4)-Hamming-Code
Angenommen, Sie möchten das 4-Bit-Datenwort 1011 ($D_1=1, D_2=0, D_3=1, D_4=1$) absichern:
- Bitmuster mit Platzhaltern:
[P1, P2, 1, P3, 0, 1, 1] - Paritätsbits berechnen (gerade Parität / XOR-Summe):
- $P_1$ prüft Positionen mit einer 1 an Bitstelle 0 (1, 3, 5, 7): $P_1 = D_1 \oplus D_2 \oplus D_4 = 1 \oplus 0 \oplus 1 = 0$
- $P_2$ prüft Positionen mit einer 1 an Bitstelle 1 (2, 3, 6, 7): $P_2 = D_1 \oplus D_3 \oplus D_4 = 1 \oplus 1 \oplus 1 = 1$
- $P_3$ prüft Positionen mit einer 1 an Bitstelle 2 (4, 5, 6, 7): $P_3 = D_2 \oplus D_3 \oplus D_4 = 0 \oplus 1 \oplus 1 = 0$
- Fertiges Codewort:
0 1 1 0 0 1 1
Der Hamming-Code-Rechner zeigt Ihnen diese Codierung übersichtlich aufgeschlüsselt an.
Syndrom-Berechnung und 1-Bit-Fehlerkorrektur
Wird während der Datenübertragung ein Bit verfälscht (z. B. Bit an Position 5 kippt von 0 auf 1 zu 0110111), ermittelt der Hamming-Code-Rechner die Fehlerstelle über das Syndrom $S = (s_3 s_2 s_1)_2$:
- $s_1 = \text{Parität}(1, 3, 5, 7) = 0 \oplus 1 \oplus 1 \oplus 1 = 1$
- $s_2 = \text{Parität}(2, 3, 6, 7) = 1 \oplus 1 \oplus 1 \oplus 1 = 0$
- $s_3 = \text{Parität}(4, 5, 6, 7) = 0 \oplus 1 \oplus 1 \oplus 1 = 1$
Das resultierende Syndrom lautet binär $101_2 = 5_{10}$. Die Fehlerposition ist somit exakt Bit 5. Der Hamming-Code-Rechner invertiert Bit 5 zurück auf 0 und stellt das originale Datenwort fehlerfrei wieder her.
Typische Anwendungsbereiche
Der Hamming-Code-Rechner ist ein ideales Werkzeug für verschiedene Einsatzgebiete in Informatik und Technik:
- Informatik-Studium & Lehre — Nachvollziehen von Vorlesungsinhalten zu Codierungstheorie, Rechnernetzen und Rechnerarchitektur.
- ECC-Hauptspeicher (RAM) — Verständnis von Fehlerkorrekturverfahren in Server-Arbeitsspeichern (SECDED-Erweiterung).
- Telekommunikation & Funktechnik — Absicherung digitaler Signalübertragungen gegen Rauschen und Bitkipper.
- Hardware-Entwicklung — Verifikation digitaler Schaltungen und Prüfsummenlogik in FPGAs und ASICs.
Nutzen Sie den Hamming-Code-Rechner, um Fehlerszenarien interaktiv durchzuspielen und Ihr Verständnis für fehlertolerante Codierungsverfahren zu vertiefen.