Il codice di Hamming (7,4)

Un messaggio che viaggia puo' arrivare storto: basta un bit girato da un disturbo sul filo. Il codice di Hamming aggiunge tre bit di controllo a ogni quattro di dati, e con quelli il destinatario non si accorge soltanto che c'e' un errore: capisce esattamente quale bit e' sbagliato e lo raddrizza da solo, senza chiedere di rimandare niente.

Scrivi qui sotto quattro bit, premi Codifica, poi clicca su un bit qualsiasi del messaggio ricevuto per sporcarlo e guarda come viene ritrovato.

Inserisci 4, 7 o 11 bit (solo 0 e 1)

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.

L'Idea Chiave:
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 1 (2⁰): P1
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.

💎 Tutoring Premium

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.

Prenota il colloquio gratuito Senza impegno · Posti limitati