koda | avkoda | komprimera

> hamming | (7,4) | ecc <

// Hamming-kod – felkorrigeringskod för tillförlitlig dataöverföring

[KORRIGERING]

Felkorrigering

Upptäcker och korrigerar automatiskt enbitfel i data.

[DETEKTION]

Detektering av dubbla fel

Kan upptäcka (men inte korrigera) tvåbitfel i varje block.

[EFFENTIV]

Minimal overhead

Endast 3 paritetsbitar för varje 4 databitar (75 % effektivitet).

>> teknisk info

Hur Hamming-kod fungerar:

Hamming(7,4)-koden lägger till 3 paritetsbitar till varje 4 databitar och skapar 7-bitarsblock. Paritetsbitarna placeras på positioner som är potenser av 2 (1, 2, 4). När fel uppstår pekar syndromet (resultatet av paritetskontrollen) direkt ut den felaktiga bitpositionen.

Hamming(7,4)-struktur:

Data: 1011 (4 bitar) Positioner: 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

Varför använda Hamming-kod:

  • >Felkorrigering i minne
  • >Satellitkommunikation
  • >Datasystem för lagring
  • >Nätverkstransmission
  • >RAID-array

>> vanliga frågor

Vad är Hamming-kod?

Hamming-kod är en felkorrigeringskod som uppfanns av Richard Hamming 1950. Den lägger till paritetsbitar till data så att enbitfel kan upptäckas och korrigeras automatiskt.

Vad betyder (7,4)?

Hamming(7,4) betyder 7 bitar totalt, med 4 databitar och 3 paritetsbitar. Koden kan korrigera vilket enbitfel som helst i 7-bitarsblocket. Andra varianter inkluderar (15,11) och (31,26).

Hur fungerar felkorrigering?

När data tas emot beräknas paritetsbitarna om. Om de inte stämmer överens anger syndromet (skillnaden) direkt vilken bit som är felaktig. Felet åtgärdas genom att den biten vänds.

Hamming jämfört med andra ECC-koder?

Hamming-kod är enkel och effektiv för enbitfel. Mer komplexa koder som Reed–Solomon kan korrigera flera fel men med högre overhead. Hamming är perfekt för kanaler med låg brusnivå.

// Snabbreferens

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

// Genomgånget exempel

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

>> Fler frågor

F: Vad betyder (7,4) i Hamming-koden?

S: 4 databitar kompletteras med 3 paritetsbitar till ett kodord på 7 bitar. Paritetsbitarna ligger på tvåpotenspositionerna 1, 2 och 4. Minsta avståndet är 3: ett fel rättas, två fel upptäcks men rättas inte.

F: Hur visar syndromet felets position?

S: Varje paritetsbit kontrollerar de positioner vars nummer har motsvarande bit satt. De tre resultaten bildar binärt positionen för den felaktiga biten (0 = inget fel). I exemplet pekar 101 på position 5.

F: Vad är utökad Hamming (SECDED)?

S: En extra totalparitetsbit gör (7,4) till (8,4): rättar 1 fel och upptäcker 2. ECC-minne använder samma princip, oftast som (72,64) med 8 kontrollbitar per 64 databitar.

Andra språk