codifica | decodifica | compressione

> hamming | (7,4) | ecc <

// Codice di Hamming – Codice di correzione degli errori per una trasmissione dati affidabile

[CORREZIONE]

Correzione degli errori

Rileva e corregge automaticamente gli errori a singolo bit nei dati.

[RILEVAMENTO]

Rilevamento errori doppi

Può rilevare (ma non correggere) errori a due bit in ogni blocco.

[EFFICIENTE]

Overhead minimo

Solo 3 bit di parità per ogni 4 bit di dati (efficienza del 75%).

>> dettagli tecnici

Come funziona il codice Hamming:

Il codice Hamming(7,4) aggiunge 3 bit di parità a ogni gruppo di 4 bit di dati, creando blocchi da 7 bit. I bit di parità sono posizionati in posizioni che sono potenze di 2 (1, 2, 4). Quando si verificano errori, la sindrome (risultato del controllo di parità) indica direttamente la posizione del bit errato.

Struttura Hamming(7,4):

Dati: 1011 (4 bit) Posizioni: 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

Perché usare il codice Hamming:

  • >Correzione degli errori in memoria
  • >Comunicazioni satellitari
  • >Sistemi di archiviazione dati
  • >Trasmissione di rete
  • >Array RAID

>> domande frequenti

Che cos’è il codice Hamming?

Il codice Hamming è un codice di correzione degli errori inventato da Richard Hamming nel 1950. Aggiunge bit di parità ai dati per consentire il rilevamento e la correzione automatica degli errori a singolo bit.

Cosa significa (7,4)?

Hamming(7,4) significa 7 bit totali con 4 bit di dati e 3 bit di parità. Può correggere qualsiasi errore a singolo bit nel blocco di 7 bit. Altre varianti includono (15,11) e (31,26).

Come funziona la correzione degli errori?

Alla ricezione dei dati, i bit di parità vengono ricalcolati. Se non corrispondono, la sindrome (la differenza) indica direttamente quale bit è errato. L’errore viene corretto invertendo quel bit.

Hamming rispetto ad altri codici ECC?

Il codice Hamming è semplice ed efficiente per errori a singolo bit. Codici più complessi come Reed-Solomon possono correggere errori multipli ma con maggior overhead. Hamming è perfetto per canali a bassa rumorosità.

// Riferimento rapido

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

// Esempio svolto

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

>> Altre domande

D: Cosa significa (7,4) nel codice di Hamming?

R: 4 bit di dati vengono completati da 3 bit di parità per formare una parola di 7 bit. I bit di parità stanno nelle posizioni potenza di 2: 1, 2 e 4. La distanza minima è 3: corregge un errore e ne rileva due, senza correggerli.

D: Come indica la sindrome la posizione dell’errore?

R: Ogni bit di parità controlla le posizioni il cui numero ha attivo il bit corrispondente. I tre risultati formano in binario la posizione del bit errato (0 = nessun errore). Nell’esempio 101 indica la posizione 5.

D: Cos’è l’Hamming esteso (SECDED)?

R: Un bit di parità globale trasforma il (7,4) in (8,4): corregge 1 errore e ne rileva 2. La memoria ECC usa lo stesso principio, di solito come (72,64) con 8 bit di controllo per 64 di dati.

Altre lingue