Il Codice di Hamming (7,4)
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.
Simulazione Completa
Confronta il messaggio inviato con quello ricevuto.
1. Codice Inviato (Corretto)
Canale di Trasmissione (Clicca sotto sui bit per simulare rumore)