Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DOMANDE:
Qual è la distanza di Hamming del codice binario? Perché?
Le sequenze di bit di un codice binario (qualunque sia la lunghezza del dato) possono avere
distanza diversa (a seconda del singolo dato) ma la minima è distanza 1 (cambia un solo bit).
Ad esempio la distanza tra i numeri 4 e 5 – 100 e 101 – sarà sempre 1.
Quindi la distanza di Hamming è 1 (la minima distanza possibile)
Voglio creare un codice del quale voglio poter identificare e correggere fino a 2 errori. Qual
è la distanza di Hamming che devo assicurare alle sequenze del mio codice?
Ho un unico codice le cui sequenza valide distano 4, 8 oppure 10 bit. Quanti errori posso
identificare in questo codice? Perché?
La distanza di Hamming è la distanza minima tra le sequenze del codice. In questo caso la
distanza di Hamming è 4.
La formula che collega distanza di Hamming e numero di errori da identificare è d = e + 1
Per risolverla e conoscere il numero di errori bisogna usare la formula inversa: e = d – 1
In questo caso: e = 4 - 1 = 3
Con questo codice è quindi possibile identificare 3 errori.
Quanti bit di parità devo inserire in un codice di hamming per una sequenza di 1 byte?
0110
Sono necessari 3 bit di parità. Infatti la formula m + 1 <= 2P – P (con m=4 in quanto ho quattro
bit) è soddisfatta per P=3 (3 bit di parità) 4 – 1 <= 23 – 3 (5<= 5)
I bit di parità vanno nelle posizioni che sono multiple di potenze di due, ovvero: 1 2 e 4
Iniziamo inserendo i bit di dato
0 0 0 1 1 1 1
* * * *
* * * *
* * * *
Gli asterischi indicano i bit che intervengono nel calcolo del relativo bit di parità.
A questo punto si calcolano facilmente i biti di parità (come riportato in verde nello schema)
P P D P D D D P D D
0 1 1 0 0 1 1 0 0 0
P P D P D D D P D
0 0 1 1 0 1 0 1 1
RILEVARE EVENTUALI ERRORI DEI SEGUENTI DATI CODIFICATI CON HAMMING ED ESTRARNE IL
DATO CORRETTO:
1001101
P P D P D D D
1 0 0 1 1 0 1
P P D P D D D
0 1 0 0 1 0 1
Bit di parità Ricevuti Bit di parità Calcolati XOR dei bit (1 quando sono
diversi)
1 0 1
0 1 1
1 0 1
Leggendo il risultato “dal basso in alto” ottengo 111 che in binario è il numero 7
L’errore è dunque nella posizione 7 ovvero nell’ultimo bit di dato
Risolviamo anche gli altri esercizi. In verdi i bit ricevuti, in rosso i calcolati
0010100
P P D P D D D
0 0 1 0 1 0 0
0 1 1 1 1 0 0
0 0 0
0 1 1
0 1 1
P P D P D D D P D D D D
1 1 0 0 1 0 1 1 1 0 1 0
0 0 0 0 1 0 1 0 1 0 1 0
1 0 1
1 0 1
0 0 0
1 0 1