Matematica Discreta III
Lezione del giorno 9 maggio 2008
Un caso particolare dell’algoritmo di decodifica (mediante la matrice di decodifica) si ha se C è un
H(r)-codice di Hamming (quindi un [2r-1, 2r-r-1, 3]-codice lineare): esso è un codice perfetto in cui
s=(-1)/2=1, dunque le sfere di raggio 1 e centro nelle distinte parole di C sono una partizione di
Z2n (dove n=2r-1). Ogni parola w di Z2n che non appartiene a C si trova a distanza 1 da una e una
sola parola vC (che è dunque quella a distanza minima): se j è la posizione del bit in cui v, w
differiscono, si ha w=v+ej (dove ej è il vettore di Z2n che ha 1 nella posizione j e tutti gli altri bits 0)
dunque, se H è la matrice di controllo di C:
Syn(w) = wH = vH+ejH = ejH
Se H1,…..,Hn sono le righe di H, ciò equivale a:
Syn(w) = ejH = 0H1+0H2+…+1Hj+…+0Hn = Hj
Dunque, per individuare la parola vC a distanza minima da w, l’algoritmo è il seguente: si calcola
la sindrome di w, si trova la riga di indice j con cui tale sindrome coincide, e si modifica in w il bit
di posizione j (in questo caso perciò non è necessario costruire l’intera matrice di decodifica e le
sindromi delle parole leader).
Esempio: Per esempio per r=3, data la matrice di controllo 7x3 del 3-codice di Hamming H(3):
1

1
1

H = 0
1

0

0
1 1

1 0
0 1

1 1
0 0 
1 0

0 1
se w =1001101Z2n, la sindrome Syn(w)=wH =001 coincide con la riga di indice 7, dunque,
modificando in w il bit di posizione 7, si trova la parola del codice a distanza minima: v =1001100.
Se poi il codice di Hamming H(r) è definito mediante una matrice di controllo (non in forma
standard) con le righe che ordinatamente (dall’alto in basso) sono le rappresentazioni in base 2 dei
numeri 1,2,….,2r-1, allora l’algoritmo di decodifica diventa ancora più semplice: per individuare la
parola vC a distanza minima da w si calcola la sindrome di w, si calcola poi il numero j di cui tale
sindrome è la rappresentazione in base 2, e si modifica in w il bit di posizione j.
Esempio: Per esempio per r=3, data la matrice di controllo 7x3 del 3-codice di Hamming H(3):
0

0
0

H = 1
1

1

1
0 1

1 0
1 1

0 0
0 1 
1 0

1 1
e considerata la parola w =1001101Z2n, calcolando la sindrome wH =110 si osserva che essa è la
rappresentazione in base 2 del numero j=6, dunque, modificando in w il bit di posizione 6, si trova
la parola del codice a distanza minima: v =1001111.
Pattern di errore
Se v,w{0,1}n=Z2n, sappiamo che la distanza di Hamming fra v e w è uguale al peso della somma:
(v,w) = (v+w)
in quanto i bits =1 nella somma corrispondono esattamente ai bits in cui le 2 parole differiscono.
Per questo la parola somma v+w è detta anche pattern di errore relativo alla coppia (v,w) : se v è
la parola trasmessa nel canale di trasmissione e se w è quella ricevuta, i bits =1 del pattern di errore
v+w indicano in quali posizioni sono avvenuti gli errori di trasmissione.
Per esempio se v=01001, w=11100, allora v+w=10101 (errori nel 1°, 3° e 5° bit).
Se il canale di trasmissione è simmetrico e la probabilità di errore (nel singolo bit) è p, fissata la
parola zZ2n , la probabilità che (nell’invio di una parola nel canale) il pattern di errore coincida
con z è esattamente ps(1-p)n-s, se s=(z) è il peso della parola z.
Probabilità di corretta decodifica in un codice lineare
Sia C Z2n un codice lineare di dimensione k, e supponiamo costruita una sua matrice standard di
decodifica:
(wij) i=1,…,2n-k ; j=1,…..,2k (con leaders: w11,w21,….. )
Allora:
Teorema. La decodifica (mediante il principio della minima distanza) è corretta  il pattern di
errore è una delle parole leaders.
Dimostrazione:
Siano v,w rispettivamente la parola trasmessa e quella inviata, e supponiamo che w=wij (dunque w
si trova in riga i e colonna j nella matrice di decodifica). Sappiamo che (mediante il principio della
minima distanza) w viene decodificata come w1j (la parola di C nella 1a riga e nella stessa colonna
j). Dunque la codifica è corretta quando v=w1j .
(): Se per ipotesi v=w1j (decodifica corretta) allora, per il modo in cui si costruisce la matrice di
decodifica:
wij = w = w1j+wi1 = v+wi1 ; v+w = wi1
dunque il pattern di errore coincide con una delle parole leaders (quella della riga i) .
(): Se per ipotesi il pattern di errore coincide con il leader della riga k:
v+w = wk1
allora wk1-w=vC, dunque wk1w (mod C), ossia wk1 si trova nella stessa classe di congruenza (e
quindi nella stessa riga) di w=wij , da cui i=k, wk1= wi1, wij = w = w1j+wi1 = v+w+wi1, v=w1j, e la
decodifica è corretta.