Sei sulla pagina 1di 4

ESERCIZI SULLA CODIFICA DI HAMMING

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?

La forma da utilizzare è d = 2*e + 1. Se voglio identificare due errori: d = 2*2 + 1 = 5


La distanza di Hammin è quindi 5

 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?

La formula da usare è m + 1 <= 2P – P


Il numero di bit è ovviamente 8 (1 byte)
Provando empiricamente con 3 bit di parità otteniamo: 8+1 <= 23-3 ovvero 9 <= 5
che non è quindi verificata
Provando con 4 bit di parità: 8 + 1 <= 24 – 4 ovvero 9 <= 12
Questa è verificata
Servono quindi 4 bit di parità
CODIFICARE CON HAMMING LE SEGUENTI SEQUENZE BINARIE:

 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

Pos 1: P Pos 2: P Pos 3: D Pos 4: P Pos 5. D Pos 6: D Pos 7: D

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)

Si risolvono anche gli altri esercizi:

 101100  Servono 4 bit di parità

P P D P D D D P D D

0 1 1 0 0 1 1 0 0 0

 10101  Servono 4 bit di parità

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

Riporto il dato in uno schema come visto negli esercizi precedenti:

P P D P D D D

1 0 0 1 1 0 1

Segno in colonna i 3 bit di parità ricevuti: 1, 0 e 1


Ora calcolo i biti di parità del dato (considero solo la parte blu e ricalcolo la verde)

P P D P D D D

0 1 0 0 1 0 1

Ora segno in colonna i 3 bit di parità calcolati: 0 1 e 0

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

Ricevuti Calcolati XOR

0 0 0
0 1 1
0 1 1

L’errore è in posizione 110 ovvero in posizione 6 (penultimo bit di dato)


 110010111010

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

Ricevuti Calcolati XOR

1 0 1
1 0 1
0 0 0

1 0 1

L’errore è in posizione 1011 ovvero posizione 11 (penultimo bit di dato).

Potrebbero piacerti anche