coderen | decoderen | comprimeren

> hamming | (7,4) | ecc <

// Hamming-code – foutcorrectiecode voor betrouwbare gegevensoverdracht

[CORRECTIE]

Foutcorrectie

Detecteert en corrigeert automatisch fouten van één bit in gegevens.

[DETECTIE]

Detectie van dubbele fouten

Kan fouten van twee bits in elk blok detecteren (maar niet corrigeren).

[EFFICIËNT]

Minimale overhead

Slechts 3 pariteitsbits voor elke 4 databits (75% efficiëntie).

>> technische info

Hoe Hamming-code werkt:

De Hamming(7,4)-code voegt 3 pariteitsbits toe aan elke 4 databits en vormt zo blokken van 7 bits. De pariteitsbits worden geplaatst op posities die machten van 2 zijn (1, 2, 4). Wanneer er fouten optreden, wijst het syndroom (het resultaat van de pariteitscontrole) direct naar de positie van het foutieve bit.

Hamming(7,4)-structuur:

Data: 1011 (4 bits) Posities: 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

Waarom Hamming-code gebruiken:

  • >Foutcorrectie in geheugen
  • >Satellietcommunicatie
  • >Gegevensopslagsystemen
  • >Netwerktransmissie
  • >RAID-arrays

>> veelgestelde vragen

Wat is Hamming-code?

Hamming-code is een foutcorrectiecode die in 1950 werd ontwikkeld door Richard Hamming. Hij voegt pariteitsbits toe aan gegevens, zodat fouten van één bit automatisch kunnen worden gedetecteerd en gecorrigeerd.

Wat betekent (7,4)?

Hamming(7,4) betekent 7 bits in totaal, met 4 databits en 3 pariteitsbits. De code kan elke fout van één bit in het 7-bits blok corrigeren. Andere varianten zijn onder meer (15,11) en (31,26).

Hoe werkt foutcorrectie?

Bij het ontvangen van gegevens worden de pariteitsbits opnieuw berekend. Als ze niet overeenkomen, geeft het syndroom (het verschil) direct aan welk bit fout is. De fout wordt verholpen door dat bit om te klappen.

Hamming vs. andere ECC-codes?

Hamming-code is eenvoudig en efficiënt voor fouten van één bit. Complexere codes zoals Reed–Solomon kunnen meerdere fouten corrigeren, maar met meer overhead. Hamming is ideaal voor kanalen met weinig ruis.

// Snelle referentie

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

// Uitgewerkt voorbeeld

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

>> Meer vragen

V: Wat betekent (7,4) bij de Hamming-code?

A: 4 databits worden aangevuld met 3 pariteitsbits tot een woord van 7 bits. De pariteitsbits staan op de machten van 2: posities 1, 2 en 4. De minimale afstand is 3: één fout wordt gecorrigeerd, twee fouten worden gedetecteerd maar niet gecorrigeerd.

V: Hoe wijst het syndroom de foutpositie aan?

A: Elke pariteitsbit controleert de posities waarvan het nummer het bijbehorende bit heeft staan. De drie uitkomsten vormen binair de positie van het foute bit (0 = geen fout). In het voorbeeld wijst 101 naar positie 5.

V: Wat is uitgebreide Hamming (SECDED)?

A: Een extra totaalpariteitsbit maakt van (7,4) een (8,4)-code: corrigeert 1 fout en detecteert 2. ECC-geheugen gebruikt hetzelfde principe, meestal als (72,64) met 8 controlebits voor 64 databits.

Andere talen