Come funziona, passo per passo
Il codice di Hamming è un codice a correzione di errore lineare. A differenza dei semplici controlli di parità che possono solo rilevare un errore, il codice di Hamming sfrutta la ridondanza per identificare e correggere automaticamente errori su singolo bit.
1. I Bit di Ridondanza (Parità)
Per proteggere un messaggio di 4 bit (Dati), vengono aggiunti 3 bit di controllo (Parità), portando la lunghezza totale del blocco a 7 bit.
Il valore dei bit di parità non è altro che la Somma XOR (somma binaria senza riporto) delle posizioni di tutti i bit di dati che valgono 1.
Esempio: Se ho un bit 1 alla posizione 3 (0011) e uno alla posizione 6 (0110), la parità sarà 0011 ⊕ 0110 = 0101 (5).
I bit di parità (P) sono inseriti nelle posizioni che sono potenze di 2 (1, 2, 4):
Posizione 2 (2¹): P2
Posizione 3: D1 (Dati)
Posizione 4 (2²): P4
Posizione 5-7: Dati (D2, D3, D4)
2. La Logica di Controllo
Ogni bit di parità è responsabile del controllo di un sottoinsieme specifico di bit, determinato dalla rappresentazione binaria della loro posizione:
- P1: Controlla le posizioni con il 1° bit (LSB) a 1 (1, 3, 5, 7, 9, 11...).
- P2: Controlla le posizioni con il 2° bit a 1 (2, 3, 6, 7, 10, 11...).
- P4: Controlla le posizioni con il 3° bit a 1 (4, 5, 6, 7, 12...).
3. Rilevamento e Correzione (Sindrome)
In fase di ricezione, ricalcolando le parità si ottiene un valore chiamato Sindrome. La Sindrome è la chiave per la correzione:
- Se Sindrome = 0: La trasmissione è avvenuta senza errori.
- Se Sindrome ≠ 0: Il valore della sindrome indica la posizione esatta del bit errato.
Invertendo (negando) il bit in quella posizione, il messaggio originale viene ripristinato perfettamente.
Far funzionare il codice è una cosa, capirlo un'altra
Percorsi personalizzati di Informatica con un docente di ruolo: reti, logica e programmazione spiegate a partire da come funzionano davvero.