kodieren | dekodieren | komprimieren

> hamming | (7,4) | ecc <

// Hamming-Code – Fehlerkorrekturcode für zuverlässige Datenübertragung

[KORREKTUR]

Fehlerkorrektur

Erkennt und korrigiert automatisch Ein-Bit-Fehler in Daten.

[ERKENNUNG]

Erkennung doppelter Fehler

Kann Zwei-Bit-Fehler in jedem Block erkennen (aber nicht korrigieren).

[EFFIZIENT]

Geringer Overhead

Nur 3 Prüf-Bits für 4 Datenbits (75 % Effizienz).

>> technische infos

Wie Hamming-Code funktioniert:

Der Hamming(7,4)-Code fügt zu jeweils 4 Datenbits 3 Paritätsbits hinzu und bildet so 7-Bit-Blöcke. Die Paritätsbits liegen an Positionen, die Potenzen von 2 sind (1, 2, 4). Tritt ein Fehler auf, zeigt das Syndrom (Ergebnis der Paritätsprüfung) direkt auf die fehlerhafte Bitposition.

Hamming(7,4)-Struktur:

Daten: 1011 (4 Bits) Positionen: P1 P2 D1 P3 D2 D3 D4 Hamming: 1 0 1 1 0 1 1 P1 = D1 ⊕ D2 ⊕ D4 = 1 ⊕ 0 ⊕ 1 = 0 P2 = D1 ⊕ D3 ⊕ D4 = 1 ⊕ 1 ⊕ 1 = 1 P3 = D2 ⊕ D3 ⊕ D4 = 0 ⊕ 1 ⊕ 1 = 0

Warum Hamming-Code verwenden?:

  • >Fehlerkorrektur im Speicher
  • >Satellitenkommunikation
  • >Datenspeichersysteme
  • >Netzwerkübertragung
  • >RAID-Arrays

>> häufig gestellte fragen

Was ist Hamming-Code?

Der Hamming-Code ist ein Fehlerkorrekturcode, der 1950 von Richard Hamming entwickelt wurde. Er fügt den Daten Paritätsbits hinzu, mit denen sich Ein-Bit-Fehler automatisch erkennen und korrigieren lassen.

Was bedeutet (7,4)?

Hamming(7,4) bedeutet 7 Gesamtbits mit 4 Datenbits und 3 Paritätsbits. Der Code kann jeden Ein-Bit-Fehler im 7-Bit-Block korrigieren. Andere Varianten sind zum Beispiel (15,11) und (31,26).

Wie funktioniert die Fehlerkorrektur?

Beim Empfang der Daten werden die Paritätsbits neu berechnet. Stimmen sie nicht überein, zeigt das Syndrom (die Differenz) direkt auf das fehlerhafte Bit. Der Fehler wird behoben, indem dieses Bit umgeklappt wird.

Hamming vs. andere ECC-Codes?

Der Hamming-Code ist einfach und effizient für Ein-Bit-Fehler. Komplexere Codes wie Reed–Solomon können mehrere Fehler korrigieren, haben aber höheren Overhead. Hamming eignet sich ideal für Kanäle mit geringer Störrate.

// Kurzreferenz

Posbitcovered by
1p1p1
2p2p2
3d1p1 p2
4p3p3
5d2p1 p3
6d3p2 p3
7d4p1 p2 p3

// Durchgerechnetes Beispiel

Data 1011 -> positions 3,5,6,7 = 1,0,1,1
p1 = d3^d5^d7 = 1^0^1 = 0     p2 = d3^d6^d7 = 1^1^1 = 1     p3 = d5^d6^d7 = 0^1^1 = 0
Codeword (pos 1..7)  0110011
Received 0110111 (bit 5 flipped)
Syndrome s3 s2 s1 = 1 0 1 = 5   ->  flip bit 5  ->  0110011 corrected

>> Weitere Fragen

F: Was bedeutet (7,4) beim Hamming-Code?

A: Es werden 4 Datenbits mit 3 Paritätsbits zu einem 7-Bit-Codewort ergänzt. Die Paritätsbits stehen an den Zweierpotenz-Positionen 1, 2 und 4. Der Mindestabstand beträgt 3: ein Fehler lässt sich korrigieren, zwei Fehler lassen sich erkennen, aber nicht korrigieren.

F: Wie zeigt das Syndrom die Fehlerposition?

A: Jedes Paritätsbit prüft die Positionen, deren Nummer das entsprechende Bit gesetzt hat. Die drei Prüfergebnisse ergeben als Binärzahl direkt die Position des fehlerhaften Bits (0 = kein Fehler). Im Beispiel liefert 101 die Position 5.

F: Was ist erweiterter Hamming-Code (SECDED)?

A: Ein zusätzliches Gesamtparitätsbit macht aus (7,4) einen (8,4)-Code, der 1 Fehler korrigiert und 2 Fehler erkennt. ECC-Speicher nutzt dasselbe Prinzip, meist als (72,64) mit 8 Prüfbits für 64 Datenbits.

Andere Sprachen