Sunteți pe pagina 1din 125

Appunti Teoria dei Codici

28 settembre 2010
Indice
1 11 Marzo 2010 5
1.1 Binary Simmetric Channel . . . . . . . . . . . . . . . . . . . . . . 5
1.1.1 Procedimento schematico per minimizzare f . . . . . . . . 6
1.1.2 Codicatori a blocchi . . . . . . . . . . . . . . . . . . . . 6
2 16 Marzo 2010 9
2.1 Codice Hamming 7,4 . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1 Codici Binari Lineari . . . . . . . . . . . . . . . . . . . . . 9
3 18 Marzo 2010 14
3.1 Risoluzione esercizio . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.1 Calcolo delle probabilit`a di errore . . . . . . . . . . . . . . 15
3.1.2 Costruire codici lineari binari tramite graci bipartiti . . 15
3.1.3 Ensemble (pag.22) . . . . . . . . . . . . . . . . . . . . . . 15
3.1.4 Entropia di Shannon . . . . . . . . . . . . . . . . . . . . . 16
4 23 Marzo 2010 17
4.1 Entropia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.1.1 Propriet`a di H(X) . . . . . . . . . . . . . . . . . . . . . . 17
4.1.2 Formula di Decomposizione . . . . . . . . . . . . . . . . . 19
5 25 Marzo 2010 20
5.1 Dimostrazioni Propriet`a Entropia . . . . . . . . . . . . . . . . . . 20
5.1.1 Propriet`a dellentropia . . . . . . . . . . . . . . . . . . . . 21
5.1.2 Teorema di Shannon relativo alla compressione . . . . . . 23
6 30 Marzo 2010 24
6.1 Altri richiami di Teoria delle Probabilit`a . . . . . . . . . . . . . . 24
6.2 Legge dei grandi numeri . . . . . . . . . . . . . . . . . . . . . . . 25
7 08/04/2010 29
7.1 Denizioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7.1.1 Entropia Congiunta: . . . . . . . . . . . . . . . . . . . . . 29
7.1.2 Entropia condizionale dato y = b
k
. . . . . . . . . . . . . 29
7.1.3 Entropia condizionale di X dato Y . . . . . . . . . . . . . 29
7.1.4 Entropia marginale di X=H(X) . . . . . . . . . . . . . . . 30
7.1.5 Quantit`a di mutua informazione tra X e Y . . . . . . . . 30
7.2 Modello astratto di canale di trasmissione = Matrice Q . . . . . 30
7.2.1 Esempio 1: Canale binario simmetrico (BSC) . . . . . . . 30
1
INDICE 2
7.2.2 Schema di distribuzione delle quantit`a di informazione . . 31
7.2.3 Esempio 2: Canale di cancellazione simmetrico binario . . 31
7.2.4 Esempio 3: Macchina da scrivere rumorosa . . . . . . . . 32
8 13 Aprile 2010 34
8.1 Richiami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
8.1.1 Esempio tipico . . . . . . . . . . . . . . . . . . . . . . . . 35
8.1.2 Probabilit`a di errore per un codice C . . . . . . . . . . . . 35
8.2 Goal della teoria dei codici . . . . . . . . . . . . . . . . . . . . . 35
8.3 Teorema di Shannon (I parte) . . . . . . . . . . . . . . . . . . . . 36
8.3.1 Esempio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
9 15 Aprile 2010 37
9.1 Dimostrazione del teorema di Shannon . . . . . . . . . . . . . . . 37
9.1.1 Stringhe congiuntamente tipiche . . . . . . . . . . . . . . 37
10 20 Aprile 2010 41
10.1 Capacit`a del canale binario simmetrico . . . . . . . . . . . . . . . 41
10.1.1 Osservazione 1 . . . . . . . . . . . . . . . . . . . . . . . . 42
10.1.2 Osservazione 2 . . . . . . . . . . . . . . . . . . . . . . . . 42
10.1.3 Alternativamente . . . . . . . . . . . . . . . . . . . . . . . 42
10.1.4 Esercizio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
10.2 Codici Lineari Binari . . . . . . . . . . . . . . . . . . . . . . . . . 43
10.2.1 Teorema di Shannon Binario Lineare . . . . . . . . . . . . 43
10.2.2 Altre nozioni sui codici lineari binari . . . . . . . . . . . . 43
11 22 Aprile 2010 46
11.1 Singleton Bound . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
11.1.1 Criterio per calcolare d(C) di un codice lineare binario . . 47
11.1.2 Richiamo di algebra lineare . . . . . . . . . . . . . . . . . 48
12 27 Aprile 2010 51
12.1 Esercizio del testo 15.10 . . . . . . . . . . . . . . . . . . . . . . . 51
13 29 Aprile 2010 55
13.1 Esercizio della volta precedente . . . . . . . . . . . . . . . . . . . 55
14 04 Maggio 2010: Esercitazione 58
14.1 Digressione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
14.2 Esercizio 15.11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
15 6 Mag 10: Message Passing 62
15.1 Esempio fatto dal testo . . . . . . . . . . . . . . . . . . . . . . . 62
15.1.1 Propriet`a di un albero: ogni nodo lo disconnette . . . . . 63
15.1.2 Inizio del processo . . . . . . . . . . . . . . . . . . . . . . 63
15.2 Esercizio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
15.2.1 Calcolo di H(Y) . . . . . . . . . . . . . . . . . . . . . . . 64
15.2.2 Osservazione . . . . . . . . . . . . . . . . . . . . . . . . . 65
15.2.3 Suggerimento . . . . . . . . . . . . . . . . . . . . . . . . . 65
INDICE 3
16 11 Maggio 2010: Altri algoritmi di Message Passing 66
16.1 Contare il numero di cammini tra due punti in una griglia . . . . 66
16.1.1 Algoritmo (parte forward) . . . . . . . . . . . . . . . . . . 67
16.1.2 Algoritmo (parte backward) . . . . . . . . . . . . . . . . . 67
16.2 Costruzione di un cammino random da A a B . . . . . . . . . . . 67
16.3 Algoritmi di min-sum (o algoritmo di Viterbi) . . . . . . . . . . 67
16.3.1 Esempio: cammino a minimo corto . . . . . . . . . . . . . 67
16.4 Esercizio volta precedente . . . . . . . . . . . . . . . . . . . . . . 68
16.5 Altro esercizio volta precedente (15.11) . . . . . . . . . . . . . . . 68
16.6 Capacit`a del canale binario con cancellazione . . . . . . . . . . . 69
17 13 Maggio 2010: Codici associati a tralicci 70
17.1 Denizione di traliccio . . . . . . . . . . . . . . . . . . . . . . . . 70
17.1.1 Altro esempio . . . . . . . . . . . . . . . . . . . . . . . . . 70
17.2 Metodo per costruire una rappresentazione a traliccio di C . . . 71
17.2.1 Osservazione . . . . . . . . . . . . . . . . . . . . . . . . . 72
17.3 Costruzione del traliccio . . . . . . . . . . . . . . . . . . . . . . . 73
18 Tralicci 74
18.1 Introduzione ai tralicci . . . . . . . . . . . . . . . . . . . . . . . . 74
18.2 Notazioni e prime denizioni . . . . . . . . . . . . . . . . . . . . 74
18.3 Matrici in forma ridotta per riga . . . . . . . . . . . . . . . . . . 79
18.4 Caratterizzazione degli spazi C
t
e C
t1
. . . . . . . . . . . . . . 81
18.5 Costruzione del traliccio . . . . . . . . . . . . . . . . . . . . . . . 83
19 18 Maggio 2010: Come costruire un traliccio associato ad un
codice lineare 85
19.1 Esempio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
19.2 Costruzione del traliccio . . . . . . . . . . . . . . . . . . . . . . . 87
20 20 Maggio 2010: ulteriori cenni sulla costruzione dei tralicci 90
20.1 Esempio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
20.2 Costruzione del traliccio del codice Hamming [7,4] . . . . . . . . 92
21 25 Maggio 2010:Bitwise Decoding Problem 102
21.1 Messaggi forward . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
21.2 Messaggi backward . . . . . . . . . . . . . . . . . . . . . . . . . . 103
22 27 Maggio 2010: Codici di convoluzione 105
22.1 Traliccio associato al codice di convoluzione del sistema 22.1 . . . 105
22.2 Troncatura di un codice di convoluzione . . . . . . . . . . . . . . 106
22.3 Codici associati a gra bipartiti . . . . . . . . . . . . . . . . . . . 106
22.3.1 Codici LDCPC (low density parity checks) . . . . . . . . 106
22.4 Factor graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
23 01 Giugno 2010 mattina: esercitazione 109
23.1 Esercizio 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
23.2 Esercizio 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
23.3 Esercizio 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
23.3.1 Calcoliamo la capacit`a . . . . . . . . . . . . . . . . . . . . 112
INDICE 4
24 01 Giugno 2010 pomeriggio 114
24.1 Regole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
24.2 In generale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
25 03 Giugno 2010: LDPC 117
25.1 Esercizio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
25.2 BSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
25.2.1 Metodo non ottimale ma eciente . . . . . . . . . . . . . 118
25.2.2 Algoritmo per calcolo dei marginali nel caso dei codici
LDPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
25.3 Esercizio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
26 08 Giugno 2010 121
26.1 Ottimizzazione del passo dal basso verso lalto . . . . . . . . . . . 122
26.2 Esempio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
26.3 Esercizio 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
26.3.1 Esempio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
26.3.2 Decodica . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Capitolo 1
11 Marzo 2010
A noi non interessa la parte hardware ma sistemi software per ridurre la
probabilit`a di errore di trasmissione su uno stesso canale.
1.1 Binary Simmetric Channel
Il modello astratto di canale su cui ci baseremo si chiama Binary Simmetric
Channel (BSC). Ogni singolo bit, indipendentemente dal fatto che si tratti di
uno 0 o di un 1, ha la stessa probabilit`a di essere corrotto.
f = probabilit`a che un bit sia cambiato nel suo opposto (f <
1
2
) (1.1)
x = bit trasmesso y = bit ricevuto
0 0
1 1
1-f
1-f
f
f
Figura 1.1: Binary Simmetric Channel
f e 1 f devono essere trattate come probabilit`a condizionali.
p(y[x) = probabilit`a che sia ricevuto y sapendo che `e stato trasmesso x
p(y = 0[x = 0) = 1 f p(y = 0[x = 1) = f
p(y = 1[x = 0) = f p(y = 1[x = 1) = 1 f
5
CAPITOLO 1. 11 MARZO 2010 6
1.1.1 Procedimento schematico per minimizzare f
Al messaggio s (k bit) vengono aggiunti dei bit di ridondanza (ottenendo N > k
bit) usati per controllare la validit`a della trasmissione.
ENCODER
NOISY CHANNEL
DECODER
source
destination
s = messaggio inviato
t r = messaggio ricevuto
= messaggio ricevuto
Figura 1.2: Schema di trasmissione
N.B Se r = t, allora s = s
Stessa cosa se r ,= t di poco
1.1.2 Codicatori a blocchi
s = sequenza di k bit
t = sequenza di N bit, N > k
Rate del codice: R =
k
N
< 1
La capacit`a di correggere pi` u errori comporter`a dei rate pi` u bassi.
Esempio con k = 1, N = 3, possibilit`a di correggere 1 errore.
s 0, 1 0 (0, 0, 0)
t(s) = (s, s, s) 1 (1, 1, 1)
Se r = (r
1
, r
2
, r
3
)
decoder
s = (majority decoder) = valore che gura a
maggioranza.
Se avessimo usato N = 2 avremmo potuto decidere che c`e un errore, ma non
avremmo potuto correggerlo. Questo decoder realizza la decodica a massima
probabilit`a Maximum Likelihood Decoding. Infatti proviamo che la scelta
di prendere il valore maggioritario di s massimizza la funzione P(s[r
1
, r
2
, r
3
).
CAPITOLO 1. 11 MARZO 2010 7
Assumiamo f <
1
2
e che ogni bit s abbia la stessa probabilit`a di far parte del
messaggio.
P(s[r
1
, r
2
, r
3
) =
Bayes

P(r
1
, r
2
, r
3
[s)P(s)
P(r
1
, r
2
, r
3
)
Quindi vogliamo massimizzare
P(r
1
, r
2
, r
3
[s) = P(r
1
, r
2
, r
3
[t(s)) = P(r
1
[t
1
(s))P(r
2
[t
2
(s))P(r
3
[t
3
(s))
P(r
i
[t
i
) =
_
1 f se r
i
= t
i
f se r
i
,= t
i
Vogliamo confrontare P(r[s = 0) e P(r[s = 1). Analizziamo il rapporto
P(r[s = 1)
P(r[s = 0)
=
3

i=1
P(r
i
[t
i
(1))
3

i=1
P(r
i
[t
i
(0))
Tale frazione `e > 1 quando la maggioranza degli r
i
`e = 1
P(r
i
[t
i
(1))
P(r
i
[t
i
(0))
=
_
1f
f
se r
i
= 1
f
1f
se r
i
= 0
In generale in un Binary Symmetric Channel (da ora in poi BSC), qualsiasi sia
il codice, la decodica Maximum Likelihood (da ora in poi ML) coincide con la
decodica a massima somiglianza, cio`e r viene trasformata in t( s) tale che r e
t(s) siano pi` u vicini possibile. Precisamente, denendo per x, y 0, 1
N
d(x, y) = #i[x
i
,= y
i
(distanza di Hamming)
allora si sceglie t( s) tale che d(r, t( s)) `e minima al variare di s in 0, 1.
Esempio: r = (1, 0, 1) allora si pone t( s) = (1, 1, 1) e di conseguenza s = 1
d(r, (1, 1, 1)) = 1
d(r, (0, 0, 0)) = 2
Un codice C `e un sottoinsieme C = 0, 1
N
dotato di una corrispondenza
biunivoca 0, 1
k

C. Nel nostro linguaggio lencoder calcola e C =
t(s)[s 0, 1
k
= (01
k
). Encoder
1
`e facilmente calcolabile. A volte `e
necesario prima trovare la parola pi` u vicina del codice e poi applicare Encoder
1
,
altre volte si pu`o trovare direttamente il messaggio. Perche la probabilit`a degli
errori si `e abbassata? Chiamiamo R
3
il codice di ripetizione
s (1, 1, 1) rate =
1
3
Qual `e la probabilit`a che il codice non riesca a correggere un singolo bit? (P
b
)
P
b
= probabilit`a che si siano vericati 2 o 3 errori
CAPITOLO 1. 11 MARZO 2010 8
P
2err
= P(2[f, 3) =
_
3
2
_
f
2
(1 f) =
3!
1!2!
f
2
(1 f) =
3

2
1

2
f
2
(1 f)
P
3err
= P(3[f, 3) =
_
3
3
_
f
3
(1 f)
0
=

3!
0!

3!
f
3
P
b
= 3f
2
(1 f) +f
3
3f
2
Quindi se f = 0.1 =
1
10
allora P
b
0.03 =
3
100
.
Il testo fa un esempio riguardante un giga di dati al giorno per 10 anni, la
cui soluzione `e N 60
_
rate
1
60
_
. Applicando il teorema di Shannon potrebbe
bastare N 2
Capitolo 2
16 Marzo 2010
2.1 Codice Hamming 7,4
k = 4 N = 7 r =
4
7
2.1.1 Codici Binari Lineari
F
2
= 0, 1
Operazioni:
AND, che indicheremo come prodotto xy x AND y
XOR, che indicheremo come somma x +y x XOR y
F
2
, x, `e un campo
0 1
0 0 0
1 0 1
+ 0 1
0 0 1
1 1 0
F
N
2
= (x
1
...x
N
)[x
i
F
2
, i = 1...N `e uno spazio vettoriale su F
2
con
(x
1
...x
N
)+(y
1
...y
N
) = (x
1
+y
1
, . . . , x
N
+y
N
) e (x
1
, . . . , x
N
) = (x
1
, , x
N
)
per N F
2
.
S K
N
`e sottospazio vettoriale se 0 S, S `e chiusa rispetto alle operazioni +,
opposto (v S v S), scalari ( k, v S v S)
Denizione classica
C F
N
2
si dice codice binario lineare a blocchi di lunghezza N se C F
N
2
`e un
sottospazio vettoriale.
Osservazione
C F
N
2
`e codice lineare, cio`e un sottospazio vettoriale, se e solo se:
F
N
2
(0, . . . , 0) = 0 C
v
1
, v
2
C v
1
+v
2
C
Le altre condizioni sono automatiche:
9
CAPITOLO 2. 16 MARZO 2010 10
v = v e v =
_
0 = (0, . . . , 0) se = 0
v se = 1
BASE: Dato V , spazio vettoriale sul campo K, una sequenza di vettori
v
1
, . . . , v
d
V si dicono una base di V se v V esistono unici coecienti

1
. . .
d
K tali che v =
1
v
1
+ . . . +
d
v
d
(v `e combinazione lineare di
(v
1
, . . . , v
d
)). In ogni caso il numero di elementi di una base di V non dipende
dalla base scelta e si chiama d =dimensione di V
Teorema(costruttivo). Esistono sempre basi di uno spazio vettoriale
Se V `e uno spazio vettoriale su F
2
ed `e un insieme nito (es. F
N
2
) allora
esister`a una base nita v
1
. . . v
d
di V e, data la denizione di base, gli elementi
di V sono in corrispondenza biunivoca con le d-uple dei (
1
. . .
d
),
i
F
2
in
questo modo:
v (
1
, . . . ,
d
) v =
1
v
1
+. . . +
d
v
d
CONSEGUENZA
Gli elementi di V sono 2
d
= #d-uple(
1
. . .
d
)
#V = 2
d
d `e indipendente dalla base scelta.
ESEMPIO
V F
4
2
V = (x
1
, x
2
, x
3
, x
4
)[x
1
+x
2
+x
3
+x
4
= 0
`e un sottospazio vettoriale di dimensione 3 con base particolare costruita ad
esempio nel modo seguente:
x
1
+x
2
+x
3
+x
4
= 0
x
4
= (x
1
+x
2
+x
3
) = x
1
+x
2
+x
3
(x = x in F
2
) (2.1)
V ha 2
3
elementi.
Una base di V pu`o essere trovata imponendo successivamente:
(x
1
, x
2
, x
3
) =
_

_
(1, 0, 0)
(0, 1, 0)
(0, 0, 1)
Notare che (x
1
, x
2
, x
3
) = x
1
(1, 0, 0) +x
2
(0, 1, 0) +x
3
(0, 0, 1). In corrispondenza
a tali valori per (x
1
, x
2
, x
3
) troviamo usando la (2.1):
v
1
= (1, 0, 0, 1); v
2
= (0, 1, 0, 1); v
3
= (0, 0, 1, 1) basi di V
Un vettore generico di V `e v =
1
v
1
+
2
v
2
+
3
v
3

1
,
2
,
3
0, 1. Segue:
V = (0, 0, 0, 0); v
1
; v
2
; v
3
; v
1
+v
2
; v
1
+v
3
; v
2
+v
3
; v
1
+v
2
+v
3

Ricordiamo che un sottospazio vettoriale di K


N
(K campo) pu`o essere denito
nei seguenti 2 modi:
1) Come insieme di soluzioni di un sistema omogeneo di equazioni di
CAPITOLO 2. 16 MARZO 2010 11
I grado.
Notazione compatta: H x
T
= 0
x = (x
1
, . . . , x
N
) vettore incognito di K
N
H matrice rN a coecienti in K, 0 =
_
_
_
0
.
.
.
0
_
_
_
_

_
r lo zero di K
r
Pi` u esplicitamente:
H =
_
_
_
h
11
. . . h
1N
.
.
.
.
.
.
.
.
.
h
r1
. . . h
rN
_
_
_
La notazione H x
t
= 0 `e equivalente a
_

_
h
11
x
1
+. . . +h
1N
x
N
= 0
.
.
.
h
r1
x
1
+. . . +h
rN
x
N
= 0
Notare che non necessariamente le equazioni devono essere indipendenti
ma se ci`o accade allora dim
k
V = N r. Un criterio per vericare se ci`o accade
`e trovare un minore rr non nullo dentro H.
Esempio: H =
_
1 0 1 1
0 1 1 0
_
_
x
1
+x
3
+x
4
= 0
x
2
+x
3
= 0
H
_
_
_
_
x
1
x
2
x
3
x
4
_
_
_
_
=
_
0
0
_
il minore
1 0
0 1
di H `e non nullo
V = (x
1
, x
2
, x
3
, x
4
)[Hx
t
= 0 ha dimensione 2
2) V K
N
rappresentato come insieme di tutte le combinazioni
lineari di un insieme di vettori ssato.
v
1
. . . v
h
K
N
ssati
V =
1
v
1
+. . . +
h
v
h
[
i
K
Notare che non si richiede necessariamente che v
1
. . . v
h
siano indipendenti. Se
ci`o accade v
1
. . . v
h
`e una base di V e la dim
k
V = h.
Esempio:
v
1
= (1, 0, 1, 0)
v
2
= (0, 1, 0, 1)
V =
1
v
1
+
2
v
2
[
i
F
2
`e un vettore di dimensione 2. Infatti v
1
, v
2
sono indipendenti:
CAPITOLO 2. 16 MARZO 2010 12
G =
_
v
1
v
2
_
=
_
1 0 1 0
0 1 0 1
_
rkG = dimV
Riassumendo:
1) Se V = x[Hx = 0 K
n
dimV = N rkH
2) Se V =
1
v
1
+. . . +
h
v
h
[
i
K e G =
_
_
_
v
1
.
.
.
v
h
_
_
_ dimV
K
= rkG
Esempio: codice di Hamming [7,4]
C F
7
2
denito dal sistema
_

_
x
5
= x
1
+x
2
+x
3
x
6
= x
2
+x
3
+x
4
dim
F
2
C = 4
x
7
= x
1
+x
3
+x
4
x C x = (x
1
, x
2
, x
3
, x
4
. .
MESSAGGIO
, x
1
+x
2
+x
3
, x
2
+x
3
+x
4
, x
1
+x
3
+x
4
. .
BIT DI CONTROLLO
)
C `e anche dato da H x
t
= 0 con
H =
_
_
1 1 1 0 1 0 0
0 1 1 1 0 1 0
1 0 1 1 0 0 1
_
_
#C = 2
4
= 16
rate =
dimV
F
2
lunghezza di V
=
4
7
Supponiamo che si verichi un solo errore durante la trasmissione di x :
y =parola ricevuta=x +n
n F
7
2
vettore con un solo 1 fra le componenti ad esempio n = (0, 1, 0, 0, 0, 0, 0)
In generale y = x + n dove n = vettore errori che ha 1 sui bit dove si `e
vericato errore, 0 altrimenti.
Osservazione
H matrice di controllo di C.
Calcoliamo la sindrome di y =
def
H y
T
= H(x
T
+ n
T
) = H x
T
+ H n
T
=
0 +H n
T
= H n
T
Quindi calcolare la sindrome sulla parola ricevuta da lo stesso risultato
che calcolare la sindrome sullerrore. Per`o, mentre la sindrome sullerrore non
`e calcolabile, quella sulla parola lo `e.
Le possibili sindromi sono tutti i possibili valori di H n
T
F
3
2
(H matrice
37, n F
7
2
). In tutto 2
3
= 8 valori.
CAPITOLO 2. 16 MARZO 2010 13
ESERCIZIO
Vericare che tutte le 8 possibili sindromi si ottengono da n = 0 oppure
n = l
i
= (0, . . . , 1
i
, . . . , 0) i = 1 . . . 7
l
1
= 1000000
l
2
= 0100000
.
.
.
l
i
= 0 . . . 1
i
. . . 0
.
.
.
Quindi vi `e corrispondenza biunivoca tra linsieme n F
7
2
[w(n) 1 e
w(n) = #i[n
i
,= 0 dove w = weight
DECODER:
y Hy
T
F
7
2
dove H = s(y) = sindrome di y
Cerca nel database n[s(y) = Hn con w(n) 1
Correggi y y +n
Fine.
Questo procedimento corregge un solo errore.
Capitolo 3
18 Marzo 2010
3.1 Risoluzione esercizio
_
_
1 1 1 0 1 0 0
0 1 1 1 0 1 0
1 0 1 1 0 0 1
_
_
Provare che per n = 0 oppure n = l
i
= (0, . . . , 1, . . . , 0) per i = 1 . . . 7 si hanno
tutte le possibili sindromi calcolando H n
T
in F
3
2
.
Supposto di aver fatto questo esercizio, la conseguenza `e che vi sia una
corrispondenza biunivoca tra n[w(n) 1 spazio sindromi F
3
2
.
Se x = parola trasmessa, y = x + n `e la parola ricevuta con w(n) 1 allora
calcolando la sindrome di y
H y
T
= s F
3
2
infatti H y
T
= H(x
T
+n
T
) = Hx
T
=0
+Hn
T
Essendo la biezione s n tale che w(n) 1
Possiamo ricostruire n conoscendo s.
s y +n = x +n +n
Supponiamo ora che
w(n) = 2 Es.n = (0, 1, 0, 0, 1, 0, 0) = l
1
+l
2
n = l
i
+l
j
i ,= j
Osservazione (Osservazione non percepita)
Conseguenza: in C non vi sono vettori di peso 2. I pesi delle parole del
codice sono 3.
Supponiamo che il nostro processo di decodica per x y = x + n
fallisca ma trasformi comunque la parola ricevuta in una parola del codice. Ci`o
vuol dire che lunico vettore n

di peso 1 tale che Hn

= Hy (lunico vettore
che d`a la sindrome di y) `e diverso da n. Otteniamo quindi una parola x

,= x
y y +n

= x +n +n

= x

,= x
x

pu`o appartenere ancora a C poiche H(y


T
+n
T
) = Hy
T
+Hn
T
= 0
14
CAPITOLO 3. 18 MARZO 2010 15
Quindi inviato Pippo potrebbe arrivare Mario. Studiamo z = x x

=x+x

.
Osserviamo che C `e un sottospazio vettoriale, quindi z C. Il peso di z `e 3.
Dunque se il processo di decodica fallisce cambiano almeno 3 bit.
3.1.1 Calcolo delle probabilit`a di errore
f = probabilit`a di errore del canale su un bit.
La probabilit`a di errore nella decodica `e la probabilit`a che si siano vericati 2
o pi` u errori nella trasmissione.
P
err
= P
2err
+P
3err
+P
4err
+. . .
Coppie di posti i, j con lerrore:
_
7
2
_
. Per ciascuna di queste coppie abbiamo una
probabilit`a (credo sia sbagliato) f
2
(1
1
f
5
+
_
7
3
_
f
3
(1f)
4
+. . . +
_
7
2
_
f
7
= 21f
2
.
Poiche se c`e un errore i bit sbagliati sono almeno 3, se cerchiamo la probabilit`a
di errore P
b
ottenuta grazie a C sul singolo bit, lordine di P
b
`e ottenuto dal caso
di 2 errori di trasmissione dei 7 bit ed in tal caso il procedimento di correzione
ne produce 3 sulla parola corretta. Un bit random ha probabilit`a
3
7
di ricadere
tra questi; quindi in totale la P
b
`e (asintoticamente)
3
7
21f
2
= 9f
2
.
3.1.2 Costruire codici lineari binari tramite graci
bipartiti
In Hamming ogni checkbit (vertice a destra) `e collegato con gli input bit (bit
di messaggio, a sinistra): Se prendiamo un grafo random `e molto probabile
x
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x
9
Figura 3.1: codice a 9 bit
produrre dei buoni codici.
3.1.3 Ensemble (pag.22)
X = (x, A
x
, P
x
) dove x `e una variabile aleatoria, A `e linsieme dei valori x e P
x
`e la probabilit`a che x = a. Partendo da una coppia x, y di variabili aleatorie si
costruisce una funzione a valori in A
x
A
y
. Ci`o da luogo ad un ensemble. Fare
dal libro: marginalizzazione, indipendenza, probabilit`a condizionale, regola di
bayes, likelyhood, evidenza.
Esempio
Consideriamo di avere due urne, ognuna con 3 palline. Lurna A contiene una
CAPITOLO 3. 18 MARZO 2010 16
pallina nera e due bianche, lurna B ne contiene due nere e una bianca. Qual `e
la probabilit`a che lurna selezionata sia la A?
P(A[b) =
=
1
3
P(b[A)
=
1
2
P(A)
P(b)
=
1
2
=
1
3
3.1.4 Entropia di Shannon
Quantit`a di informazioni di x:
h(x) = log
2
1
P(x)
0
(un valore meno probabile porta pi` u informazione di un valore pi` u probabile)
H(X) =

x
P(x = a) h(a) =

x
P(x)log
1
P(x)
Propriet`a di H(X)
1) H(X) 0 e H(X) = 0 P
i
= 1 per un solo i.
Quindi pi` u il graco `e a picco e pi` u lentropia `e bassa.
2) Lentropia `e massima quando P(x) =
1
A
x
dx (probabilit`a uniforme) e
H(x)
max
= log [A
x
[
3) Additivit`a: se x e y sono indipendenti allora
H(x, y) =

(x,y)A
x
A
y
P(x, y) log
1
P(x, y)
= H(x) +H(y)
Capitolo 4
23 Marzo 2010
I contenuti di
questa lezione
si trovano sul
libro a partire
da pag. 22
4.1 Entropia
X = (x, A
x
, P) dove:
x = variabile aleatoria
A
x
= distribuzione dei valori di x
P = distribuzione di probabilit`a in A
x
a
i
P(x = a
i
) a
i
A
i
H(X) =
def

xA
x
P(x) log
1
P(x)
se A
x
= x
1
. . . x
n
H(X) =
n

i=1
P(x
i
)
_
log
1
P(x)
_
che `e una media su
insieme di probabilit`a.
Convenzione: se P
i
= 0 si pone il termine P
i
log
1
P
i
= 0.
4.1.1 Propriet`a di H(X)
1) H(X) 0 e H(X) = 0 P(x) =
_
1 se x = x
i
0 altrimenti
per qualche i.
In altri termini la variabile aleatoria x `e costante cio`e ha un solo valore x
i
con probabilit`a 1 e gli altri valori con probabilit`a 0.
2) H(x) log
2
[A
x
[ e H(x) = log
2
[A
x
[ P(x
i
) =
1
|A
x
|
i (P `e la distribuzione
uniforme). Una variabile aleatoria che da pi` u informazioni `e quella che
minimizza lentropia.
3) Se X = (x, A
x
, P(x)), Y = (y, A
y
, P(y)) e x, y sono variabili aleatorie
indipendenti cio`e P(x, y) = P(x)P(y) allora H(X; Y ), che sarebbe lentropia
considerando la distribuzione di probabilit`a congiunta, = H(X) + H(Y )
(additivit`a).
4) Decomponibilit`a dellentropia
Supponiamo che il nostro insieme dei valori della variabile aleatoria X sia
17
CAPITOLO 4. 23 MARZO 2010 18
decomposto in
A
x
= A
1
. . . A
n
unione disgiunta, ovvero A
i
A
j
= i ,= j
Conoscendo X = (x, A
x
, P) sappiamo P(A
i
) =

x
i
jA
i
P(x
ij
).
Consideriamo gli n ensemble X = (x, A
x
, P(x)) dedotti da X considerando
le probabilit`a condizionate
X = (x, A
i
, P
i
) i = 1 . . . n
dove P
i
(x) =
_
P(x)
P(A
i
)
se e solo se x A
i
0 altrimenti
Notare che

xA
i
P(x)
P(A
i
)
=
P(A
i
)
P(A
i
)
= 1
Osservazione
La conoscenza di X = (x, A
x
, P) equivale alla conoscenza delle distribuzioni:
P
A
= (P(A
1
), . . . , P(A
n
))
P
1
su X
1
= (x, A
1
, P
1
)
.
.
.
P
n
su X
n
= (x, A
n
, P
n
)
Esempio
Supponiamo che il valore di una variabile aleatoria sia determinato da due lanci
successivi di una moneta:
1 lancio per decidere se x = 0 o x ,= 0
2 lancio per decidere se x = 1 o x = 2 (nel caso x ,= 0)
X = (x, A
x
, P)
A
x
= 0, 1, 2
P(0) =
1
2
P(1) =
1
4
P(2) =
1
4
Come vedere questo sistema decomponendolo come prima? Possiamo
decomporre A
x
come lunione di
A
x
= 0
=A
1
1, 2
=A
2
(n = 2)
P(A
1
) =
1
2
P(A
2
) =
1
2
P
1
(0) =
P(0)
P(A
1
)
=
1
2
1
2
= 1
X
1
= (x, A
1
, P
1
) = (x, 0, P
1
(0) = 1)
P
2
(1) =
P(1)
P(A
2
)
=
1
4
1
2
=
1
2
CAPITOLO 4. 23 MARZO 2010 19
P
2
(2) =
P(2)
P(A
2
)
=
1
4
1
2
=
1
2
X
2
= (x, A
2
, P
2
) =
_
x, 1, 2, P
2
(1) =
1
2
, P
2
(2) =
1
2
_
Questa `e la decomposizione pi` u naturale. Se conoscessimo la P potremmo
anche dividere in A
x
= 0, 1 2.
4.1.2 Formula di Decomposizione
H(x) = H(P(A
1
), P(A
n
)) +P(A
1
)H(x
1
) +. . . +P(A
n
)H(x
n
).
Notare che H(x
i
) si calcola relativamente alla distribuzione di probabilit`a
P
i
=
P
P(A
i
)
Applichiamo la formula dellentropia:
H(x) = H(P(A
1
), P(A
2
))+P(A
1
)H(x
1
)+P(A
2
)H(x
2
) = H
_
1
2
,
1
2
_
+
1
2
H(X
1
)+
1
2
H(X
2
)
X
1
= (x, 0, P = 1)
H(x
1
) = P
1
(0) log
1
P
A
(0)
= 1 log
1
1
= 0
X
2
=
_
x, 1, 2, P
2
(1) =
1
2
, P
2
(2) =
1
2
_
H(X
2
) = H
_
1
2
,
1
2
_
Quindi
H(X) = H
_
1
2
,
1
2
_
+
1
2
(H
1
=0
)+
1
2
H(
1
2
,
1
2
) =
3
2
H(
1
2
,
1
2
) =
3
2
_
1
2
log
1
1
2
_
=
3
2
log 2 =
3
2
Ricalcoliamo H usando le distribuzioni P a priori:
P(0) =
1
2
P(1) =
1
4
P(2) =
1
4
H(X) =
1
2
log
1
1
2
+
1
4
log 4 +
1
4
log 4 =
1
2
+
2
4
+
2
4
=
3
2
Problema/Esercizio
12 biglie esteticamente identiche
11 di esse hanno lo stesso peso
1 pesa dierentemente dalle altre (non si sa se pesi pi` u o meno delle altre).
Abbiamo una disposizione a bilancia.
Provare che con sole 3 pesate `e possibile individuare la biglia speciale e dire se
pesa pi` u o meno delle altre.
Capitolo 5
25 Marzo 2010
5.1 Dimostrazioni Propriet`a Entropia
1)H(x) 0 (ovvio) perche H(x) =

P
i
0
log
1
P
i
>0
0
Supponiamo che H(x) = 0. Allora deve essere P
i
log
1
P
i
= 0i cio`e
_

_
P
i
= 0
oppure
log
1
P
i
= 0
1
P
i
= 1 P
i
= 1
Poiche la somma

P
i
= 1 e tutti i
P
i
sono 0 oppure 1 allora un solo P
i
= 1 e gli altri P
i
= 0.
Per provare la propriet`a 2 abbiamo bisogno di altri strumenti:
Denizione. Una funzione F : (a, b) R si dice convessa () se per ogni
x
1
, x
2
(a, b) ed ogni 0 1 f(x
1
+(1)x
2
) f(x
1
) +(1)f(x
2
)
Analogamente f si dice convessa () se vale la disuguaglianza opposta.
Condizione Suciente per la convessit`a.
f `e -convessa se f

(x) > 0x (a, b)


f `e -convessa se f

(x) < 0x (a, b)


Esempi di funzioni -convesse: e
x
e
x
log
1
x
xlog x x
2
Esempi di funzioni -convesse: log x x
2
Si possono provare tutti col criterio delle derivate.
Denizione. f si dice strettamente convessa se
f(x
1
+ (1 )x
2
) < f(x
1
) + (1 )f(x
2
) x
1
< x
2
0 < < 1
Le funzioni viste sono tutte strettamente convesse. Per le funzioni convesse
vale il seguente lemma:
Disuguaglianza di Jensen.
x variabile aleatoria
Denotiamo con (x)=media=

x
i
A
x
P(x
i
) x
i
20
CAPITOLO 5. 25 MARZO 2010 21
Sia f una funzione -convessa. Allora f(x) `e una nuova variabile aleatoria
ottenuta per composizione ed `e tale che
(f(x)) f((x))
cio`e

P(x
i
)f(x
i
) f
_

xA
x
P(x
i
)x
i
_
Osservazione
Il caso in cui x abbia 2 soli valori x
1
e x
2
`e equivalente alla convessit`a di f.
P(x
1
)f(x
1
)+P(x
2
)+f(x
2
) = f(x
1
)+(1)f(x
2
)
-convessit`a
f(x
1
+(1)x
2
) = f((x))
Il caso generale di n valori x
1
. . . x
n
si ottiene osservando che comunque
sia se
i
0,

i
= 1 allora
1
x
1
+ . . . +
n
x
n
`e interno allintervallo
(min(x
i
), max(x
i
)).
Dimostrazione di (2)
H(x) =

P
i
log 1P
i
Prendiamo f(x) = log x, per cui f`e -convessa. Per la disuguaglianza di
Jensen per funzioni -convesse che ci dice che f((x)) ((P(x)) abbiamo
H(x) =

P
i
log
1
P
i
=

P
i
f
_
1
P
i
_
= (f(x)) dove x `e la variabile aleatoria
x =
1
P
i
H(X) f((x)) = f
_

P
i
1
P
i
_
= log
_

iA
x
1
_
> log [A
x
[
Dalla stretta convessit`a di f(x) = log(x) si deduce che H(X) = log [A
x
[
P(x) =
1
|A
x
|
i.
5.1.1 Propriet`a dellentropia
X = (x, A
x
, P) dove A `e un alfabeto.
H(x) =

xA
x
P(x) log
1
P(x)
Propriet`a
1) H(x) 0 e H(x) = 0 solo per P(x) =
_
1 x = x
0 x ,= x
2) H(x) log [A
x
[ con uguaglianza se P(x) =
1
A
x
3) Se X, Y sono ensemble indipendenti cio`e le variabili aleatorie x, y hanno
P(x, y) = P(x) +P(y) allora H(X, Y ) = H(X) +H(Y ).
4) Decomponendo A
x
= A
1
. . . A
n
(unione disgiunta)
H(X) = H(H(A
1
), . . . , H(A
n
)) +. . . +

P(A
i
)H(X
i
) X
i
= (x
i
, A
i
, P
x
)
CAPITOLO 5. 25 MARZO 2010 22
Riguardo la (2) nel caso delluguaglianza proviamo solamente che il valore
massimo log
2
[A
x
[ `e raggiunto per P(x) =
1
A
x
x. Infatti

xA
x
1
A
x
log
1
1
|A
x
|
=

xA
x
1
[A
x
[
log [A
x
[ = log [A
x
[
Dimostrazione di (3)
H(X, Y ) =

(x,y)A
x
+A
y
P(x, y) log
1
P(x,y)
=

x,y
P(x)P(y) log
1
P(x,y)
=

x,y
P(x)P(y)
_
log
1
P(x)
+ log
1
P(y)
_
=

x,y
P(x)P(y) log
1
P(x)
+

x,y
P(x)P(y) log
1
P(y)
=

y
P(x)

x
P(x) log
1
P(x)
+

x
P(x)

y
P(y)
1
P(y)
=

y
P(y)H(X) +

x
P(x)H(y) = H(x) +H(y)
Dimostriamo la decomponibilit`a (4)
x = A
x
= A
1
. . . A
n
H(X) =

xA
x
P(x) log
1
P(x)
=
n

i=1

x
i
A
i
P(x
i
) log
1
P(x
i
)
=
n

i=1

x
i
A
i
P(A
i
)
P(x)
P(A
i
)
log
P(A
i
)
P(x
i
)

1
P(A
i
)
=

i=i
nP(A
i
)
n

i=i
P(A
i
)

xA
i
P
i
(x
1
)
_
log
1
P
i
(x
i
)
+ log
1
P(A
i
)
_
=
n

i=1
P(A
i
)

x
i
A
i
P
i
(x
i
) log
1
P
i
(x
i
+
n

i=1
P(A
i
) log
1
P(A
i
)

xA
i
P(x)
Gioco delle 12 biglie
i indice della biglia strana
i
+
se pesa pi` u delle altre
I

se pesa meno delle altre


24 stati possibili: 1

, 2

. . . , 12

, 1
+
, . . . , 12
+

Possibili risultati di ogni pesata: L(left), B(balanced), R(right). Tre pesate


consecutive danno luogo a 3
3
possibili valori. Due sole pesate danno luogo a
3
2
= 9 < 24, quindi 2 pesate non possono individuare la biglia giusta.
Metodo possibile per trovare la strategia delle pesate
Massimizziamo la quantit`a di informazione media che una pesata riesce a
produrre (entropia):
X
1
= (x, A
x
= L, B, R , P(L), P(B), P(R))
X dipende dei sottoinsiemi delle biglie che si intende pesare. Ad esempio, se il
primo sottoinsieme contiene 1, 2, 3, 4, 5, 6 e il secondo 7, 8, 9, 10, 11, 12.
In questo caso P(L) = P(i 1, . . . , 12) +P(i 1 . . . , 12) =
6
24
+
6
24
=
1
2
P(B) = 0 P(R) =
1
2
H(x) = P(
1
2
,
1
2
) =
1
2
log 2 +
1
2
log 2 = 1
Altro tipo di pesata: 1, 2, 3, 4 e 5, 6, 7, 8
P(L) = P(i 1
+
, 2
+
, 3
+
, 4
+
, 5

, 6

, 7

, 8

) =
8
24
=
1
3
P(B) = P(i 9

, 10

, 11

, 12

, ) =
8
24
=
1
3
P(R) =
1
3
Abbiamo raggiunto la distribuzione uniforme che sappiamo essere quella che d`a
lentropia massima:
H(x) = log 3 > 1
Supponiamo di avere ottenuto L. Allora lo spazio degli stati diventa pi` u ristretto:
1
+
, 2
+
, 3
+
, 4
+
, 5

, 6

, 7

, 8

CAPITOLO 5. 25 MARZO 2010 23


La nuova probabilit`a di ogni stato di questo nuovo sistema `e P(s[L) =
1
24
1
3
=
1
8
(uniforme di nuovo)
Il meglio che posso fare per massimizzare H `e trovare una pesata con
P(L), P(B), P(R) =
_
3
8
,
3
8
,
3
8
_
X =
def
(x, A
x
, P)
Contenuto grezzo di bit di X `e H
B
(X) = ,log [A
x
[|
Osservazione
H(x) < H
0
(X) in generale
Fissato 0 < < 1
Denizione: linsieme -suciente di A
x
`e il pi` u piccolo sottoinsieme S

A
x
tale che P(x S

) > 1 f
Denizione: il contenuto in bit essenziale di X `e H

(X) = log [S

[
5.1.2 Teorema di Shannon relativo alla compressione
X
N
= (x
1
. . . x
N
) sequenza di variabili aleatorie equidistribuite ed indipendenti
(es. x
i
=lancio di una moneta)
In particolare P(x
1
. . . x
n
) = P(x) P(x
n
)
Osservazione
H(X
N
) =
prop3
NH(X) X = (x, A
x
, P)
Consideriamo H

(X
N
):
Teorema:
lim
N
1
N
H

(X
N
) = H(x) indipendentemente da . Usando la denizione di
limite il teorema si pu`o esprimere nel modo seguente:
0 < < 1 > 0 N
0
tale che N > N
0
si ha

1
N
H

(X
N
) H(x)

<
ossia
H(x) <
1
N
H

(X
N
)
. .
log |S
,N
|
< H(x) +
In particolare log [S
,N
[ < N(H +).
[S
,N
[ < 2
N(H+)
Capitolo 6
30 Marzo 2010
Sorgente
Compressione
Codificatore
Canale
rumoroso
Decodificatore
Decompressore
Diminuisce la
dimensione
Aumenta la dimensione
(ridondanza)
Teorema del
canale rumoroso
di Shannon
Teorema di
compressione di
Shannon
Figura 6.1: Shannon
6.1 Altri richiami di Teoria delle Probabilit`a
Notazioni:
Se u `e variabile aleatoria:
Media: c [u] =

uA
P(u)u = u
Varianza: var(u) =
2
u
= c (u u)
2
=

uA
P(u)(u u)
2
Osservazione:

(u u) = 0
24
CAPITOLO 6. 30 MARZO 2010 25
6.2 Legge dei grandi numeri
Esempio
1=testa P(1) =
1
2
0=croce P(0) =
1
2
_
variabile aleatoria x
N lanci di una moneta
(x
1
. . . x
N
) e consideriamo u =
1
N
n

x
i
=1
x
i
=numero di volte che `e uscito testa in
N lanci.
Per la legge dei grandi numeri la distribuzione di probabilit`a `e una gaussiana
molto stretta intorno al valore medio.
Versione debole della legge dei grandi numeri
Teorema. Siano h
1
. . . h
N
N variabili aleatorie indipendenti a valori reali con
stessa media h e stessa varianza h
2
. Costruiamo la variabile aleatoria
x =
1
N
N

i=1
h
i
Allora la media di x `e ancora h e > 0 (P(x h)
2
)

2

N
che si pu`o
rendere piccolo a piacere al crescere di N.
(P(x h)
2
< ) 1

2

N
Questa forma debole non dice la forma della distribuzione di probabilit`a
Dimostrazione.
1) Prima disuguaglianza di Chebyshev: sia t variabile aleatoria reale e
non negativo (t 0) allora > 0 (P(t ))
t

Dimostrazione
P(t ) =
t
P(t)
Poiche t > 0 abbiamo
t

1; allora

t
P(t)

t
P(t)
t

Abbiamo trovato che (P(t ))



P(t)
t

t
P(t)
t

t
P(t)
t

t
P(t)
t

=
t

2) Seconda disuguaglianza di Chebyshev:


> 0, x variabile aleatoria reale, (P(x x ))

2
x

La dimostrazione segue dalla prima disuguaglianza ponendo t = (x x)


2
e
osservando che per denizione t =
2
x
.
3) Dimostrazione della Legge dei grandi numeri
Vogliamo provare che data x =
1
N
N

i=1
h
i
con h
i
= h
2
h
i
=
2
h
i si ha
CAPITOLO 6. 30 MARZO 2010 26
P((x h)
2
> )

2
h
N
2
Per la seconda disuguaglianza di Chebyshev la tesi `e immediata se si prova
che x = h e
2
x
=
1
N

2
h
.
Media di x
x = c [x] =

xvalori
P(x) x =

h
1
...h
n
|

h
i
=x
P(h
1
. . . h
n
) =

h
1
...h
n
P(h
1
) P(h
n
)
1
N
N

i=1

i = i
N
h
i
=
1
N
N

i=1

h
1
...h
n
P(h
1
) P(h
n
)
P(h
1
. . . h
n
) =
1
N
N

i=1
h =
N
N
h = h
Alla ne abbiamo trovato che
x =
1
N
N

i=1
h = h
Varianza di x

2
x
= c (xx)
2
= c (xh)
2
=

h
1
...h
n
|
1
N

h
i
=x
P(h
1
. . . h
N
)
_
1
N
N

i=1
h
i
h
_
2
=

h
i
...h
n
P(h
1
) P(h
n
)
1
N
2
_

h
i
Nh
_
2
=
1
N
2

h
1
...h
N
P(h
1
) P(h
n
)
N

i=1
(h
i

h)
2
=
1
N
2

h
1
...h
N
P(h
1
) P(h
N
)
N

i=1
(h
i
h)
2
+
1
N
2

P(h
1
) P(h
n
)2
ehm mi sono perso.
X = (x, A
x
, P) H(X) = H
Consideriamo N copie di X indipendenti cio`e
X
N
= (x
1
. . . x
N
)A
N
x
P(x
1
. . . x
N
) = P(x
1
) P(x
N
)
Insieme -suciente
S

`e il pi` u piccolo insieme tale che P(x S

) 1
Contenuto in bit essenziale
H

(x) = log
2
[S

[
Ci interessa il contenuto essenziale di X
N
per N grande
H(X
N
) = log
2
[S

(X
N
)[
Teorema. > 0 esiste N
0
tale che per ogni N > N
0

1
N
H

(X
N
) H

<
a)
1
N
H

(X
N
) H <
CAPITOLO 6. 30 MARZO 2010 27
b)
1
N
H

(X
N
) H >
La parte a) signica che per N > N
0
H

(X
N
) < N(H + ) e quindi
[S

(X
N
)[ < 2
N(H+)
Ci`o corrisponde a un preciso limite superiore per la cardinalit`a del contenuto
-suciente. Per descrivere gli elementi di S

(X
N
) bastano N(H +) bit.
Notare che per descrivere un generico valore di (x
1
. . . x
N
) A
N
x
occorrono
log
2
A
N
x
= N log [A
x
[ e che in generale H = H(x) << log
2
[A
x
[.
Dimostrazione della parte A
Lidea `e di stimare la cardinalit`a di [S

(X
N
)[ dallalto. Per fare ci`o `e suciente
trovare un qualsiasi insieme T A
N
x
tale che P(x T) 1 .
Infatti essendo S

(X
N
) il pi` u piccolo di tali insiemi si avr`a [S

(X
N
)[ [T[.
Metodo per trovare T
ssato un parametro > 0 deniamo linsieme tipico relativo a nel seguente
modo:
T =
_
x A
N
x
:
_
1
N
log
1
P(x)
H
_
2
<
2
_
Notare che NH=entropia X
N
e che log
1
P(x)
`e la quantit`a di informazione di
x = (x
1
. . . x
N
) e ricordare che NH = H(X
N
) = c
_
log
1
P(x)
_
Osserviamo che per ogni x T
N,
2
N(H+)
< P(x) < 2
N(H)
(farlo per esercizio, deriva da
_
1
N
log
1
P(x)
H
_
2
<
2
Notare che gli elementi di T
N,
sono circa ogni probabilit`a per piccolo
P(x T
N,
) = 1 P(x / T
N,
P / T
N,

_
1
N
log
1
P(x)
H
_
2

2
La somma media delle variabili aleatorie `e
1
N
log
1
P(x)
=
1
N
log
1
P(x
1
) P(x
N
)
=
1
N
N

i=1
log
1
P(x)
`e media della variabile aleatoria indipendente
log
1
P(x
i
)
i = 1 . . . N
Tutte queste hanno stessa media H = H(x) e stessa varianza
2
x
Per la legge dei grandi numeri
P((N H)
2
>
2
)

2
x

2
N
CAPITOLO 6. 30 MARZO 2010 28
Da ci`o segue che
P(x T
N,
) = P((U H)
2
>
2
)

2
x
N
2

P(x T
N,
= 1

2
x
N
2

Se poniamo = e N

tale che

2
x
N
2

< allora N > N


0
ovvero

2
x
N
2

< e
P(x T
N,
) > 1 con [T
N,
[ stimata nel modo seguente:
x T
N,
P(x) 2
N(H+)
allora
[T
N,
[ 2
N(H+)

xT
N+
P(x) 1 [T
N,
[ 2
N(H+)
Ponendo T = T
N,
abbiamo concluso la dimostrazione di a).
Capitolo 7
08/04/2010
Pensiamo X come variabile aleatoria che rappresenta un messaggio di input
(random) e Y sia la variabile aleatoria che rappresenta il messaggio ricevuto a
seguito della trasmissione di X attraverso un determinato canale Q. Notare che
X e Y non sono indipendenti.
7.1 Denizioni
7.1.1 Entropia Congiunta:
Entropia della congiunzione delle variabili (X, Y ).

x,y
xA
x
yA
y
P(x, y) log
1
P(x, y)
Notare che in questo caso H(X, Y ) ,= H(X) + H(Y ). Pi` u precisamente
H(X, Y ) < H(X) + H(Y ) poiche una certa quantit`a di informazione `e in
comune.
7.1.2 Entropia condizionale dato y = b
k
H(X[y = b
k
) =

xA
x
P(x[y = b
k
) log
1
P(x[y = b
k
)
7.1.3 Entropia condizionale di X dato Y
Per denizione `e la media pesata con la distribuzione di probabilit`a su Y delle
entropie condizionali di cui sopra.
H(X[Y ) =
def

yA
y
P(y)
_

xA
x
P(x[y) log
1
P(x[y)
_
=

x,y
P(y)P(x[y) log
1
P(x[y)
=

P(x, y) log
1
P(x[y)
29
CAPITOLO 7. 08/04/2010 30
7.1.4 Entropia marginale di X=H(X)
Regola della catena: H(X, Y ) = H(X) +H(Y [X) = H(Y ) +H(X[Y )
P(Y [X) =
P(X,Y )
P(X)
P(X, Y ) = P(X)P(Y [X)
P(X[Y ) =
P(X,Y )
P(Y )
P(X, Y ) = P(Y )P(Y [X)
log
1
P(x,y)
= log
1
P(x)
+log
1
P(y|x)
=

x,y
P(x, y) log
1
P(x)
+

P(x, y) log
1
P(y[x)
=

y
P(x, y) log
1
P(x)
+H(Y [X) = H(X) +H(Y [X).
Notare che H(X, Y ) = H(X) + H(Y [X) dipende dalla distribuzione di
probabilit`a P(x) e da P(y[x). Infatti P(x, y) = P(x)P(y[x).
Proviamo che H(Y +X) H(Y ) in generale.
H(Y [X) = media di H(Y [X = x)
H(Y [X) max
x
H(Y [X = x) H(Y )
Analogamente H(X[Y ) H(X)
7.1.5 Quantit`a di mutua informazione tra X e Y
I(X; Y ) = H(X) H(X[Y )
Poiche H(X, Y ) = H(Y [X) = H(Y ) +H(X[Y ) H(X) H(X[Y ) = H(Y )
H(Y [X) I(X; Y ) = I(Y ; X) = quantit`a di informazione su X che passa
attraverso Y (quantit`a di informazione su X che posso ottenere attraverso la
conoscenza della sola Y ).
Siano dati X, Y , alfabeti A
x
, A
y
A
x
= a
1
. . . a
n
A
y
= b
1
. . . b
n
Q
ij
= P(y = b
j
[x = a
i
)
Q = (Q
ij
).
P(y = b
j
) =

i
(y = b
j
, x = Q
i
) =

P(y = b
j
[x = a
i
)P(x = a
i
) =

i
Q
ji
P(x = a
i
)
(7.1)
P
x
= (P
1
. . . P
n
), P
i
= P(x = a
i
)
allora la (7.1) si scrive globalmente P
y
= QP
x
_
_
_
q
1
.
.
.
q
m
_
_
_ =
_
_
_
Q
11
Q
1n
.
.
.
.
.
.
.
.
.
Q
m1
Q
mm
_
_
_
_
_
_
P
1
.
.
.
P
n
_
_
_
7.2 Modello astratto di canale di trasmissione =
Matrice Q
7.2.1 Esempio 1: Canale binario simmetrico (BSC)
A
x
= 0, 1 A
y
= 0, 1
CAPITOLO 7. 08/04/2010 31
P(y = 0[x = 0) = 1 f P(y = 0[x = 1) = f
P(y = 1[x = 0) = f P(y = 1[x = 1) = 1 f
dove f rappresenta la probabilit`a che un bit in una trasmissione sia cambiato:
Q =
_
1 f f
f 1 f
_
Esercizio Supponiamo P
x
= (P
0
, P
1
) = (0.9, 0.1), f =
1
10
e che abbiamo un
BSC allora (q
0
, q
1
) =
_
q
0
q
1
_
=
_
9
10
1
10
1
10
9
10
__
9
10
1
10
_
=
_
82
100
18
100
_
P(y = 0)
P(y = 1)
Calcolare H(X), H(Y ), H(X[Y ), H(Y [X), I(X; Y ) per esercizio.
7.2.2 Schema di distribuzione delle quantit`a di informazione
H(X,Y)
H(X)
H(Y)
H(X|Y) I(X;Y) H(Y|X)
7.2.3 Esempio 2: Canale di cancellazione simmetrico
binario
(Non avvengono errori ma dei bit possono essere mancanti)
A
x
= 0, 1 A
y
= 0, ?, 1 f =probabilit`a che un bit sia cancellato
P(y = 0[x = 0) = 1 f P(y = 0[x = 1) = 0
P(y =?[x = 0) = f P(y =?[x = 1) = f
P(y = 1[x = 0) = 0 P(y = 1[x = 1) = 1 f
Q =
CAPITOLO 7. 08/04/2010 32
_
_
1 f 0
f f
0 1 f
_
_
Completare come esercizio.
7.2.4 Esempio 3: Macchina da scrivere rumorosa
P(y = [x = A) =
1
3
P(y = A[x = A) =
1
3
P(y = [x = A) =
1
3
P(y = A[x = A) =
1
3
P(y = B[x = A) =
1
3
P(y = A[x = B) =
1
3
P(y = B[x = B) =
1
3
P(y = C[x = B) =
1
3
E cos` via; in pratica, ogni qualvolta che il dattilografo vuole scrivere una lettera
X, scrive con uguale probabilit`a
1
3
o la lettera X stessa, o una delle due lettere
adiacenti. La probabilit`a che scriva per errore una delle altre 24 lettere `e nulla.
Esercizio: Assumendo P
x
=
_
_
_
_
1
27
, . . . ,
1
27
. .
27
_
_
_
_
calcolare I(X; Y )
I(X; Y ) = H(X) H(X[Y )
H(X) = log
2
27 = 3 log
2
3
H(Y [X) =media pesata su P
x
di H(Y [x = a)
H(Y [x = a) =

y
P(y[x = a) log
1
P(y[x = a)
=
1
3
log
2
3 +
1
3
log
2
3 +
1
3
log
2
3 =
log
2
3
Quindi H(y[x = a) = log3 non dipende da a la media `e ancora
H(Y [X) = log 3
I(X; Y ) = H(Y ) H(Y [X)
H(Y ) =? Troviamo P
y
Poniamo A = 1, B = 2 . . . , = 27
P
y
= QP
x
= Q
_
_
_
1
27
.
.
.
1
27
_
_
_
Q =
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
1
3
1
3
0 0
1
3
1
3
1
3
1
3
0 0
0
1
3
1
3
0 0
.
.
.
.
.
.
1
3

.
.
. 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0
.
.
.
1
3
1
3
1
3
0 0
1
3
1
3
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
CAPITOLO 7. 08/04/2010 33
Su ogni riga e su ogni colonna abbiamo 3 coecienti uguali a
1
3
. Segue: P
y
=
1
27
Q
_
_
_
1
.
.
.
1
_
_
_ =
1
27
_
_
_
1
.
.
.
1
_
_
_ =
_
_
_
1
27
.
.
.
1
27
_
_
_ ovvero la distribuzione uniforme. Segue
che H(Y ) = log 27 = 3 log 3.
I(X; Y ) = H(Y ) H(Y [X) = 3 log 3 log 3 = log 9
Notiamo che scrivendo
I(H; Y ) = H(Y ) H(Y [X)
H(Y [X) `e ssata per in canale, cio`e dipende solo dalla matrice Q.
Supponiamo che per P
x
=distribuzione uniforme, si abbia P
y
=distribuzione
uniforme H(y) = max I(X, Y ) = max max
P
x
I(X; Y ) = log 9
Denizione: Deniamo capacit`a del canale Q il seguente numero:
C(Q) = max
P
x
I(X, Y )
Capitolo 8
13 Aprile 2010
8.1 Richiami
Siano dati X, I e gli alfabeti A
x
, A
y
Q corrisponda alla matrice delle probabilit`a condizionali:
P(y = b
y
[x = a
i
) Q = (Q
ij
)
Ricordiamo le relazioni in gura (7.2.2)
H(X, Y ) = H(X) +H(Y [X) = H(Y ) +H(X[Y )
I(X; Y ) = H(X) H(X[Y ) = H(Y ) H(Y [X)
Ora tutto ci`o lo applicheremo ai codici quindi richiameremo alcune denizioni
sui codici.
Denizione: Dato un alfabeto A
x
, un codice di lunghezza N e cardinalit`a 2
k
(anche detto (N,K)-codice) `e un sottoinsieme C A
N
X
= A
X
N di cardinalit`a
2
k log
2
A
x
N.B. [A
x
[ = 2
log |A
x
|
[A
X
N[ = [A
x
[
N
= 2
N log
2
|A
x
|
Denizione: Rate di C
R =
K
N
K = RN
Denizione: Una parola di C `e una N-upla (x
1
. . . x
N
)
Esempio: Canale binario simmetrico
A
x
= 0, 1 A
y
= 0, 1
Un codice in questo caso `e un sottoinsieme C 0, 1
N
(x
1
. . . x
n
) C `e
una N-upla di bit.
C `e un ssato sottoinsieme di N-uple di bit. In questo caso [A
N
x
[ = 2
N
, cio`e
tutte le N-uple di bit.
[C[ = 2
k
, infatti log
2
[A
x
[ = 1
C `e costituito da una ssata scelta di 2
k
vetori in 0, 1
N
.
34
CAPITOLO 8. 13 APRILE 2010 35
8.1.1 Esempio tipico
C 0, 1
N
sottospazio vettoriale di dimensione k su
F
2
= 0, 1, +, + = XOR = AND (CAMPO)
Infatti in tal caso [C[ `e proprio [F
2
[
k
= 2
k
.
Denizione: Per un ssato codice un algoritmo di codica `e una ssata
funzione biunivoca
ENC: 1, 2, . . . , 2
k
C
s x
(s)
=
_
x
(s)
1
. . . x
(s)
N
_
C
A priori si ha una distribuzione di probabilit`a P(s) su 1, . . . , 2
k
. In genere si
considera quella uniforme.
Denizione: decodica a probabilit`a condizionale massima Supponiamo
di trasmettere x = x
(s)
(risultato della codica) e di ricevere y. Allora y viene
trasformato in x

tale che P(x

[y) = max e quindi x

= x
( s)
per qualche s allora
y `e decodicato come s
Osserviamo che
P(x

[y) =
P(y[x

)P(x

)
P(y)
=
P(y[x

)P( s)
P(y)
Se P(s) `e uniforma allora P(x

[y) = max in x

P(y[x

) = max in x

(y `e
ssato). In questo caso si parla di decodica a massima verosimiglianza.
8.1.2 Probabilit`a di errore per un codice C
Nel procedimento di decodica poniamo:
s = s
OUT
s = s
IN
Deniamo la probabilit`a (media) di errore di blocco per C la media delle
probabilit`a condizionali P(s
OUT
,= s
IN
[s
IN
). Quindi
P
B
(C) =

s
IN
P(s
IN
,= s
OUT
)P(s
IN
)
Denizione: Probabilit`a massima di errore di blocco per C
P
BM
(C) = max
s
IN
P(s
OUT
,= s
IN
[s
IN
)
8.2 Goal della teoria dei codici
Per un ssato canale Q costruire codice C con:
Rate
K
N
= R pi` u alto possibile.
P
BM
pi` u piccola possibile, magari trascurabile, cio`e P
BM
< per ssato
> 0 (=tolleranza)
CAPITOLO 8. 13 APRILE 2010 36
Richiamiamo la denizione di capacit`a del canale:
C
Q
= max
P
x
I(X; Y ) (P
x
distribuzione di probabilit`a su A
x
)
Denizione: il codice Q `e privo di memoria se usando Q per inviare strighe
del tipo x = A
N
x
= A
x
N si ha
P(y[x) =
N

n=1
P(y
n
[x
n
)
8.3 Teorema di Shannon (I parte)
Per ogni canale privo di memoria con capacit`a C, per ogni > 0 e per ogni
R < C esiste, per N abbastanza grande, un codice C di lunghezza N e rate R
con P
BM
(C) < .
8.3.1 Esempio
Q =macchina da scrivere di gura (7.2.4).
P(y = [x = A) =
1
3
P(y = A[x = A) =
1
3
P(y = B[x = A) =
1
3
Ricordiamo anche che
C = max
P(x)
I(X; Y ) = log
2
9
Per il teorema di Shannon dovremo essere in grado di trovare codici con
probabilit`a di errore massime piccole a piacere. Questo max `e raggiunto da
P(x) uniforme. Vediamo un codice particolare con N = 1:
C A
x
= A, B, C, . . . , Z,
[C[ = 2
k log |A
x
|
= 2
k log
2
27
Prendiamo C = B, E, H, . . . , Z (ogni terza lettera)
[C[ = 9 = 2
log
2
9
R =
K
N
= K = log
2
9
Calcoliamo P
BM
(C)
Algoritmo di decodica: si corregge y nella lettera di C ad essa pi` u vicina.
Esempio: Se si riceve y = F allora si corregge F come E. Notare che questo
algoritmo di decodica ha probabilit`a di errore = 0. Quindi P
BM
= 0 <
> 0
Notare che C ha rate = C > R per ogni R < C. Meglio di cos` non si pu`o fare,
per gli altri teoremi di Shannon che non dimostreremo. Osserviamo inoltre che
P(x = E[y = F, C) = 1
Capitolo 9
15 Aprile 2010
9.1 Dimostrazione del teorema di Shannon
9.1.1 Stringhe congiuntamente tipiche
Siano X, Y variabili aleatorie collegate attraverso Q (X `e ci`o che si trasmette e y
ci`o che riceviamo) da cui costruiamo la coppia congiunta (X
N
, Y
N
) = (X, Y )
N
.
Ricordiamo che Q `e privo di memoria se, dati y A
N
y
e x A
N
x
allora
P(y[x) =
N

n=1
P(y
n
[x
n
)
Supponiamo anche che
P
x
N(x) =
N

n=1
P
x
(x
n
)
P
y
N(y) =
N

n=1
P
y
(y
n
)
Denizione: x, y si dicono congiuntamente tipiche se
x `e tipica per P
x
, cio`e

1
N
log
2
1
P(x)
H(X)

<
y `e tipica per P
y
, cio`e

1
N
log
2
1
P(y)
H(Y )

<
(x, y) `e tipica per P
x,y
: cio`e

1
N
log
2
1
P(x,y)
H(X, Y )

<
`e detto fattore di tolleranza.
Denizione: Insieme delle coppie congiuntamente tipiche
J
N,
= (x, y) congiuntamente tipiche con tolleranza
37
CAPITOLO 9. 15 APRILE 2010 38
Teorema sulla congiunta tipicit`a.
1. P
_
(x, y) J
N,
_
1 per N
2. Il numero delle coppie congiuntamente tipiche [J
N,
`e vicino a 2
NH(X,Y )
.
In particolare, [J
N,
[ 2
N(H(X,Y )+
3. Supponiamo che x

e y

siano variabili aleatorie indipendenti con


rispettivamente distribuzioni P
X
N, P
Y
N. Allora
P((x

, y

) J
N,
) 2
N(I(X;Y )3)
Dimostrazione 1. Ricordare i passi del teorema di compressione. Da

1
N
log
1
P(X, Y )
H(X, Y )

2
<
si prova (come nel teorema di compressione)
x, y J
N,
2
N(H(X,Y )+)
< P(x, y) < 2
N(H(X,Y ))
e che
P((x, y) J
N,
) 1

2

2
N
dove `e la varianza di X, Y (conseguenza delle legge dei grandi numeri). Da
cui segue 1.
Dimostrazione 2. Poiche per (x, y) J
N,
P(x, y) 2
N(H(X;Y )+)
allora
P(J
N
) =

P(x, y) [J
N,
[ 2
N(H(X,Y )+)
[J
N,
[ 2
N(H(X,Y )+)
cio`e
la 2.
Dimostrazione 3. Dobbiamo calcolare
P((x

, y

) J
N,
=

(x,y)J
N,
P
X
N(x

), P
Y
N(y

)
P
X
N(x

) 2
N(H(X))
e P
Y
N(y

) 2
N(H(y))
. Segue che
P((x

, y

) J
N,
) [J
N,
[2
N(H|X))
2
N(H(Y ))
2
N(H(X,Y )+)N(H(X))N(H(Y ))
=
= 2
N(H(X,Y )H(X)H(Y )
Quindi P((x

, y

) J
N,
) 2
N(H(x,y)H(x)H(y)+3)
Ricordiamo che H(H; Y ) = H(Y ) +H(Y [X) = H(Y ) +H(X[Y ) H(X, Y )
H(X) H(Y ) = H(X[Y ) H(X) = I(X; Y )
Quindi P((x

, y

) J
N,
2
N(I(X;Y )+3)
= 2
N(I(X;Y )3)
.
Fissiamo R

. Vogliamo costruire C con rate R

e relativi encoder e decoder.


Il codice lo si costruisce in modo random. Fissiamo P
x
su A
x
e generiamo
le 2
R

N
parole di C scegliendole in modo random da A
N
X
secondo P
X
N. Ci`o
CAPITOLO 9. 15 APRILE 2010 39
produce anche lencoder 1 . . . 2
R

sx
(s)
C A
N
X
Si riceve y con
P(y[x
(s)
) =
N

n=1
P(y
n
[x
(s)
n
)
Decoder: Typical Set Decoder
Si decodica y come s se (x
( s)
, y) sono congiuntamente tipiche (cio`e (x
( s)
, y)
J
N,
) e non esiste un altro s

tale che (x
(s

)
, y) sia una coppia congiuntamente
tipica. Altrimenti si una failure e si pone s = 0.
Ci sono 3 diversi tipi di misura di probabilit`a di errore di decodica:
a) P
B
(C) = media di P( s ,= s[C) =
2
R

s=1
P( s ,= s, C) P(s[C)
. .
uniforme
b) Media di P
B
(C) al variare di C
< P
B
>=

C
P
B
(C) P(C)
c) P
BM
(C) = max
s
P( s ,= s[s, C). Vogliamo P
BM
(C) < .
Calcolo di < P
B
> Ci sono due possibilit`a per s s
1) (x
(0)
, y) / J
N,
Per questo evento, per il punto 1 del teorema sulla congiunta tipicit`a,
P((x
(s)
, y) J
N,
) 1 per N
Allora > 0 esiste N() tale che N N()
P((x
(s)
, y) J
N,
) <
2) (x
(s)
, y) J
N,
ma esiste anche s

,= s con (x
(s

)
, y) J
N,
Per la parte 3 sappiamo che la probabilit`a che x
(s

)
, y prese indipendentemente
siano tali che (x
(s

)
, y) J
N,
2
N
(I(X; Y ) 3)
Vi sono in tutto 2
R

N
1

s
possibilit`a per s

,= s.
Alla ne, mettendo insieme i due casi, si ha che
P( s ,= s[C) +

=s
2
N(I(X;Y )3)

+ (2
R

N
1)2
N(I(X;Y )3)
+ 2
N(I(X;Y )R

3)
< P
B
> + 2
N(I(X;Y )R

3)
CAPITOLO 9. 15 APRILE 2010 40
Segue che < P
B
>< 2 se scegliamo R

< I(X; Y ) 3 e N abbastanza


grande.Allora scegliamo P
x
tale che I(X; Y ) `e massima = C
Q
Allora dobbiamo assumere R

< C
Q
3. Inoltre, poiche < P

>< 2 allora
deve esistere C tale che P

(C) < 2. Come modicare Cin modo da rendere


anche P
BM
(C) piccolo?
P
B
(C) =
2
R

s=1
P( s ,= s[s, C) P(s, C)
uniforme
Osservazione che siamo invitati a dimostrare Se la media aritmetica di
x
1
. . . x
m
`e < 2 allora al pi` u met`a degli x
i
sono 4
Applichiamo questa osservazione a x
s
= P( s ,= s[s). Consideriamo C


C C

= s[P( s ,= s[s) < 4. Allora [C

[
1
2
[C[ (espurgation)
[C

[ 2
R

N1
Ovvero rate (C

) =
R

N1
N
= R


1
N
Poniamo = 4 =

4
Fissiamo R < C; R

lo scegliamo R < R

< C, es. R

=
C+R
2
. Costruiamo N
abbastanza grande in modo che R


1
N
> R.
Il codice C

che soddisfa tutte le condizioni nora trovate P


BM
(C

) < .
Capitolo 10
20 Aprile 2010
10.1 Capacit`a del canale binario simmetrico
Ricordiamo che: P(y = 0[x = 0) = 1 f P(y = 1[x = 0) = f e le altre per
simmetria. Inoltre:
Q =
_
1 f f
f 1 f
_
P
x
= (P
0
, P
1
) P
0
+P
1
= 1 P
y
= (q
0
, q
1
) `e tale che
_
q
0
q
1
_
=
_
1 f f
f 1 f
__
P
0
P
1
_
=
_
(1 f)P
0
+fP
1
fP
0
+ (1 f)P
1
_
Questa `e la soluzione generale al variare di P
x
. Vogliamo calcolare la capacit`a:
C = max
P
x
I(X; Y ) = max
P
x
(H(Y ) H(Y [X))
con f ssato, P
x
= (p
0
, p
1
) variabile.
H(Y ) = q
0
log
1
q
0
+q
1
log
1
q
1
Notazione:
H
2
(x) = funzione entropia binaria (x, 1 x) = xlog
1
x
+ (1 x) log
1
1x
H
2
(X) = H
2
(1 X)
Segue
H(Y ) = H
2
(q
0
) = H
2
(q
1
) = H
2
(fp
0
+ (1 f)p
1
)
Ricordiamo che f `e una costante ssata quindi dobbiamo massimizzare p
0
e p
1
.
H(Y [X) =< H(Y [X) > media su x con distribuzione
P
x
def
=

xA
x
P(x)

yA
y
P(y[x) log
1
P(y[x)
=
= p
0
_
f log
1
f
+ (1 f) log
1
1 f
_
+p
1
_
f log
1
f
+ (1 f) log
1
f
_
=
41
CAPITOLO 10. 20 APRILE 2010 42
= f log
1
f
+ (1 f) log
1
1 f
= H
2
(f)
Segue
I(X; Y ) = H
2
(fp
0
+ (1 f)p
1
) H
2
(f)
Dobbiamo massimizzare al variare di (p
0
, p
1
) = (x, 1 x) 0 x 1
10.1.1 Osservazione 1
Il max di I(X; Y ) si ha massimizzando
H
2
(fp
0
+ (1 f)p
1
) = H(q
1
)
10.1.2 Osservazione 2
0 x 1 H(q
0
) = H(q
1
) q
0
= fp
1
+ (1 f)p
0
Quindi scrivendo
H
2
(fp
0
+ (1 f)p
1
) = G(p
0
, p
1
)
sappiamo che
G(P
0
||
x
, P
1
||
1x
) = G(p
1
, p
0
); equivalentemente G(x) = G(1 x)
G(x) = H
2
(fx + (1 f)(1 x)) `e la composizione di H
2
(t), che `e -convesso,
con una funzione lineare x fx + (1 f)(1 x) = t.
Per la simmetria rispetto alla retta x =
1
2
e per la convessit`a, il max
x[0,1]
G(x) si
ha per x =
1
2
. Tale max `e
H
2
_
f
1
2
+
1 f
2
_
= H
2
_
1
2
_
= 1
Alla ne troviamo C
BSC
= 1 H
2
(f)
Quando il canale `e BS e si parte da una distribuzione uniforme degli input si
trova che la distribuzione degli output `e uniforme e quindi lentropia `e max a
1
2
.
10.1.3 Alternativamente
H(Y ) = H(q
0
, q
1
) H
2
_
1
2
_
= 1 poiche `e massimizzata nel caso della
distribuzione uniforme. Osserviamo che per (p
0
, p
1
) =
_
1
2
,
1
2
_
si ha
_
q
0
q
1
_
=
_
1 f f
f 1 f
__
1
2
1
2
_
=
_
1f
2
+
1
2
f
2
+
1f
2
_
=
_
1
2
1
2
_
Quindi il valore massimo, 1, si ottiene in corrispondenza di (p
0
, p
1
) =
_
1
2
,
1
2
_
.
Questo per`o vale solo perche il canale `e simmetrico. Qualora il canale non
fosse simmetrico e invertibile quello che abbiamo visto si potrebbe ottenere in
corrispondenza di una distribuzione delle x non uniforme. Un esempio `e il canale
di cancellazione, la cui matrice non `e quadrata ma 3 2.
CAPITOLO 10. 20 APRILE 2010 43
x 1-x
Max del punto
stazionario
Disegno per niente attendibile.
10.1.4 Esercizio
Trovare la capacit`a del canale simmetrico con cancellazione:
A
x
= 0, 1 A
y
= 0, ?, 1 Q =
_
_
1 f 0
f f
0 1 f
_
_
10.2 Codici Lineari Binari
Q = BSC con f = probabilit` a di errore sul singolo bit C
Q
= 1 H
2
(f)
Per il teorema di Shannon sappiamo che > 0 e R < C esistono codici
C A
N
X
0, 1
N
, per N abbastanza grandi, con rate R e P
B
max < .
[C[ = 2
K
rate (C) =
K
N
10.2.1 Teorema di Shannon Binario Lineare
Lo stesso risultato si pu`o ottenere restringendo alla classe dei codici
C 0, 1
N
lineari
10.2.2 Altre nozioni sui codici lineari binari
0, 1 = F
2
campo con due elementi
CAPITOLO 10. 20 APRILE 2010 44
C F
N
2
lineare `e sottospazio vettoriale
Matrice di controllo: matrice H M N (M righe N colonne) tale che
C = x F
N
2
[H x
t
= 0
dimC = numero di elementi di una base di C
dimC = k [C[ = 2
k
infatti C ha una base v
1
. . . v
k
v C pu`o essere scritto in modo unico come
v = a
1
v
1
+. . . +a
k
v
k
a
i
F
2
Allora vi `e una corrispondenza biunivoca tra F
k
2
C
(a
1
. . . 1
k
) a
1
v
1
+. . . +a
k
v
k
Una qualsiasi tale corrispondenza `e un encoder per C

F
k
2

= 2
k
[C[ = 2
k
rate (C) =
k = dimC
N
N = lunghezza di C C F
N
2
F
N
2
= spazio di Hamming. Su questo insieme `e denita una distanza.
(x, y) d(x, y)
def
= [(i[x
i
,= y
i
)[ x, y F
N
2
.x = (x
1
. . . x
n
)y = (y
1
. . . y
N
)
Esempio
x = (0 1 0 0 0)
,= ,= ,= = = d(x, y) = 3
y = (1 0 1 0 0)
La funzione d gode delle propriet`a seguenti:
1) d(x, y) = d(y, x)
2) d(x, y) = 0 x = y
3) d(x, z) d(x, y) +d(y, z) (propriet`a triangolare)
Dimostrazione 3. d(x, z) = N [i[x
i
= z
i
[.
Se x
i
= y
i
e y
i
= z
i
allora x
i
= z
i
. Segue che
[i[x
i
= y
i
. .
=A
i[y
i
= z
i
. .
=B
[ [i[x
i
= z
i
[
Dati A, B X allora [A[ +[B[ [A B[ = [A B[
A B = [A[ +[B[ [A B[ [A[ +[B[ [X[
Troviamo che
[i[x
i
= y
i
[ +[i[y
i
= z
i
[ N [i[x
i
= z
i
[
Sostituendo [i[x
i
= y
i
[ = N d(x, y)
&& N d(x, y) + N d(y, z) N && N d(x, z)
CAPITOLO 10. 20 APRILE 2010 45
Segue
d(x, z) d(x, y) +d(y, z)
Sia C F
N
2
un codice, non necessariamente lineare. Allora lalgoritmo di
decodica y x C tale che d(y, z) = min
x

C
d(y, x

) dove
d(C)
def
= mind(x, x

)x ,= x

x, x

C
d(C) `e detta la distanza minima del codice C
Correggere t errori vuol dire:
Supponiamo che sia trasmessa x C, ricevuta y = x + e dove e = vettore
errore avente coordinate=1 nelle componenti su cui si `e vericato un errore.
Esempio trasmetti x = (0, 0, 0, 1) ricevi y = (1, 1, 1, 1) allora y =
x + (1, 0, 1, 0) = x +e.
Denizione peso
w(e) = [i[e
i
,= 0[ x ,= x

; x, x

C
Allora d(x, y) = w(e)
Quindi dire che si sono vericati t errori vuol dire w(e) = t
Teorema. Se y = x + e (come sopra) e w(e) = t
d(C)
2
allora lalgoritmo di
cui sopra restituisce x.
Dimostrazione. Sia x C tale che d(y, x) = min
x

C
d(y, x

) e tale che lalgoritmo


resituisca x (quando ci sono pi` u casi o se ne sceglie uno random o si dichiara
fallimento dellalgoritmo). Per provare x = x consideriamo d(x, x) d(x, y) +
d(y, x) per la propriet`a triangolare
d(x, y) d(y, x) t
d(C) 1
2
Segue
d(x, x) t +t
d(C) 1
2
+
d(C) 1
2
= d(C) 1
Per denizione di d(C) segue x = x
Esempio: Se d(C) = 3 (come in Hamming [7,4]) allora lalgoritmo
per massima somiglianza corregge no a un errore. Il margine di errore
sullalgoritmo `e dovuto alla possibilit`a che nella trasmissione di una parola
x F
N
2
si verichino 2 o pi` u errori.
Prob
2errori
=
_
N
2
_
f
2
Prob
3errori
=
_
N
3
_
f
3
.
.
.
Per ssato n la probabilit`a di errore massima dellalgoritmo P
BM
`e O(f
2
).
Capitolo 11
22 Aprile 2010
11.1 Singleton Bound
Ricordiamo la denizione di distanza minima di un codice C A
n
:
d(C) = mind(x, y)[x ,= y C
d(x, y) = #i[x
i
,= y
i

La parte che segue non `e presente nel libro di testo.


Teorema.
Ipotesi:
[C[ = M C A
N
d(C) = d
Tesi:
M [A[
N
d + 1
Dimostrazione. Consideriamo lapplicazione A
N

(x
1
,...,x
N
)
A
Nd+1

(x
1
,...,x
Nd+1
)
e
consideriamo la restrizione di a C

|C
: C A
Nd+1
Proviamo che
|C
`e iniettiva, cio`e vogliamo provare che se x, y C e (x) = (y)
allora x = y. Infatti se x = (x
1
, . . . , x
N
) e y = (y
1
, . . . , y
N
) hanno (x) = (y)
allora
x
1
= y1 . . . x
Nd+1
= y
Nd+1
Allora x e y possono dierire solo eventualmente nelle ultime d 1 coordinate.
x
Nd+2
, . . . , x
N
y
Nd+2
, . . . , y
N
Segue d(x, y) d 1.
Poiche d = d(C) = d(x, y)
x,yC
x=y
allora necessariamente x = y. Abbiamo provato che
46
CAPITOLO 11. 22 APRILE 2010 47

|C
`e iniettiva. Se C

= (C) A
Nd+1
allora
|C
: C C

`e biunivoca quindi
[C[ = [C

[ [A[
Nd+1
.
Conseguenze
[C[ = 2
k
rate(C)=
k
N
2
k
[A[
Nd(C)+1
k log
2
[A[(N d(C) +1) da cui d(C) N +1
k
log
2
|A|
.
In particolare per i codici binari lineari
C F
N
2
codice binario lineare
k = dimC
C F
N
2
(A = F
2
)
abbiamo la disuguaglianza
k N + 1 d(C) d(C) N + 1 dim(C)
Il problema `e che su F
2
non ci sono codici interessanti che soddisno
luguaglianza (e che quindi siano ottimali dal punto di vista della correzione).
Potremmo quindi dire che questa disuguaglianza, per codici lineari binari, `e
stretta. Possiamo ricavare anche un limite sul rate:
k
N
1 +
1
N

d(C)
N
11.1.1 Criterio per calcolare d(C) di un codice lineare
binario
1) Deniamo w(C) = minw(x[x C, x ,= 0
w(x) = peso di x = #x
i
[x
i
,= 0 = d(x, 0).
Questo peso minimo del codice coincide con la distanza minima.
Proposizione: w(C) = d(C)
Dimostrazione Se x ,= y, x, y C allora xy = x+y C ed `e z = xy ,= 0.
Inoltre d(x, y) = w(z). Viceversa data z ,= 0, z C, allora w(z) = d(z, 0), 0 C.
Notare che 0 C. Quindi gli insiemi
d(x, y)[x, y C x ,= y e w(z)[z ,= 0
coincidono e pertanto hanno lo stesso minimo, da cui d(C) = w(C)
In questa dimostrazione si `e utilizzato fortemente il fatto che il codice `e lineare.
2) Calcolo di w(C)datoC = d(C) per C codice lineare usando una matrice di
controllo H. H `e matrice di controllo se
C = x F
N
2
[H x
T
= 0
Se dimC = k possiamo sempre assumere rk(H) = N k.
CAPITOLO 11. 22 APRILE 2010 48
11.1.2 Richiamo di algebra lineare
H matrice N N
Allora rkH=max numero di colonne linearmente indipendenti = max numero
di righe linearmente indipendenti. Un minore di H `e il determinante di una
sottomatrice quadrata di H.
Teorema. rk(H)=max ordine n di un minore n n non nullo = max n tale
che esiste una sottomatrice A H di tipo n n con det A ,= 0.
Esempio: H =
_
0 1 0 0
1 1 1 1
_
con coecienti in F
2
.
Le sottomatrici di H di ordine 2 si ottengono scegliendo coppie di colonne
distinte di H. Esempio:
_
0 1
1 1
__
0 0
1 1
__
0 0
1 1
_
etc. (sono 6).
det
_
0 1
1 1
_
= 11 ,= 0 rk(H) = 2 (non si possono trovare ordini pi` u alti).
Notare per`o che in generale esistono altri minori 22 nulli:
det
_
0 0
1 1
_
= 0
Abbiamo detto che
rk(H) = maxn[ esistono n colonne di H linearmente indipendenti
Deniamo S(H) = ogni sottoinsieme di n colonne di H `e linearmente
indipendente
Esempio:
H =
_
0 1 0 0
1 1 1 1
_
in questo caso s(H) = 1 < rk(J)
Infatti ogni singola colonna `e non nulla quindi forma un insieme indipendente.
s(H) 1 poiche ogni colonna `e ,= 0
s(H) < 2 poiche esistono 2 colonne dipendenti
In poche parole s(H) rk(H)
Teorema. Sia C F
N
2
codice binario denito da H x
T
= 0. Allora d(C) =
s(H) + 1.
Dimostrazione
Usiamo luguaglianza d(C) = w(C). Supponiamo per assurdo che w(C) s(H),
cio`e esista x C, x ,= 0 con w(x) s(H).
x = (0 . . . 01 . . . 10 . . . 0)(x abbia coordinate diverse da 0 al massimo nei posti i
1
, . . . , i
s(H)
. .
s(H) posti
)
CAPITOLO 11. 22 APRILE 2010 49
Consideriamo H = (h
1
, . . . , h
N
) dove h
1
. . . h
n
sono vettori colonna. Poiche
deve essere H x
T
= 0 troviamo x
i
1
h
i
1
+. . . +x
i
s(H)
h
i
s(H)
= 0.
x
i
1
. . . x
i
s(H)
sono le coordinate che possono essere = 1.
H x
T
= (h
1
, . . . , h
N
)
_
_
_
x
1
.
.
.
x
N
_
_
_ = x
1
h
1
+. . . +x
n
h
N
Risultato: le colonne h
i
1
, . . . , h
i
s(H)
sono linearmente dipendenti perche
avendo supposto x ,= 0 allora almeno uno tra x
i
1
, . . . , x
i
s(H)
`e non nullo. Ci`o
contraddice la denizione di s(H).
Abbiamo provato che w(C) s(H) + 1. Per provare che w(C) s(H) + 1
`e suciente trovare x C con w(x) s(H) + 1.
Per la denizione di s(H) allora devono esistere s(H)+1 colonne linearmente
dipendenti. Supponiamo per semplicit`a che h
1
, . . . , h
s(H)+1
siano dipendenti.
Ci`o vuol dire che esiste una relazione non banale del tipo
x
1
h
1
+. . . +x
s(H)+1
h
s(H)+1
= 0
e quindi
H
_
_
_
_
_
_
_
_
_
_
x
1
.
.
.
x
s(H)+1
0
.
.
.
0
_
_
_
_
_
_
_
_
_
_
= 0
Quindi
x =
_
_
_
_
_
_
_
_
_
_
x
1
.
.
.
x
s(H)+1
0
.
.
.
0
_
_
_
_
_
_
_
_
_
_
C
e ha peso
0 ,= w(x) s(H) + 1 w(C) s(H) + 1
Esempio: Hamming [7,4]
_
_
_
_
I II III IV V V I V II
1 1 1 0 1 0 0
0 1 1 1 0 1 0
1 0 1 1 0 0 1
_
_
_
_
C = x F
7
2
[Hx
T
= 0 ha d(C) = w(C) = 3.
Si pu`o ritrovare il risultato provando che s(H) = 2, che equivale a dire che ogni
CAPITOLO 11. 22 APRILE 2010 50
coppia di colonne distinte `e linearmente dipendente ogni due colonne sono
proporzionali (una `e multipla dellaltra) ogni due colonne sono distinte e ogni
colonna `e ,= 0 ed esiste un sottoinsieme di 3 colonne linearmente dipendente
(es:III=IV+V).
Capitolo 12
27 Aprile 2010
12.1 Esercizio del testo 15.10
BSC
f=probabilit`a di errore sul singolo bit
C = (0, 0, 0, 0), (0, 0, 1, 1), (1, 1, 0, 0), (1, 1, 1, 1) Queste 4 parole del codice
non sono usate con probabilit`a uniforme (ad esempio questo pu`o capitare
quando queste rappresentano lettere dellalfabeto (la lettera E appare pi` u
frequentemente)).
Assumiamo che le parole in C siano usate con probabilit`a rispettivamente:
1
2
,
1
8
,
1
8
,
1
4
Questo codice codica le x
s
. Se s 1, 2, 3, 4,
P(1) =
1
2
P(2) =
1
8
P(3) =
1
8
P(4) =
1
4
Trovare lalgoritmo di decodica che minimizza le probabilit`a di errore P
B
Il nostro canale Q `e dato dalla matrice:
Q =
_
1 f f
f 1 f
_
ovvero Q(y = 0[x = 0) = 1 f Q(y = 1[x = 0) = f etc.
Siano x C `e parola trasmessa, y = parola ricevuta, x = (x
1
, x
2
, x
3
, x
4
),
y = (y
1
, y
2
, y
3
, y
4
).
Sappiamo che P(y = (y
1
, y
2
, y
3
, y
4
)[x = (x
1
, x
2
, x
3
, x
4
)) =
4

i=1
P(y
i
[x
i
)
Vogliamo calcolare maxP(x, y). Applichiamo il teorema di Bayes:
= max
P(y|x)P(x)
P(y)
51
CAPITOLO 12. 27 APRILE 2010 52
`e suciente, per ssato y, massimizzare in x C P(y[x)P(x).
x `e una parola ssata su cui non possiamo dire nulla per`o:
P(y[x) = f
d(x,y)
(1 f)
4d(x,y)
A questo punto dobbiamo massimizzare questo prodotto P(y, x)P(x) che cambia
a seconda di x. Dividiamo lo spazio delle possibili y, che poi sarebbe F
4
2
,
nellunione di quattro sottoinsiemi: nella prima ci saranno le y per le quali
`e pi` u probabile che sia stata mandata la prima parola del codice, poi le y per le
quali `e pi` u probabile che sia stata mandata la seconda parola del codice e cos`
via.
F
4
2
= S
1
S
2
S
3
S
4
tale che
S
i
= y[P(y[x)P(x) `e max per x = x
(i)

S
i
= y[P(y[(0, 0, 0, 0)P(0, 0, 0, 0) `e max fra P(y[x)P(x) C
P(y[(0, 0, 0, 0)P(0, 0, 0, 0) = f
d(y,0)
(1f)
4d(y,0)

1
2
f
d(y,x
(i)
)
(1f)
4d(y,x
(i)
)
0 < f <
1
2
Sicuramente questo insieme S
1
contiene tutte le y tali che la d(y, 0)
d(y, x
(i)
)i P(x
(i)
)
1
2
Dunque d
_
x
(i)
, x
(j)
_
2 i ,= j
Algoritmo
Data y correggere y nelle parole di x C tali che d(y, x) `e minima e, nei casi
in cui esiste pi` u di una x con questa propriet`a, prendere x con P(x) massima.
Proviamo a stimare per ogni y F
4
2
qual `e d(y, C) = mind(y, x)[x C
(potremmo dire che stiamo cercando la massima minima distanza)
Vediamo se `e un codice lineare: dobbiamo fare tutte le possibili somme delle
coppie. In eetti (0, 0, 0, 0) sommato a una qualsiasi delle altre 3 parole del
codice d`a le altre parole stesse, e cos` vale per le altre parole: la somma di
2 qualsiasi parole di C sta ancora in C e la parola (0, 0, 0, 0) C. Saperlo
ci `e utile perche se `e un codice lineare allora possiamo dividere lo spazio nei
cosiddetti laterali rispetto al codice C. Lo spazio F
4
2
sar`a diviso in sottoinsiemi
del tipo:
F
4
2
= C (C +y
1
) (C +y
2
) (C +y
3
) C +y = x +y[x C
[C[ = 4 poiche C `e lineare
dimC = 2
_
[C[ = 2
dimC
= 4
_
C F
4
2
ci aspettiamo una matrice di controllo di tipo 2 4.
C = 0, (0011), (1100)
. .
base di C
, (1111)
Equazioni
(h
1
, h
2
, h
3
, h
4
)
_
_
_
_
0
0
1
1
_
_
_
_
= 0 (h
1
, h
2
, h
3
, h
4
)
_
_
_
_
1
1
0
0
_
_
_
_
= 0
_
h
3
+h
4
= 0
h
1
+h
2
= 0
_
h
3
= h
4
h
1
= h
2
CAPITOLO 12. 27 APRILE 2010 53
Base per le soluzioni:
_

_
h
2
= 1
h
4
= 0
h
1
= 1
h
3
= 0
_

_
h
2
= 0
h
4
= 1
h
1
= 0
h
3
= 1
C = x F
4
2
[H x
T
= 0
Suddivisione di F
4
2
in laterali
F
4
2
= C
(0,0)
C
(1,0)
C
(0,1)
C
(1,1)
corrisponde alla suddivisione per sindromi.
Ad esempio:
C
(0,0)
=
_
x F
4
2
[Hx
T
=
_
0
0
__
= C
C
(1,0)
=
_
x F
4
2
[Hx
T
=
_
1
0
__
= C
C
(0,1)
=
_
x F
4
2
[Hx
T
=
_
0
1
__
= C
C
(1,1)
=
_
x F
4
2
[Hx
T
=
_
1
1
__
= C
Ricordiamo che se Hy = z ed x `e la parola di C pi` u vicina ad y allora
z = H(y +x) = Hy +Hx +Hz y +x appartiene allo stesso laterale di y ed
ha peso minimo in questo laterale.
C
(0,0)
parola di peso minimo `e (0,0,0,0)
C
(1,0)
_
1 1 0 0
0 0 1 1
_
_
_
_
_
x
y
z
t
_
_
_
_
=
_
1
0
_
Forse ho perso un pezzo perche si `e scaricato il PC?
C
(0,1)
=
_
x +y = 0
z +t = 1
parole di peso minimo: (0, 0, 1, 0) (0, 0, 0, 1)
C
(1,1)
=
_
x +y = 1
z +t = 1
(1, 0, 1, 0)
(0, 1, 1, 0)
(1, 0, 0, 1)
(0, 1, 0, 1)
Se y C lalgoritmo y y che corrisponde al valore P(y[y)P(y) =
P(y)P(1 f)
4
Ad esempio:
y = (1, 1, 0, 0) C
P(y) =
1
8
P(y)(1 f)
4
=
1
8
(1 f)
4
P(y[0)P(0) =
1
2
f
2
(1 f)
2

!
1
4
1
8
(1 f)
!
2
4

2
f
2
$
$
$
$
(1 f)
2
(1 f)
2
4f
2
CAPITOLO 12. 27 APRILE 2010 54
1 2f +f
2
4f
2
1 2f 3f
2
0
3f
2
+ 2f 1 0
3f
2
+ 3f f 1 = 0
3f(f + 1) (f + 1) = 0
(f + 1)(3f 1) = 0
Abbiamo che P(y[y)P(y) P(y[0)P(0) per 0 f
1
3
Rimane aperto quindi il problema di come denire un algoritmo ottimale per
f >
1
3
.
Esercizio: Vericare se per f =
1
2
lalgoritmo ottimale sia in realt`a
y (0, 0, 0, 0)
Per quali valori di f lalgoritmo ottimale `e quello di (distanza minima +
massima probabilit`a di input)?
Domanda: Se f <
1
3
lalgoritmo ottimale `e quello di (distanza minima
+ massima probabilit`a di input)? Provarlo per esercizio
Capitolo 13
29 Aprile 2010
13.1 Esercizio della volta precedente
Algoritmo ottimale: quello che massimizza, ssato y, per x C
P(x, y) =
P(y[x)P(x)
P(y)
P(y[x) = f
d(x,y)
(1 f)
4d(x,y)
sempre per BSC
La funzione in x da massimizzare per ogni ssato y `e
f
d(x,y)(1f)
4d(x,y)
P(x)
Casi estremi
f =
1
2
f = (1 f) =
1
2
Per f =
1
2
la funzione da massimizzare `e x P(x)
1
16
cio`e non c`e pi` u
dipendenza da y.
Lalgoritmo ottimale in questo caso `e y 0 perche p(0) = max
Osservazione
P
B
(algoritmo)=1
1
2
=
1
2
P
B
=probabilit`a di errore sul blocco
Lidea `e quella di fare un confronto con questo caso estremo. Vediamo laltro
caso estremo (f = 0).
Ricordiamo che i bit di messaggio sono quelli centrali:
P
b
(primo bit) =
_
1
8
+
1
4
_
=
3
8
Lo si pu`o vericare con la denizione diP
b
.
P
b
(secondo bit) =
_
1
8
+
1
4
_
=
3
8
.
Quindi P
b
`e la media tra le P
b
dei due bit ed `e sempre
3
8
.
La propriet`a di errore sul singolo bit `e relativa allalgoritmo di decodica e non
dal canale.
Denizione di P
b
P
b
=media su i di P( s
i
,= s
i
) =

s tale che s
i
=s
i
P( s ,= s)
55
CAPITOLO 13. 29 APRILE 2010 56
Vediamo il caso estremo f = 0 nel quale P(y[x) =
_
1 y = x
0 y ,= x
max P(y[x)P(x) =
_
P(y) y C
0 y / C
Lalgoritmo `e in un certo senso quello per massima vicinanza.
Adesso vediamo cosa succede nei casi intermedi, ovvero per 0 < f <
1
2
.
Dobbiamo ancora trovare il max
xC
P(y[x)P(x) ovvero max
xC
f
d(x,y)
(1
f)
4d(x,y)
P(x)
Essendo in presenza di C codice lineare una decomposizione naturale dello
spazio F
4
2
`e per sindromi.
F
4
2
= C
(0,0)
C
(0,1)
C
(1,0)
C
(1,1)
C
(0,0)
=
_
y[Hy =
_
0
0
__
C
(0,1)
=
_
y[Hy =
_
0
1
__
C
(1,0)
=
_
y[Hy =
_
1
0
__
C
(1,1)
=
_
y[Hy =
_
1
1
__
C
(0,0)
= C
C
(0,1)
=
_
y
1
+y
2
= 0
y
3
+y
4
= 1
C
(1,0)
=
_
y
1
+y
2
= 1
y
3
+y
4
= 0
C
(1,1)
=
_
y
1
+y
2
= 1
y
3
+y
4
= 1
In C
(0,0)
abbiamo un unico vettore di peso minimo (0, 0, 0, 0) w
min
= 0
In C
(0,1)
abbiamo due vettori di di peso minimo (0, 0, 1, 0) (0, 0, 0, 1) w
min
= 1
In C
(1,0)
abbiamo due vettori di peso minimo (1, 0, 0, 0) (0, 1, 0, 0) w
min
= 1
In C
(1,1)
abbiamo quattro vettori di peso minimo (1, 0, 1, 0) (0, 1, 1, 0) (1, 0, 0, 1) (0, 1, 0, 1) w
min
=
2
Notare che [C
(,)
[ = 4 (, ) F
2
2
In quanto
C
,
= C
(0,0)
+v = x +v[x C
(0,0)

v soluzione particolare del sistema Hy =


_

_
C
(,)
= x +v[x C v C
(,)
Vogliamo massimizzare
P(y|x)P(x)
P(y|0)P(0)
perche questo automaticamente mi da
un confronto tra lalgoritmo ottimale (che dobbiamo ancora denire) con
lalgoritmo che gi`a avevamo nel caso estremo.
M(y) =
max
x
P(y[x)P(x)
P(y[0)P(0)
=
f
d(x,y)
(1 f)
4d(x,y)
P(x)
f
d(y,0)
(1 f)
4d(y,0)

1
2
CAPITOLO 13. 29 APRILE 2010 57
Osservazione
Se per un ssato 0 < f <
1
2
risulta M(x, y) 1 x, y allora lalgoritmo y 0
`e ancora ottimale.
Esaminiamo i vari casi per y a seconda delle sindromi
y C
(0,0)
max
xC
P(y[x)P(x) = (1 f)
4
P(y)
Daltra parte il denominatore `e f
4

1
2
(caso ottenuto da y = (1, 1, 1, 1))
Allora M(y) =
(1f)
4

1
4
f
4 1
2
=
_
1f
f
_
4
1
2
y = (0, 0, 0, 0) M(y) = 1
y = (1, 1, 0, 0), (0, 0, 1, 1)
Allora M(y) =
(1f)
4

1
8
f
2
(1f)
1
2
=
_
1f
f
_
2
1
4
Notare che per f <
1
2
queste frazioni sono < 1 quindi il valore pi` u alto che
otteniamo lo otteniamo da
_
1f
f
_
4
1
2
o da M(y) = 1. Allora dobbiamo risolvere
la disequazione Per confrontare i due algoritmi y y y 0 dobbiamo
imporre M(y) 1y C
(0,0)
. Questo lo si fa imponendo
_
1 f
f
_
2
1
4
1
1 f
f
2
1 f 2f
f
1
3
y C
(1,0)
.M(y) =
max
xC
f
d(x,y)
(1 f)
4d(x,y)
P(x)
f
d(y,0)
(1f)
4d(y,0) 1
2
In C
(1,0)
vi sono vettori di peso = 1 M(y) =
f(1f)
3
P(x
max
)
f
d(y,0)
(1f)
4d(y,0) 1
2
Per`o y `e dato da una parola di peso minimo pi` u una parola di C:
y = (0, 1, 0, 0) +x x C
e le situazioni variano a seconda di quale sia questa parola di C.
M(y) = 1 se x = 0
M(y) =
_

_
f(1f)
3 1
8
f(1f)
3

1
2
=
1
4
x = (1, 1, 0, 0)
f(1f)
3 1
8
f
3
(1f)
1
2
x = (0, 0, 1, 1)
f(1f)
3 1
4
f
3
(1f)
1
2
x = (1, 1, 1, 1)
Capitolo 14
04 Maggio 2010:
Esercitazione
Ignoriamo il problema della volta precedente...
14.1 Digressione
xlog
1
x
`e convessa.
f(x) = xlog x 0 < x < 1
f

(x) = log x 1
f

(x) =
1
x
< 0
f(x) `e -convessa.
f(x, y) = xlogx ylogy x, y > 0 x +y = 1 `e convessa. In generale:
f(x
1
. . . x
n
) = x
1
log x
1
. . . x
n
log x
n
= H(x
1
. . . x
n
) x
1
+ . . . + x
n
=
1, x
i
> 0 `e sempre convessa
14.2 Esercizio 15.11
Per questo esercizio possiamo usare un metodo abbastanza generale che vedremo
nel corso dellesercizio.
Calcolo di capacit`a di un canale con 3 possibili input e 3 possibili output
A
x
= 1, 2, 3 A
y
= 1, 2, 3
Q =
_
_
1 0 0
0
2
3
1
3
0
1
3
2
3
_
_
_
_
_
P
(1)
y
P
(2)
y
P
(3)
y
_
_
_ = Q
_
_
_
P
(1)
x
P
(2)
x
P
(3)
x
_
_
_
C
Q
= min
P
x
I(X; Y )
In linea di principio questo sar`a un problema da risolvere analiticamente.
P
x
= (P, q, r)
58
CAPITOLO 14. 04 MAGGIO 2010: ESERCITAZIONE 59
_
p, q, r 0
p +q +r = 1
I(X; Y ) = H(Y ) H(Y [X)
1) Calcolo di H(Y [X)
H(Y [X) =
3

i=1
P
(i)
x
H(Y [x = i) =
3

i=1
P
(i)
x
3

j=1
P(y = j[x = i) log
2
1
P(y = j[x = i)
=
3

i=1
P
(i)
x
3

j=1
Q
ji
log
2
1
Q
ji
=
= P
(1)
x
_
1 log
1
3
+ 0 + 0
_
+P
(2)
x
_
0 +
2
3
log
3
2
+
1
3
log 3) +P
(3)
x
(0 +
1
3
log 3 +
2
3
log
3
2
_
=
= 9
_
2
3
log 3
2
3
+
1
3
log 3
_
+r
_
1
3
log 3 +
2
3
log 3
2
3
_
=
= 9
_
log3
2
3
_
+r
_
log 3
2
3
_
= (q +r)
_
log 3
2
3
_
2) Calcolo di H(Y )
H(Y ) =

i=1
P
y
(i) log
1
P
(i)
y
_
_
_
P
(1)
y
P
(2)
y
P
(3)
y
_
_
_ =
_
_
1 0 1
0
2
3
1
3
0
1
3
2
3
_
_
_
_
p
q
r
_
_
H(Y ) = p log
1
p
+
_
2
3
q +
1
3
r
_
log
1
2
3
q +
1
3
r
+ (
1
3
q +
2
3
r) log
1
1
3
q +
2
3
r
=
= p log p
2q +r
3
log
2q +r
3

q + 2r
3
log
q + 2r
3
=
= p log p
1
3
(2qr) log(2q+r)+(2q+r) log 3
1
3
(q+2r) log(q+2r)+(q+2r) log 3 =
= p log p
1
3
(2q +r) log(2q +r)
1
3
(q + 2r) log(q + 2r) + (q +r) log 3
I(X; Y ) = H(Y )H(Y [X) = p log p
1
3
[(2q +r) log(2q +r) + (q +r) log(q + 2r)]+
2
3
(q+r)
I(X; Y ) risulta somma di una funzione H(Y ) convessa in P
y
poiche
P
y
=trasformazione lineare QP
x
+funzione lineare in P
x
H(Y [X), quindi
convessa in P
x
. Il risultato `e che I(X; Y ) `e convessa in P
x
. Pertanto il
nostro dominio
D =
_
_
_
p, q, r
p +q +r = 1
p, q, r 0
Se (p, q, r) D e q ,= r allora (p, r, q) D e
1
2
(p, q, r) +
1
2
(p, r, q) =
_
p,
q+r
2
,
q+r
2
_
D
Scriviamo
P
x
1
= (p, q, r)
P
x
2
= (p, r, q)
CAPITOLO 14. 04 MAGGIO 2010: ESERCITAZIONE 60
P
x
=
_
p,
q+r
2
,
q+r
2
_
Abbiamo, per la convessit`a di I(X; Y )
I(X; Y )
1
2
I(X; Y ) +
1
2
I(X; Y )
Con questo ragionamento dovremmo trovare il max in corrispondenza della
distribuzione (
1
3
,
1
3
,
1
3
)
Ritorniamo ai calcoli analitici:
H(X; Y ) = (1qr) log(1qr)
1
3
(2q+r) log(2q+r)
1
3
(q+2r) log(q+2r)+
2
3
(q+r)
Metodo del gradiente per trovare eventuali punti stazionari (di massimo
relativo) allinterno del dominio a cui bisogner`a aggiungere i punti sul bordo.
Calcoliamo le derivate parziali:
f
q
= log(1qr)
$
$
$
$$
1 r q
@
@
@
@@
1 r r
(1)
2
3
log(2q+r)
1
3
2q +r
2q +r
2
1
3
log(q+2r)
1
3
q + 2r
q + 2r
+
2
3
= 0
f
q
= log(1 q r) + 1
2
3
log(2q +r)

2
3

1
3
log(q + 2r)
1
3
+

2
3
=
= log(1 q r)
2
3
log(2q +r)
1
3
log(q + 2r) +
2
3
f
q
= 0 3 log(1 q r) 2 log(2q +r) log(q + 2r) = 2
log
_
(1 q r)
3
(2q +r)
2
(q + 2r)
_
= 2

(1 q r)
3
(2q +r)
2
(q + 2r)
=
1
4
Poiche f(q, r) = f(r, q)
f
r
(q, r) =
f
q
(r, q)
f
r
= 0 equivale a
(1qr)
3
(2r+q)
2
(r+2q)
=
1
4
_
(2p +r)
2
(q + 2r) = 4(1 q r)
3
(2q +r)(q + 2r)
2
= 4(1 q r)
3
2q +r = q + 2r
q = r
Inoltre:
(3r)
2
3r = 4(1 2r)
3
27(r
3
) = 4(1 2r)
3
3r =
3

4(1 2r)
(3 + 2
3

4)r =
3

4
_
r =
2
5
3
3+2
5
3
> 0
2r 1
CAPITOLO 14. 04 MAGGIO 2010: ESERCITAZIONE 61
P
x
= (p, q, r) con q = r =
2
5
3
3+2
5
3
e p = 1
2
5
3
3+2
5
3
=
3
3+2
5
3
C = I(X; Y ) = H(Y ) H(Y [X) = H(Y ) (q +r)
2
3
P
y
=
_
_
1 0 0
0
2
3
1
3
0
1
3
2
3
_
_
=
_
_
_
_
_
3
3+2
5
3
2
2
3
3+2
5
3
2
2
3
3+2
5
3
_
_
_
_
_
H(Y ) =
3
3+2
5
3
log
3+2
5
3
3
+
2
2
3
3+2
5
3
log
3+2
5
3
2
5
3
=
3
3+2
5
3
log(3 + 2
5
3
)
3
3+2
5
3
log 3 +
2
5
3
3+2
5
3
log(3 + 2
5
3
) =
= log(3 + 2
5
3
)
1
3+2
5
3
_
3 log 3
2
3
2
5
3
_

2
3
_
2
5
3
3+2
5
3
_
3)
Capitolo 15
6 Mag 10: Message Passing
Un tipo di questi algoritmi `e lalgoritmo di Viterbi che si applica anche per
decodicare dei codici.
15.1 Esempio fatto dal testo
Abbiamo una la di soldati, di cui uno `e il comandante. Questultimo vuole
sapere un metodo rapido per contarli, essendo che i soldati sono nella nebbia.
Il metodo pi` u rapido `e quello di chiedere a ciascuno di urlare il proprio nome.
Un altro modo `e quello in cui:
1) Il soldato che sta pi` u avanti dice (manda il messaggio) 1 al soldato che sta
pi` u indietro;
2) Il soldato che sta pi` u indietro comunica 1 a chi gli sta avanti
3) Se un soldato riceve un valore v da un connante comunica v + 1 allaltro
connante.
Le prime due sono condizioni di inizializzazione. Il comandante conta il numero
di soldati sommando (v
+
+v

+1) dove v
+
`e il messaggio passato da chi gli sta
avanti e v

`e il messaggio da chi sta avanti (+1 perche conta anche se stesso).


Non possiamo pensare di generalizzare questo algoritmo in un grafo
contenente dei cicli perche la somma potrebbe cominciare ad aumentare a
dismisura. Dobbiamo considerare come minimo gra aciclici, ovvero alberi.
Ogni soldato ha come compito di tenere docchio alcuni suoi soldati (ciascun
soldati sa chi sono i suoi connanti). Si pu`o quindi generalizzare questo
algoritmo in modo tale che termini quando tutti i vertici sono a conoscenza del
numero totale dei vertici del grafo. Istruzioni per ciascun nodo i dellalbero (ad
ogni istante di tempo t):
1. Conta i tuoi N = N(i) connanti (da fare solo inizialmente);
2. Tenere il conto del numero di messaggi m ricevuti al tempo t e i loro valori
v
1
, . . . , v
N
(v
j
= 0 se i non ha ricevuto messaggi da j). m = W(v
1
...v
N
) =
#j[v
j
,= 0.
62
CAPITOLO 15. 6 MAG 10: MESSAGE PASSING 63
3. Se si sono ricevuti N 1 messaggi (cio`e se m = N 1) allora si invia
V + 1 al nodo connante con v
j
= 0 (che non ha mandato messaggi) dove
V = v
1
+. . . +v
N
. Ci`o avviene una sola volta.
4. Se m = N allora V + 1 `e il totale (=#nodi dellalbero). Si invia ad ogni
connante j il numero V + 1 v
j
, per essere sicuri che anche i connanti
sappiano il numero nale dei nodi.
15.1.1 Propriet`a di un albero: ogni nodo lo disconnette
Da una parte abbiamo gli jcon v
j
= 0 e dellaltra gli j con v
j
> 0. Anche un
nodo di uno dei due gruppi passi qualche messaggio a un nodo dellaltro gruppo
deve passare attraverso un solo nodo intermedio i.
15.1.2 Inizio del processo
sempre nodi con N = 1 (foglie dellalbero). Tali nodi ricadono nella
condizione 3. Ogni foglia invia +1 al proprio connante. V
(t)
= (v
(t)
1
+. . .+v
(t)
N
)
rappresenta la cardinalit`a della parte di albero che ha mandato informazioni
ad i (si dimostra per induzione su t).
Si pu`o denire
M
(t)
=

i nodo dellalbero
m
(t)
(i)
M
(t+1)
> M
(t)
t
M
(t)
2#lati albero
che `e un invariante utile per provare la terminazione.
Lalgoritmo `e un BFS che per`o parte dalle foglie.
15.2 Esercizio
Abbiamo un canale su cui si trasmettono 8 bit
x = (x
0
, . . . , x
7
)

y = (y
0
, . . . , y
7
)
x
i
, y
i
F
Il canale Q cambia con certezza il valore d iun bit x
i
x
i
x
i
+ 1
con probabilit`a uniforme su i.
Deniamo e
i
= i-esimo vettore della base canonica di F
8
2
.
e
i
= (0 . . . 1
i
. . . 0)
CAPITOLO 15. 6 MAG 10: MESSAGE PASSING 64
x y = x +e
i
P(y[x) =
_
1
8
se y = x +e
i
0 se y ,= xe
i
i = 0 . . . 7
A
X
= A
Y
= F
8
2
= x = (x
0
. . . x
7
[x
i
0, 1
Vogliamo calcolare la capacit` a del canale C
Q
.
C
Q
= max
P
x
(H(Y ) H(Y [X))
H(Y [X) =

x
P
(x)
X
H(Y [x)
H(Y [x) =

y
P(y[x) log
1
P(y[x)
=
7

i=0
P(x+e
i
[x) = log
1
P(x +e
i
[x)
=

8
1

8
log 8 = 3
H(Y [x) = 3 x

H(Y [X) = 3
15.2.1 Calcolo di H(Y)
H(Y ) =

yF
8
2
P(y) log
1
P(y)
P
y
(y) = (P
x
(y +e
0
) +P
x
(y +e
1
) +. . . +P
x
(y +e
7
))
1
8
Si ottiene y si invia x e y = x + e
i
i 0 . . . 7 tale che si `e inviato
x = y e
i
= y +e
i
.
Segue che se P
x
`e la distribuzione uniforme
P
x
(x) =
1
2
x
allora P
y
`e pure uniforme
P
y
(y) =
1
8
8
1
2
8
=
1
2
8
Segue che
H
max
(Y ) = log
2
[A
y
[ = 8
C
Q
= H
max
(Y ) 3 = 8 3 = 5
Domanda 2: Esiste un codice C A
x
= F
8
2
con rate R = 5 = C
Q
che
corregge gli errori con certezza?
Provare a farlo da noi. Suggerimento: dire che ha rate 5 vuol dire, con N = 1,
che
R = K = #bit di informazione = C
Q
= 5
quindi C deve essere in grado di trasmettere 5 bit arbitrari con unaggiunta di
ridondanza = 3 bit di controllo in modo che se x C `e trasmesso e si riceve
y = x +e
i
i bit di controllo individuano i con certezza.
CAPITOLO 15. 6 MAG 10: MESSAGE PASSING 65
15.2.2 Osservazione
i 0 . . . 7. Bastano 3 bit per descrivere i. Per lesattezza basta prendere [i]
2
scrittura in base due.
15.2.3 Suggerimento
Costruire C lineare con dimC = 5 che soddis una matrice di controllo del tipo
Hx = 0 con H matrice di controllo 3 8 tale che se y = x+e
i
allora la sindrome
Hy = Hx +He
i
= He
i
possa determinare i.
Capitolo 16
11 Maggio 2010: Altri
algoritmi di Message
Passing
16.1 Contare il numero di cammini tra due
punti in una griglia
Esempio del libro: griglia 4 4 in cui i cammini devono stare al di sopra della
diagonale con passi (verso destra) oppure (verso il basso).
Osservazione
Se non vi fosse la condizione di giacere al di sopra della diagonale avremmo
#cammini = #x = (x
1
. . . x
6
)[x
i
0, 1w(x) = 3 =
_
6
3
_
ossia #cammini=#sestuple con 3 zeri e 3 uni.
Osservazioni chiave
i) Per ogni P vertice ammissibile per un tale cammino il numero dei cammini
passanti per P `e uguale a
#cammini da A a P #cammini da P a B
ii) Inoltre il numero dei cammini da A a P `e
# cammini da A a P
up
+ #cammini da A a P
left
dove
P
up
= vertice sopra P
P
left
= vertice a sinistra di P
66
CAPITOLO16. 11 MAGGIO2010: ALTRI ALGORITMI DI MESSAGE PASSING67
16.1.1 Algoritmo (parte forward)
1) A invia 1 ai suoi connanti ammissibili (a destra e in basso).
2) (passo induttivo) Ogni P invia ai suoi connanti ammissibili a destra e in
basso la somma
v(P
up
) +v(P
left
)
dei valori a lui inviati da P
up
e P
left
(da chi dei due `e ammissibile).
Esempio Disegno nel quaderno (4). v(B)=5
16.1.2 Algoritmo (parte backward)
Lo stesso algoritmo lo si pu`o eseguire backward, partendo da B ed organizzando
i dati come segue:
in P scriviamo nellangolo in alto il valore che proviene da A e nellangolo in
basso il valore che (Disegno 5) = cammini per P = v
A
(P[v
B
(P) da B. Disegno
6.
16.2 Costruzione di un cammino random da A
a B
Per ogni P consideriamo P
right
e P
down
(i suoi connanti ammissibili). Allora
un cammino passante per P ha probabilit`a di andare verso P
right
P(P P
right
) =
v
B
(P
right
)
v
B
(P)
P(P P
down
) =
v
B
(P
down
)
v
B
(P)
Gli algoritmi propagativi di questo tipo o quelli di message passing funzionano
quando la quantit`a da calcolare si pu`o spezzare come somma di alternative; non
tutti i problemi di enumerazione hanno questa caratteristica.
16.3 Algoritmi di min-sum (o algoritmo di
Viterbi)
16.3.1 Esempio: cammino a minimo corto
Disegno 7
Ad ogni vertice si attribuisce un costo uguale al minimo costo da A al vertice
X.
i) costo(A) = 0
ii) Il vertice X con costo=c(X) manda ai suoi connanti Y (a destra) il valore
c(X) +C(latoXY ).
iii) c(X) `e determinato come il minimo dei costi provenienti dai connanti a
sinistra di X
CAPITOLO16. 11 MAGGIO2010: ALTRI ALGORITMI DI MESSAGE PASSING68
iv) Ogni lato

Y X non scelto in un cammino di costo minimo no ad X `e


soppresso.
Disegno 8.
Nellesercizio 16.4 viene calcolata la cosiddetta immagine integrale ottenuta da
unimmagine descritta da una certa funzione del piano.
16.4 Esercizio volta precedente
x F
8
2

y = x +e
i
e
i
= (0 . . . 1 . . . 0) dove 1 sta al posto i
C codice di rate 5=capacit`a del canale con algortimo di decodica con p
B
= 0.
Potevamo fare cos`:
C lineare, dimC = 5 C F
8
2
C = x F
8
2
[Hx
T
= 0 con H matrice 3 8 e H tale che le sindromi associate
agli errori ammissibili e
i
siano tutte distente.
He
i
,= He
j
i ,= j
`e suciente che le colonne di H siano tutte distinte (He
i
= iesima colonna di
H).
Esempio H =
_
_
0 1 0 0 1 1 0 1
0 0 1 0 1 0 1 1
0 0 0 1 0 1 1 1
_
_
colonne di H F
3
2
Hy = H(x +e
i
) = He
i
determina
e
i
16.5 Altro esercizio volta precedente (15.11)
A
X
= 1, 2, 3
A
Y
= 1, 2, 3
H(Y [X) =
_
P
(2)
x
+P
(3)
x
_
_
log 3
2
3
_
I(Y, X) = H(Y ) H(Y [X) Q =
_
_
1 0 0
0
2
3
1
3
0
1
3
1
3
_
_
Osservazione: Q `e una matrice invertibile. Infatti `e quadrata e
det Q =
4
9

1
9
=
1
3
,= 0
Allora P
y
=
_
_
1
3
1
3
1
3
_
_
`e ottenibile da qualche P
x
, precisamente dalla soluzione
del sistema
QP
x
=
_
_
1
3
1
3
1
3
_
_
P
x
= Q
1
_
_
1
3
1
3
1
3
_
_
=
_
_
1
3
0 0
0
1
3

1
3
0
2
3
2
3
_
_
3
_
_
1
3
1
3
1
3
_
_
dove
Q
1
= Q
aggiunta
1
det Q
CAPITOLO16. 11 MAGGIO2010: ALTRI ALGORITMI DI MESSAGE PASSING69
dove
Q
aggiunta
= la matrice ((1)
i+j
M
ij
)
T
16.6 Capacit`a del canale binario con cancellazione
A
x
= 0, 1
A
y
= 0, 1, Q =
_
_
1 f 0
0 1 f
f f
_
_
P(0[x
i
)
P(1[x
i
)
P([x
i
)
P
y
= QP
x
I(X; Y ) = H(Y ) H(Y [X)
H(Y [X) = P(0)H(Y [0)+P(1)H(Y [1) = P(0)H
2
(f)+P(1)H
2
(f) = H
2
(f) dove
H
2
(f) = f log
1
f
+ (1 f) log
1
1 f
quindi lentropia, sia per 0 che per 1, `e la stessa. Daltronde il canale `e
simmetrico quindi `e ragionevole che le due entropie siano uguali. Gi`a sappiamo
che
C
Q
= max
P
x
(H(Y ) H(Y [X)) = max
P
x
H(Y ) H
2
(f)
H(Y ) = P
y
(0) log
1
P
y
(0) +P
y
(1)
log
1
P
y
(1)
+P
y
() log 1P
y
(star)
P
y
= QPx =
_
_
1 f 0
0 1 f
f f
_
_
_
P
x
(0)
P
x
(1)
_
=
_
_
(1 f)(P
x
(0))
(1 f)P
x
(1)
f
_
_
=
_
_
(1 f)x
(1 f)(1 x)
f
_
_
H(Y ) = (1 f)xlog(1 f)x (1 f)(1 x) log(1 f)(1 x) f log f
Imponiamo f

(x) = 0 0 x
1
2
h

(x) = (1f) log((1f)x)(1f)


x
(1 f)x
(1f)+(1f) log((1f)(1x))
(1 f)(1 x)
(1 f)(1 x)
(1)(1f) =
= (1 f)[log(1 f)(1 x) log(1 f)x] = 0
se log(1 f)(1 x) = log(1 f)x x = 1 x cio`e x =
1
2
Capitolo 17
13 Maggio 2010: Codici
associati a tralicci
17.1 Denizione di traliccio
Un traliccio `e un grafo etichettato (con lati etichettati da etichette in un alfabeto
A
x
) con vertici distribuiti in sottoinsiemi Z
0
, Z
1
, . . . , Z
n
disgiunti e tale che i lati
colleghino solo vertici di un insieme Z
i
con i vertici di Z
i+1
(non necessariamente
tutti).
Alternativamente, un traliccio `e una concatenazione di gra bipartiti.
Solitamente si pone
Z
0
= 0
Z
N
= 0
Z
i
= spazio degli stati al tempo t = i
Disegno 1
A volte si impone anche la condizione che se z Z
i
ed `e connesso con z

1
, z

2

Z
i+1
, allora i corrispondenti lati devono avere etichette diverse.
Tale condizione si pu`o anche esprimere cos`:
Condizione 17.1. Per ogni i esiste una funzione F
i
: S Z
i+1
dove S
Z
i
A
x
tale che i lati da Z
i
a Z
i+1
siano tutti e soli del tipo (Z, x, F
i
(z, x))
dove z Z
i
e F
i
(z, x) sono i due vertici del lato ed x A
X
`e la etichetta.
Il codice C A
N
X
associato ad un traliccio T di lunghezza N `e denito come
linsieme delle x = (x
0
. . . x
N1
) che compaiono come etichette consecutive di
un cammino nel traliccio, da Z
0
a Z
N
.
Nellesempio dato, (1010) C.
Nota bene: se il traliccio ha la propriet`a ?? allora vi `e una corrispondenza
biunivoca tra i cammini in T come sopra e gli x C.
17.1.1 Altro esempio
A
X
= 0, 1 BSC memoryless
Disegno 2
C = (0, 0, 0, 0, 0), (0, 0, 0, 1, 1), (0, 1, 0, 0, 1), (0, 1, 1, 1, 1), (1, 0, 1, 1, 1), (1, 0, 0, 0, 1), (1, 1, 1, 0, 1), (1, 0, 1, 0, 0)
70
CAPITOLO 17. 13 MAGGIO 2010: CODICI ASSOCIATI A TRALICCI 71
Stiamo assumendo che ogni parola di C sia trasmessa con uguale probabilit`a:
P
(x)
=
1
|C|
x C. Questo consente che lalgoritmo di decodica ottimale `e
quello per minima distanza (di Hamming).
Supponiamo di ricevere y = (1, 1, 1, 1, 1). Per decodicare tale y con lalgoritmo
di minima distanza dobbiamo trovare lalgoritmo di costo minimo.
Funzione costo c(x
i
) =
_
0 se x
i
= y
i
1 se x
i
,= y
i
Costo di un cammino (x
0
x
1
x
2
x
3
x
4
) = x =
4

i=0
c(x
i
) = d(x, y)
Figura 3: su ogni vertice scriviamo il costo parziale.
Alla ne abbiamo due parole di costo minimo:
x =
_

_
(1, 0, 1, 1, 1)
(1, 1, 1, 1, 0)
(0, 1, 1, 1, 1)
Ci sono tre parole di distanza 1 (non `e proprio un gran bel codice per la
correzione).
Teorema. Ogni codice binario lineare C F
N
2
ha una rappresentazione
mediante un traliccio.
17.2 Metodo per costruire una rappresentazione
a traliccio di C
C `e sempre denito da una matrice di controllo.
C = x F
N
2
[Hx
T
= 0
H(n k) ndi rango n k
Occorre che H sia ridotta per righe.
Denizione: H `e ridotta per righe se, denite le matrici H

e H

come seguir`a
si ha rkH

=rkH

=rkH = n k.
H

= matrice avente per righe le righe di H cos` modicate:


per ogni riga h
i
di H scriviamo
h
i
= 0(0 . . . 0h
i,t

i
=0
. . .)
il posto (i, t

i
) `e il primo in cui h
i
= 1 allora modichiamo h
i
in
h

i
= (0 . . . 0h
i,t

i
0 . . . 0)
cio`e poniamo uguale a zero ogni coeciente eccetto il primo non nullo.
Allora deniamo
H

=
_
_
_
h

1
.
.
.
h

nk
_
_
_
CAPITOLO 17. 13 MAGGIO 2010: CODICI ASSOCIATI A TRALICCI 72
righe h
1
h
k
modicate.
Esempio:
H =
_
1 0 0 1 0
0 0 1 1 1
_

=
_
1 0 0 0 0
0 0 1 0 0
_
H

p costruito in modo analogo ad H

ma questa volta consideriamo gli ultimi


posti non nulli di ogni riga. Esempio:
H

=
_
0 0 0 1 0
0 0 0 0 1
_
Vediamo che H di questo esempio `e ridotta per righe infatti
rkH

= rkH

= 2 = rkH
17.2.1 Osservazione
Non `e detto che una matrice H di rango n k e tipo (n k) n sia sempre
ridotta per righe. Esempio:
H =
_
1 0 0 1
0 1 0 1
_
H

=
_
1 0 0 0
0 1 0 0
_
H

=
_
0 0 0 1
0 0 0 1
_
dove H

non va bene.
In questo caso si pu`o sempre trasformare H in una matrice ridotta per righe
con operazioni di riga (quindi mantenendo C invariata).
Nellesempio:
H
R

1
=R
1
+R
2

_
1 1 0 0
0 0 0 1
_
H

=
_
0 1 0 0
0 0 0 1
_
che `e OK.
Sia H in forma ridotta
H =
_
_
_
h
00
h
0n1
.
.
.
.
.
.
.
.
.
h
nk1
h
nk+n1
_
_
_ = (h
ij
)
0ink1,0jn1
x C x = (x
0
. . . x
n1
)
CAPITOLO 17. 13 MAGGIO 2010: CODICI ASSOCIATI A TRALICCI 73
Costruiamo matrici H
t
, t = 1, . . . , n nel modo seguente. Per ogni i 0, . . . , n
k 1 deniamo t

i
= j : h

ij
= 1, t

i
= j : h

ij
= 1 Dove H

= (h

ij
), H

= (h

ij
).
Ad esempio:
H

=
_
1 0 0 0
0 1 0 0
_
t

0
= 0, t

1
= 1
H

=
_
0 1 0 0
0 0 0 1
_
t

0
= 1, t

1
= 3
H
t
`e la sottomatrice di H formata intersecando le prime t colonne di H (colone
0, . . . , t 1) con le righe i tali che t

i
< t t

i
. Esempio:
H =
_
1 1 0 0
0 1 0 1
_
Poniamo t = 2 e costruiamo H
2
: t

0
= 0, t

0
= 1
t

0
< 2, t

0
= 1

2
Per cui H
2
= (01)
1 ]0, 1] OK
1 / ]1, 3] NO
H
1
= (1)
3 / ]0, 1]
3 ]1, 3]
H
3
= (0, 1, 0)
H
4
=
17.3 Costruzione del traliccio
Z
t
= F
rk(H
t
)
2
Z
0
= 0 Z
n
= 0
Un lato etichettato (z, x, z

) Z
t
F
2
Z
t+1
appartiene al traliccio z, x, z

risolvono il seguente sistema:


x
0
. . . x
t
F
2
tali che
_

_
H
t
_
_
_
_
x
0
.
.
.
x
t1
_
_
_
_
= z
x
t
= x
H
t+1
_
_
_
_
x
0
.
.
.
x
t
_
_
_
_
= z

Capitolo 18
Tralicci
Ringrazio la dott.ssa Olivia Piazza per aver redatto ed avermi messo a
disposizione questa sezione.
18.1 Introduzione ai tralicci
Lobiettivo di questa sezione `e di pervenire, mediante una rappresentazione
dinamica dei codici, ad un nuovo metodo di decodica per un codice generico:
lalgoritmo di Viterbi. La caratteristica principale di tale algoritmo `e che
mediante esso `e possibile eettuare decodiche rapide ed in tempo reale. Per
decodicare un certo blocco, infatti, non si aspetta che esso venga trasmesso
totalmente ma si opera istante per istante su ogni simbolo trasmesso per cercare
una decodica parziale no a quel simbolo.
Rappresentiamo quindi in modo dinamico i codici a blocchi.
18.2 Notazioni e prime denizioni
Sia F = F
q
un campo nito e sia C F
n
un codice a blocchi. Una parola
x C `e quindi una n-upla: x = (x
0
, . . . , x
n1
). Per sottolineare la dipendenza
dal tempo, in quanto segue rappresenteremo la parola x indicizzandone le
componenti mediante un indice t ovvero: x=(x
t
)
t[0,n1]
.
Lintervallo dei tempi a cui appartiene lindice temporale t verr`a indicato con I
e potr`a anche essere innito. Supporremo nelle considerazioni che eettueremo
che: I = [0, n]. La rappresentazione del codice a cui perverremo prender`a il
nome di traliccio o trellis.
Il traliccio `e semplicemente un grafo decorato, esso cio`e viene ragurato
attraverso una successione di vertici e spigoli, questi ultimi etichettati.
Riportiamo subito, per iniziare a comprendere meglio, un generico schema
di traliccio nel quale supponiamo sia n = 4 in Figura 18.1.
Alcune caratteristiche principali di un traliccio sono:
i vertici di un traliccio costituiscono un insieme V e vengono suddivisi in
una partizione:V = Z
0
Z
1
. . . Z
n
con Z
i
Z
j
= se i ,= j;
i lati del traliccio congiungono esclusivamente vertici del tipo v, w con
v Z
t
e w Z
t+1
per t [0, . . . , n];
74
CAPITOLO 18. TRALICCI 75
Z
0
Z
1
Z
2
Z
3
Z
4 0 0
1 1
1
1 1
1
0 0 0 0
Figura 18.1: Generico schema di traliccio
due lati distinti che congiungono uno stesso vertice di Z
t
con due vertici
di Z
t+1
sono sempre etichettati mediante etichette distinte.
Nel caso dei codici a blocchi si ha: [Z
0
[ = 1 e [Z
n
[ = 1. Assegnato un
traliccio, le parole del codice associate ad esso si ottengono considerando le
sequenze delle etichette associate a tutti i possibili cammini dal primo vertice
(quello di Z
0
) allultimo (quello di Z
n
).
Per cammino da Z
0
a Z
n
intendiamo una successione di lati l
0
, . . . , l
n1
tale che
l
i
= (v
1
, v
i+1
) con v
j
Z
j
j = 0, . . . , n.
Introduciamo di seguito alcune denizioni di base.
Una operazione molto utile che sfrutteremo spesso sar`a la concatenazione di
due vettori al tempo t.
Denizione 18.1. Siano x = (x
t
)
t[0,n1]
e y = (y
t
)
t[0,n1]
due vettori di F
n
e sia t
0
[0, n 1]. Si denisce concatenazione di x e y al tempo t
0
, e la
indicheremo con x
t
0
y, il vettore:
x
t
0
y =
_
x
t
se t < t
0
y
t
se t t
0
.
Sia C F
n
un codice. Denotiamo con
t
e con
t+
rispettivamente la
proiezione nel passato e nel futuro al tempo t, ovvero:

t
: C F
t
(18.5)
(x
0
, . . . , x
n1
) (x
0
, . . . , x
t1
) (18.6)
e

t+
: C F
nt
(18.7)
(x
0
, . . . , x
n1
) (x
t
, . . . , x
n1
) (18.8)
CAPITOLO 18. TRALICCI 76
Denotiamo con C
t
limmagine della proiezione di C sulle prime t coordinate,
ovvero:
C
t
= (x
0
, . . . , x
t1
) : x
t
, . . . , x
n1
t.c. (x
0
, . . . , x
n1
) C (18.9)
in altre parole: C
t
=
t
(C).
Nel caso in cui t = 0 porremo C
t
= 0.
Denotiamo con C
t+
limmagine della proiezione di C sulle ultime nt coordinate
ovvero:
C
t+
= (x
t
, . . . , x
n1
) : x
0
, . . . , x
t1
t.c. (x
0
, . . . , x
n1
) C. (18.10)
in altre parole: C
t
=
t
(C).
Denizione 18.2. Sia x C
t
. Deniamo linsieme dei futuri compatibili con
x come linsieme:
T(x)=y C
t+
: x
t
y C
Siano x e y due passati in C
t
. Diremo x e y equivalenti e scriveremo:
x
t
y, se T(x)=T(y).
CAPITOLO 18. TRALICCI 77
Sia C un codice generico. Possono presentarsi le tre seguenti possibilit`a:
T(x) T(y) = ;
T(x) T(y) ,= , T(x) ,= T(y);
T(x) = T(y).
Teorema 18.1. Sia C F
n
un codice lineare. Siano x=(x
0
, . . . , x
t1
) e
y=(y
0
, . . . , y
t1
) due vettori di C
t
. Si ha: T(x) T(y) ,= 0 T(x)=T(y).
Dimostrazione. Ovvio.
Sia (z
t
, . . . , z
n1
) T(x) T(y) ovvero si abbia:
(x
0
, . . . , x
t1
, z
t
, . . . , z
n1
) C e (y
0
, . . . , y
t1
, z
t
, . . . , z
n1
) C.
Poiche C `e lineare, la dierenza tra le due precedenti nuple, cio`e la nupla
(x
0
y
0
, . . . , x
t1
y
t1
, 0, . . . , 0), `e ancora una nupla del codice C.
Daltra parte, se (w
t
, . . . , w
n1
) T(x), cio`e (x
0
, . . . , x
t1
, w
t
, . . . , w
n1
) C,
dato che (x
0
y
0
, . . . , x
t1
y
t1
, 0, . . . , 0) C anche la seguente dierenza
sta in C cio`e: (x
0
, . . . , x
t1
, w
t
, . . . , w
n1
) (y
0
, . . . , y
t1
, w
t
, . . . , w
n1
) C.
`
E cos` provato che T(x) T(y). Per simmetria si dimostra anche che
T(y) T(x) da cui: T(y)=T(x).
Deniamo C
t
= x C : x
s
= 0 s t. C
t
rappresenta quindi il nucleo
della proiezione di C su F
nt
che associa alla nupla (x
0
, . . . , x
n1
), la tupla
(x
0
, . . . , x
t1
). Possiamo allora asserire che, se x e y sono due vettori di C
t
tali che T(x)=T(y), allora x y
t
(C
t
).
Ovviamente, considerando la restrizione della proiezione canonica
t
a C
t
cio`e:

t
[C
t
: C
t
F
t
, otteniamo una applicazione iniettiva dato che una nupla
di C
t
`e univocamente individuata dalle sue prime t coordinate.
Denizione 18.3. Deniamo Z
t
C
t
/
t
linsieme degli stati e, per
uniformit`a di notazione, ogni qual volta Z
t
`e costituito da un unico elemento,
questo verr`a denotato con 0.
Per quanto precedentemente provato, due vettori x e y di C
t
sono
equivalenti se e solo se (x
0
y
0
, . . . , x
t1
y
t1
, 0, . . . , 0) C
t
ovvero se e
solo se x y
t
(C
t
) F
t
. Le classi di congruenza sono, allora, il laterali.
Alla luce delle considerazioni fatte, linsieme degli stati Z
t
che abbiamo prima
denito pu`o essere ridenito come: Z
t
C
t
/p(C
t
).
Come spazio quoziente, ciascun Z
t
ha struttura di spazio vettoriale.
Denotiamo con p
t
: C
t
Z
t
la proiezione canonica sullo spazio quoziente
Z
t
. Denotiamo con
t
la composizione delle due proiezioni
t
: C C
t
e
p
t
: C
t
Z
t
ovvero:

t
(x) = p
t
(
t
(x)) = z
t
Z
t
. (18.11)
La funzione
t
associa quindi alla nupla (x
0
, . . . , x
n1
) C la classe di
equivalenza [(x
0
, . . . , x
t1
)] = z
t
di Z
t
.
z
t
viene denita canonical state di x al tempo t e la sequenza corrispondente:
z

tI
Z
t
(C) (18.12)
`e chiamata canonical state sequence di x.
Dalla denizione di stato si perviene al seguente:
CAPITOLO 18. TRALICCI 78
Teorema 18.2. Siano x
1
, x
2
C e siano z
1
e z
2
le corrispondenti canonical
state sequences; sia, inne, t I. Nel caso in cui z
1
t
= z
2
t
e x
1
t
= x
2
t
, si ha:
z
1
t+1
= z
2
t+1
.
Dimostrazione:
Poiche
t
(x
1
)
t

t
(x
2
) ed inoltre x
1
t
= x
2
t
, si ha:
(t+1)
(x
1
)
(t+1)

(t+1)
(x
2
). La tesi deriva immediatamente dalla denizione di stato.
Denizione 18.4. Si denisce canonical trellis section associata al codice
C al tempo t, il sottoinsieme T
t
Z
t
F Z
t+1
cos` denito:
T
t
=
_
_
_
(z, x, z

) Z
t
F Z
t+1
: x C per cui:
x
t
= x
z
t
= z
z
t+1
= z

_
_
_
. (18.13)
Una trellis section pu`o essere rappresentata attraverso un digrafo etichettato
i cui vertici sono dati dagli elementi di Z
t
e Z
t+1
rispettivamente.
Uno spigolo congiungente z Z
t
e z

Z
t+1
viene tracciato solo nel caso in cui
la terna (z, x, z

) T
t
per qualche x. Tale spigolo verr`a quindi etichettato con
x (vedi Figura 2).
Z
t
Z
t+1
z
z'
x
Figura 18.2: Canonical Trellis Section
Limportanza della trellis section `e dovuta al fatto che, nel caso in cui
lintervallo I dei tempi sia nito come nel caso che stiamo considerando in cui
CAPITOLO 18. TRALICCI 79
I = [0, n], essa rappresenta una descrizione locale completa del codice.
Dalla conoscenza di tutte le trellis sections T
t
, t I, `e possibile determinare
esattamente il codice C.
Dal teorema (6.2) segue immediatamente la seguente propriet`a:
(z, x, z

), (z, x, z

) T
t
z

= z

(18.14)
ovvero, a livello di una generica trellis section T
t
, se due spigoli con la stessa
etichetta si dipartono dal medesimo stato, essi dovranno terminare in uno stesso
stato.
Se il codice C `e lineare, cos` come Z
t
ha struttura di spazio vettoriale, `e possibile
dimostrare molto semplicemente che vale anche il seguente:
Teorema 18.3. Ciascuna trellis section T
t
, t [0, n1], associata ad un codice
lineare `e uno spazio vettoriale.
Dimostrazione:
Sia t [0, n1], siano (z, x, z

) e (w, y, w

) T
t
e , F. Per provare che T
t
`e
uno spazio vettoriale, `e suciente provare che la terna (z +w, x+w

, z

+
w

) T
t
.
Poiche (z, x, z

) Z
t
, esiste x C tale che:
_

t
(x) = z
x
t
= x

t+1
(x) = z

Analogamente, poiche (w, y, w

) T
t
, esiste y C tale che:
_

t
(y) = w
y
t
= y

t+1
(y) = w

Considerando la terna (z + w, x + y, z

+ w

), per provare che essa sta


nella trellis section T
t
`e suciente provare che esiste un vettore ad essa associato
che soddisfa le relazioni contenute nella denizione stessa (13) di trellis.
Il vettore suddetto `e: x + y che, grazie alla linearit`a del codice, sta in C.
Infatti dalla linearit`a delle applicazioni
t
e di quella che ad un vettore di C
associa la sua tsima componente, si ha
_

t
(x +y) = z +w
(x +y)
t
= y +y

t+1
(x +y) = z

+w

.
Ci`o dimostra che T
t
, t [0, n 1], ha struttura di spazio vettoriale.
18.3 Matrici in forma ridotta per riga
Le nozioni che introdurremo in questo paragrafo ci permetterano di costruire
concretamente una rappresentazione a traliccio per un codice assegnato
mediante la sua matrice di controllo.
CAPITOLO 18. TRALICCI 80
Per eettuare la costruzione dei tralicci sar`a utile lavorare su matrici di controllo
con particolari propriet`a. Eettueremo, a tale scopo, alcune operazioni sulle
righe della matrice di controllo H associata al codice lineare in esame. Tali
operazioni di riga non modicano il codice C per cui possono essere eettuate
senza problemi.
Sia F = F
q
un campo nito e sia C F
n
un codice lineare di dimensione k con
matrice di controllo H. Ricordiamo che H `e una matrice di tipo (n k) n e
che (H) = n k.
Denizione 18.5. Una matrice:
H =
_
_
_
h
0
.
.
.
h
nk1
_
_
_
con h
i
F
n
si dice essere in forma ridotta per righe se, costruite a partire
da H le due matrici:
H

=
_
_
_
h

0
.
.
.
h

nk1
_
_
_
con h

i
F
n
e con
h

ij
=
_
h
ij
se j = mink[h
ik
,= 0
0 altrimenti
e
H

=
_
_
_
h

0
.
.
.
h

nk1
_
_
_
con h

i
F
n
e con
h

ij
=
_
h
ij
se j = maxk[h
ik
,= 0
0 altrimenti
si ha: (H

) = (H

) = (H) = n k.
Teorema 18.4. Sia H una matrice di controllo associata al codice C.
Attraverso una serie di operazioni di riga eettuate su H `e possibile trasformare
tale matrice in forma ridotta per righe.
Sia C un codice lineare con matrice di controllo
H =
_
_
_
h
0
.
.
.
h
nk1
_
_
_
ridotta per righe. Per ogni riga h
i
, i = 1, . . . , n k deniamo t

i
t

i
come
segue:
t

i
`e lindice per cui h

it

i
,= 0 ovvero `e il primo posto in cui la isima riga h
i
ha
un coeciente non nullo.
t

i
`e lindice per cui h

it

i
,= 0 ovvero `e lultimo posto in cui la isima riga h
i
ha
un coeciente non nullo.
CAPITOLO 18. TRALICCI 81
Denizione 18.6. Lintervallo [t

i
, t

i
] si denisce nestra attiva della riga
h
i
.
Indichiamo con H
t
, per t [1, n], la matrice ottenuta dalla matrice di
controllo H intersecandone le prime t colonne con le righe h
i
per cui t

i
< t t

i
.
Porremo inoltre, per convenzione, H
0
= (0).
Osservazione
Se per qualche riga h
i
della matrice di controllo H si ha: t

i
= t

i
= j, allora tale
riga `e tale che i suoi elementi sono tutti nulli tranne il jsimo.
Dal fatto che se x C allora h
i
x = 0, segue che: x
j1
= 0.
Poiche in questo caso quindi tutte le parole del codice C hanno zero come jsima
componente, possiamo considerare in luogo del codice C il codice C

ad esso
isomorfo, cos` costruito:
C

= (x
0
, . . . , x
j2
, x
j
, . . . , x
n1
) : (x
0
, . . . , x
j2
, 0, x
j
, . . . , x
n1
) C
C

F
n1
ed inoltre la matrice di controllo ad essa associata `e quella che si
ottiene da H sopprimendo la isima riga.
`
E sempre possibile quindi assumere che sia: t

i
< t

i
.
Teorema 18.5. Per ogni t [1, n1] si ha: dimZ
t
= (H
t
) =
t
= #i[t

i
< t < t

i
.
Dimostrazione:
Notiamo innanzitutto che H
t
ha rango massimo per righe. Sia
t
il numero
di righe di H
t
. Ponendo W
t
=Im(H
t
) = F

t
, W
t
risulta essere isomorfo a Z
t
attraverso la mappa seguente:
Z
t
= C
t
/(C
t
) F

t
(x
0
, . . . , x
t1
) +(C
t
) H
t

_
_
_
x
0
.
.
.
x
t1
_
_
_
che si mostrer`a essere iniettiva e suriettiva grazie ai risultati che seguiranno.
Come conseguenza del teorema precedente `e allora possibile identicare gli
elementi dello spazio Z
t
con quelli dello spazio F

t
ovvero:
Z
t
= C
t
/C
t

= F

t
= Im(H
t
) (18.15)
18.4 Caratterizzazione degli spazi C
t
e C
t1
Determiniamo ora le equazioni che caratterizzano gli spazi C
t
e C
t1
.
Teorema 18.6. Una t-upla (x
0
, . . . , x
t1
) F
t
appartiene a C
t
se e solo se
soddisfa, per ogni i per cui t

i
< t, il sistema:

t1
j=0
h
ij
x
j
= 0
Dimostrazione:
Innanzitutto riduciamo la matrice di controllo H in forma ridotta per righe. A
CAPITOLO 18. TRALICCI 82
meno di permutazioni delle sue righe possiamo scrivere H nella forma seguente:
H =
_
_
_
_
_
_
_
c
0
c
2
0
c
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
nk1
_
_
_
_
_
_
_
nella quale sono stati evidenziati, per ogni riga, gli ultimi elementi non nulli:
c
0
, . . . , c
nk1
. Ci`o signica quindi che, essendo H ridotta per righe, `e possibile
trasformare H

in una matrice in forma triangolare eettuando opportune


permutazioni delle righe di H.
Supponiamo, per ssare le idee, che le righe h
0
, . . . , h
m
siano tali che:
t

1
, . . . , t

m
t 1 e che le righe h
m+1
, . . . , h
nk1
siano tali che:
t

m+1
, . . . , t

nk1
t.
Sia (x
0
, . . . , x
t1
) C
t
, esiste allora x = (x
0
, . . . , x
t1
, . . . , x
n1
) C.
Poiche x C H x = 0 h
i
x = 0 i = 0, . . . , n k 1, si ha, per
i = 0, . . . , m, che

t1
j=0
h
i,j
x
j
= 0 (infatti per j = t . . . , n 1, si ha: h
ij
= 0).

Supponiamo che la tupla (x


0
, . . . , x
t1
) soddis il sistema

t1
j=0
h
ij
x
j
= 0.
Per i = m+ 1, . . . , n k consideriamo le equazioni:
h
i
(x
0
, . . . , x
t1
, x
t
, . . . , x
n1
) = 0 (18.16)
che si possono interpretare come equazioni non omogenee nelle incognite
x
t
, . . . , x
n1
. Il sistema associato alle equazioni (18.16) `e di tipo triangolare
cio`e:
_

_
. . . +
t
x
t
= 0
. . . +. . . +
t+1
x
t+1
= 0
. . . +. . . +. . . = 0
. . . +. . . +. . . +
n1
x
n1
= 0
ed esso ammette sempre soluzioni.
Esistono allora x
t
, . . . , x
n1
tali che (x
0
, . . . , x
t1
, x
t
, . . . , x
n1
) C.
Si ha allora: (x
0
, . . . , x
t1
) C
t
.
Teorema 18.7. Una n-upla (x
0
, . . . , x
n1
) C appartiene a C
t
se e solo se
le sue prime t componenti (x
0
, . . . , x
t1
) soddisfano il sistema:
H
(t)

_
_
_
x
0
.
.
.
x
t1
_
_
_ dove con H
(t)
indichiamo la matrice costituita dalle prime t
colonne della matrice di controllo H.
Dimostrazione:
La parte necessaria `e banale ed `e conseguenza del fatto che:
CAPITOLO 18. TRALICCI 83
H
_
_
_
_
_
_
_
_
_
_
x
0
.
.
.
x
t1
0
.
.
.
0
_
_
_
_
_
_
_
_
_
_
= 0.
Se H
(t)

_
_
_
x
0
.
.
.
x
t1
_
_
_ = 0 ovviamente si ha che H
_
_
_
_
_
_
_
_
_
_
x
0
.
.
.
x
t1
0
.
.
.
0
_
_
_
_
_
_
_
_
_
_
= 0 e quindi:
(x
0
, . . . , x
t1
, 0, . . . , 0) C da cui: (x
0
, . . . , x
t1
, 0, . . . , 0) C
t
.
Osservazione
Poiche nella sottomatrice H
(t)
di H, la riga isima `e nulla per i tale che t

i
t,
`e suciente osservare che tutti e soli gli elementi di C
t
godono della propriet`a
che le loro prime t componenti sono soluzioni del sistema:
h
i

_
_
_
x
0
.
.
.
x
t1
_
_
_ = 0 i : t

i
< t (18.17)
Mettendo insieme i risultati dei teoremi precedentemente dimostrati si completa
la dimostrazione del teorema 18.5.
18.5 Costruzione del traliccio
Sfruttando la conseguenza del teorema 18.5, ovvero il fatto che Z
t

= F

t
, siamo
in grado di costruire elemento per elemento ciascuna classe Z
t
, t [1, n 1],
ricordando che, essendo [Z
0
[ = [Z
1
[ = 1, `e stato posto convenzionalmente lunico
elemento di tali classi uguale a zero.
Vediamo ora come costruire i lati etichettati del traliccio. Per farlo dobbiamo
conoscere linsieme di terne:
T
t
=
_

_
(z, x, z

) Z
t
F Z
t+1
tale che (x
0
, . . . , x
n1
) C con:
H
t

_
_
_
x
0
.
.
.
x
t1
_
_
_ = z;
x
t
= x;
H
t+1

_
_
_
x
0
.
.
.
x
t
_
_
_ = z

;
_

_
per t [0, n 1], avendo identicato:
Z
t
= Im(H
t
) = F

t
e Z
t+1
= Im(H
t+1
) = F

t+1
.
CAPITOLO 18. TRALICCI 84
La determinazione delle terne delle trellis sections T
t
, si riduce quindi
semplicemente alla risoluzione degli n sistemi:
_

_
H
t

_
_
_
_
x
0
.
.
.
x
t1
_
_
_
_
= z;
x
t
= x;
H
t+1

_
_
_
_
x
0
.
.
.
x
t
_
_
_
_
= z

;
per t = 1, . . . , n.
Problema 18.1. Si consideri il codice di Hamming di tipo [7, 4] con matrice di
controllo
H =
_
_
1 1 0 1 1 0 0
0 1 1 1 0 1 0
0 0 0 1 1 1 1
_
_
Trovare una rappresentazione a traliccio per questo codice.
Capitolo 19
18 Maggio 2010: Come
costruire un traliccio
associato ad un codice
lineare
C F
n
2
denito da H x = 0 con H matrice di controllo, che assumiamo ridotta
per righe, di tipo (n k) n che vuol dire
rkH

= rkH

= rkH = n k
19.1 Esempio
C F
6
2
dimC = 2
H =
_
_
_
_
_
_
_
_
_
C0

C1

C2

C3

C4

C5

1 1 1 0 0 0
0 1 1 1 0 0
0 0 1 1 1 0
0 0 0 1 1 1
_
_
_
_
_
_
_
_
_
H

=
_
_
_
_
_
_
_
_
_
C0

C1

C2

C3

C4

C5

1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
_
_
_
_
_
_
_
_
_
H

=
_
_
_
_
_
_
_
_
_
C0

C1

C2

C3

C4

C5

0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
_
_
_
_
_
_
_
_
_
t [1, n]H
t
= intersezione delle prime t colonne (cio`e le colonne con indici da
0 a t 1) con le righe di indice i tali che
t

i
< t t

i
85
CAPITOLO19. 18 MAGGIO2010: COME COSTRUIRE UNTRALICCIOASSOCIATOADUNCODICE LINEARE86
t

i
=indice di colonna dove gura 1 nella riga i di H

i
=indice di colonna dove gura 1 nella riga i di H

Esempio: i = 0, t

0
= 0, t

0
= 2
Nellesempio: t = 1 H
1
= (1)
t = 2 H
2
=
_
1 1
0 1
_
t = 3 H
3
=
_
0 1 1
0 0 1
_
i = 2
i = 3
t = 4 H
4
=
_
0 0 1 1
0 0 0 1
_
i = 2
i = 3
Osservazione Possiamo sempre supporre t

i
< t

i
perche se per qualche i si
assume t

i
= t

i
allora la riga iesima `e (0 . . . 1
t

i
=t

i
0 . . . 0). Poiche questa `e una
equazione per C si avr`a (0 . . . 1 . . . 0)
_
_
_
x
0
.
.
.
x
n1
_
_
_ = 0 x = (x
0
. . . x
n1
) C
equivalentemente x
j
= 0 j = t

i
= t

i
Cio`e C contiene solo parole con la jesima componente nulla
(x
0
. . . 0

j=t

i
=t

i
. . . x
n1
)
Si trasforma C in un nuovo codice C

ottenuto sopprimendo la coordinata


jesima di lunghezza n 1.
La matrice di questo nuovo codice C

`e ottenuta da H sopprimendo la colonna


j e la riga i.
Pu`o essere interessante sapere quali sono le parole che vengono fuori dalle
parole del codice mandando solo le prime t coordinate, ovvero pu`o essere
interessante sapere come fare a trovare il codice proiezione:
Dato C = (x
0
. . . x
n1
)
. .
x
[Hx
t
= 0 ci interessa conoscere, per ogni t [1 . . . n1]
anche il codice C
t
= (x
0
. . . x
t1
)[ esiste x = (x
0
. . . x
t1
. . . x
n1
) C.
C
1
=proiezione di C al tempo t ovvero linsieme delle trasmissioni parziali delle
parole di C no al tempo t.
Proposizione C
t
F
t
2
`e lineare ed ha matrice di controllo H
(t)
formata dalle
prime t colonne di H intersecate con le righe i tali che t

i
< t (funziona quando
la matrice `e ridotta per righe).
Esempio C
4
= (x
0
, x
1
, x
2
, x
3
)[ esistono x
4
, x
5
per cui (x
0
. . . x
5
) C
_

_
x
0
+x
1
+x
2
= 0
x
1
+x
+
x
3
= 0
x
2
+x
3
+x
4
= 0 x
4
= x
2
+x
3
x
3
+x
4
+x
5
= 0 x
5
= x
3
+x
4
= x
2
CAPITOLO19. 18 MAGGIO2010: COME COSTRUIRE UNTRALICCIOASSOCIATOADUNCODICE LINEARE87
Dimostrazione della proposizione. Le righe di H
(t)
provengono dalle righe di H
le cui equazioni associate impongono restrizioni solo alle coordinate x
0
. . . x
t1
.
19.2 Costruzione del traliccio
1) Spazi degli stati:
Z
0
= 0, Z
n
= 0
per t [1, n 1] Z
t
= F
n
t
2
con n
t
=rkH
t
.
2) Lati del traliccio: z Z
t
, z

Z
t+1
, x F
2
. Si ha (z, x, z

) lato del
traliccio (da Z
t
a Z
t
+ 1) esiste x = (x
0
. . . x
n1
) C tale che
_

_
z = H
t
_
_
_
_
x
0
.
.
.
x
t1
_
_
_
_
x = x
t
z

= H
t+1
_
_
_
_
x
0
.
.
.
x
t
_
_
_
_
H
_
_
_
_
x
0
.
.
.
x
n1
_
_
_
_
= 0
Formulazione equivalente di 2) (z, x, z

) `e un lato da Z
t
a Z
t+1
esistono
(x
0
. . . x
t
) tali che il seguente sistema abbia soluzione:
_

_
H
(t+1)
_
_
_
_
x
0
.
.
.
x
t
_
_
_
_
= 0
z = H
t
_
_
_
_
x
0
.
.
.
x
t1
_
_
_
_
z

= H
t+1
_
_
_
_
x
0
.
.
.
x
t
_
_
_
_
Notare che questo sistema dipende solo da ci`o che accade no al tempo t.
Ritorno allesempio Immagine 1
Per t = 0 abbiamo z

= (1)x
t
= x x
t
= x
Per tutti i tralicci associati a codici lineare lo z
1
`e sempre associato a 0 e 1 e ci
si a con le etichette, rispettivamente, 0 e 1.
CAPITOLO19. 18 MAGGIO2010: COME COSTRUIRE UNTRALICCIOASSOCIATOADUNCODICE LINEARE88
Per T
1
dobbiamo risolvere questo sistema:
T
1
:
_

_
z = H
1
x
0
= x
0
x
1
= x
z

=
_
1 1
0 1
__
x
0
x
1
_
=
_
1 1
0 1
__
z
x
_
$
$
$
$
$
$
$
$

H
(2)
_
x
0
x
1
_
= 0 la condizione `e sempre vericata quando la matrice non c`e
Per z = 0, x = 1 abbiamo (1,1); per z = 1, x = 0 abbiamo
z

=
_
1 1
0 1
__
1
0
_
T
2
: z = H
2
_
x
0
x
1
_
=
_
1 1
0 1
__
x
0
x
1
_
x
2
= x
z

= H
3
_
_
x
0
x
1
x
2
_
_
=
_
0 1 1
0 0 1
_
_
_
x
0
x
1
x
2
_
_
H
(3)
_
_
x
0
x
1
x
2
_
_
= 0; x
0
+x
1
+x
2
= 0
_

_
z =
_
x
0
+x
1
x
1
_
; z =
_
z
0
z
1
_
=
_
x
0
+x
1
x
1
_
;
x
0
= z
0
+z
1
x
1
= z
1
x
2
= x
z

=
_
0 1 1
0 0 1
_
_
_
_
x
0
x
1
x
_
_
_
_
_
_
z
0
+z
1
z
1
x
_
_
_ =
_
z
1
+x
x
_
x = x
0
+x
1
= z
0
.
T
3
:
_

_
z =
_
0 1 1
0 0 1
_
_
_
_
x
0
x
1
x
2
_
_
_
x
3
= x
z

=
_
0 0 1 1
0 0 0 1
_
_
_
_
_
_
x
0
x
1
x
2
x
3
_
_
_
_
_
x
0
+x
1
+x
2
= 0
x
1
+x
2
+x
3
= 0
CAPITOLO19. 18 MAGGIO2010: COME COSTRUIRE UNTRALICCIOASSOCIATOADUNCODICE LINEARE89
_

_
x
1
+x
2
= z
0
; x
2
= z
1
x
1
= z
0
+z
1
; x
2
= z
1
x
0
= x
1
+x
2
= z
0
x
3
= x; x = x
1
+x
2
= z
0
z

=
_
0 0 1 1
0 0 0 1
_
_
_
_
_
_
z
0
z
0
+z
1
z
1
x
_
_
_
_
_
=
_
z
1
+x
x
_
Completare per esercizio
Capitolo 20
20 Maggio 2010: ulteriori
cenni sulla costruzione dei
tralicci
Noi sappiamo che i cammini nel traliccio no al tempo t (x
0
. . . x
t1
)
corrispondono a parole di C troncate alle prime t componenti.
z Z
t
`e il punto di arrivo di un cammino al tempo t.
Tutti i cammini che arrivano allo stato z possono essere identicati con una
relazione di equivalenza:
(x
0
. . . x
t1
) (x

0
. . . x

t1
) esistono (y
t
. . . y
n
) tali che (x
0
. . . x
t1
, y
t
. . . y
n
) e (x

0
. . . x

t1
, y
t
. . . y
n
) C
Conseguenza
Z
t
=
cammini no al tempo t

Notare che C `e lineare (x


0
. . . x
t1
, y
t
. . . y
n
) e (x

0
. . . x

t1
, y
t
. . . y
n
) C
(x
0
+x

0
, . . . , x
t1
+x

t
, 0 . . . 0) C
Se deniamo C
t
= (x
0
. . . x
t1
) = proiezioni di x C sulle prime t
componenti e deniamo C
t
= (z
0
. . . z
t1
)[(z
0
. . . z
t1
0 . . . 0) C
Allora:
Z
t
=
C
t

x, x

C
t
x x

x +x

C
t
Ricordiamo il
90
CAPITOLO20. 20 MAGGIO2010: ULTERIORI CENNI SULLACOSTRUZIONE DEI TRALICCI91
Metodo per costruzione del traliccio
T
t
:
_

_
z = H
t
_
_
_
_
x
0
.
.
.
x
t1
_
_
_
_
z `e lo stato individuato dal cammino parziale (x
0
. . . x
t1
)
x
t
= x etichetta
z

= H
t+1
_
_
_
_
x
0
.
.
.
x
t
_
_
_
_
z

stato di arrivo
H
(t+1)
_
_
_
_
x
0
.
.
.
x
t
_
_
_
_
= 0 il cammino (x
0
. . . x
t
) `e ammissibile
Osservazioni:
1. z `e perfettamente determinato da (x
0
. . . x
t1
)
2. (x
0
. . . x
t1
) `e gi`a ammissibile perche gi`a costruito in precedenza nel
sistema H
(t+1)
_
_
_
x
0
.
.
.
x
t
_
_
_ = 0 `e suciente considerare lunica equazione che coinvolge x
t
=
x
i
(questultima ricavata in funzione di (x
0
. . . x
t1
)).
3. z

= H
t+1
_
_
_
x
0
.
.
.
x
t
_
_
_ `e perfettamente determinato da x
0
. . . x
t
20.1 Esempio
C F
4
2
H =
_
_
_
C0

C1

C2

C3

1 0 1 0
0 1 0 1
_
_
_ dimC = 2 t

i
< t t

i
t = 1 H
1
= (1)
t = 2 H
2
=
_
1 0
0 1
_
t = 3 H
3
= (010)
INSERIRE FIGURA 1 QUI
T
1
:
_

_
x
1
= x
z

= H
2
_
x
0
x
1
_
x
0
= cammino no a z
1
z

= H
2
_
x
0
x
1
_
=
_
1 0
0 1
__
x
0
x
1
_
=
_
x
0
x
1
_
INSERIRE FIGURA 2 QUI
CAPITOLO20. 20 MAGGIO2010: ULTERIORI CENNI SULLACOSTRUZIONE DEI TRALICCI92
T
2
:
_

_
x
2
= x
z

= H
3
_
_
_
x
0
x
1
x
2
_
_
_ = (010)
_
_
_
x
0
x
1
x
2
_
_
_ = x
1
x
0
+x
2
= 0; x
x
= x
0
(x
0
x
1
) = cammino che individua z
Esempio z = (0, 0) si sceglie (x
0
, x
1
) = (0, 0)
z = (0, 1) si sceglie (x
0
x
1
) = (0, 1)
INSERIRE FIGURA 3 QUI
T
3
:
_

_
z

= 0
x
0
, x
1
, x
2
. .
cammino fino a z
, x
3
= x
x
1
+x
3
= 0; x = x
3
= x
1
C = (0, 0, 0, 0), (0, 1, 0, 1), (1, 0, 1, 0), (1, 1, 1, 1)
Osservazione Lequazione H
(t)
_
_
_
x

t
.
.
.
x
t1
_
_
_ = 0 mi dice che (x
0
. . . x
t1
) e
troncature di parole del codice e (x
0
. . . x
t1
) sono stati generati come etichette.
20.2 Costruzione del traliccio del codice Hamming
[7,4]
C F
n
2
denito da H x = 0 con H matrice di controllo
H =
_
_
1 1 1 1 0 0 0
0 0 1 1 0 1 1
0 1 0 1 1 0 1
_
_
che dobbiamo ridurre per righe. Ridurre per righe signica che per ogni
riga della matrice il primo elemento =1 e lultimo elemento =1 non si devono
trovare incolonnate. La matrice attuale soddisfa che gli uno iniziali non sono
incolonnati ma gli uno della seconda e terza riga niscono nella stessa ultima
colonna. Per facilitare i calcoli scambiamo la seconda riga con la terza:
H =
_
_
1 1 1 1 0 0 0
0 1 0 1 1 0 1
0 0 1 1 0 1 1
_
_
Poi faccio R
2
= R
2
+R
3
H =
_
_
1 1 1 1 0 0 0
0 1 1 0 1 1 0
0 0 1 1 0 1 1
_
_
CAPITOLO20. 20 MAGGIO2010: ULTERIORI CENNI SULLACOSTRUZIONE DEI TRALICCI93
Adesso `e ridotta per righe. Per il calcolo delle matrici H
t
vediamo, per
ogni riga quanto valgono t

e t

(ovvero la posizione rispettivamente del primo


e ultimo uno nelle rispettive righe):
H =
_
_
1 1 1 1 0 0 0
0 1 1 0 1 1 0
0 0 1 1 0 1 1
_
_
t

= 0 t

= 3
t

= 1 t

= 5
t

= 2 t

= 6
N.B. Le matrici hanno le colonne con indice che partono da 0. Calcoliamo
le varie H
t
.
t = 1: la nestra comprende solo la colonna 0 e in tale colonna gli elementi,
riga per riga, devono soddisfa t

i
< t t

i
ovvero 0 < 1 3 che `e soddisfatta
solo per la prima riga, quindi
H
1
= (1)
t = 2: la nestra comprende le prime due colonne e in queste colonna gli
elementi, riga per riga, devono soddisfa t

i
< t t

i
ovvero:
prima riga: 0 < 2 3 `e soddisfatta,
seconda riga: 1 < 2 5 `e soddisfatta, per le altre righe invece no, quindi
H
2
=
_
1 1
0 1
_
t = 3: tutte e tre le righe sono soddisfatte, quindi
H
3
=
_
_
1 1 1
0 1 1
0 0 1
_
_
t = 4: che `e soddisfatta solo per la seconda e la terza riga, quindi
H
4
=
_
0 1 1 0
0 0 1 1
_
t = 5: che `e soddisfatta solo per la seconda e la terza riga, quindi
H
5
=
_
0 1 1 0 1
0 0 1 1 0
_
t = 6: che `e soddisfatta solo per la terza riga, quindi
H
6
= ( 0 0 1 1 0 1 )
Spazi degli stati: Z
0
= 0, Z
n
= 0 per t [1, n 1] Z
t
= F
n
t
2
con
n
t
=rk (H
t
). (rk=rango)
rk (H
1
) = 1 quindi Z
1
= 2
1
= 2 che quindi genera due nodi con valori 0,1
rk (H
2
) = 2 quindi Z
2
= 2
2
= 4 che quindi genera quattro nodi con valori
00, 01, 10, 11
rk (H
3
) = 3 quindi Z
3
= 2
3
= 8 che quindi genera otto nodi con valori 000,
001, 010, 011, 100, 101, 110, 111
CAPITOLO20. 20 MAGGIO2010: ULTERIORI CENNI SULLACOSTRUZIONE DEI TRALICCI94
rk (H
4
) = 2 quindi Z
4
= 2
2
= 4 che quindi genera quattro nodi con valori
00, 01, 10, 11
rk (H
5
) = 2 quindi Z
5
= 2
2
= 4 che quindi genera quattro nodi con valori
00, 01, 10, 11
rk (H
6
) = 1 quindi Z
6
= 2
1
= 2 che quindi genera due nodi con valori 0,1
Il traliccio inizi sempre con 0 nello stato Z
0
e due lati, etichetta 0 e 1 che
portano allo stato Z
1
.
Ecco lossatura del traliccio:
Z(0) Z(1)
0
1
00
01
10
11
000
001
010
011
00
01
10
11
0
1
100
101
110
111
start end
Z(2) Z(3) Z(4) Z(6) Z(7)
00
01
10
11
Z(5)
Per il calcolo dei vari lati dobbiamo risolvere il seguente sistema:
x
t
= x `e letichetta che identica larco che porta allo stato di arrivo
z = H
t
_
_
_
x
0
.
.
.
x
t1
_
_
_ `e il cammino corrente parziale da start sino a t 1
z

= H
t+1
_
_
_
x
0
.
.
.
x
t
_
_
_ con queste equazioni ci ricaviamo le etichette dei nodi di arrivo
H
t+1
_
_
_
x
0
.
.
.
x
t
_
_
_ = 0 `e la condizione imposta che verica ammissibile del cammino (x
0
, ...., x
t
) .
Osservazioni:
1. Possiamo evitare di calcolare z se partiamo da zero e tracciamo man mano
il traliccio.
CAPITOLO20. 20 MAGGIO2010: ULTERIORI CENNI SULLACOSTRUZIONE DEI TRALICCI95
2. Tra le equazioni risultanti dalla H
t+1
_
_
_
x
0
.
.
.
x
t
_
_
_ = 0 dobbiamo prendere in
considerazione solo quelle che non compaiono gi`a in z

= H
t+1
_
_
_
x
0
.
.
.
x
t
_
_
_.
Indichiamo con (r) le equazioni da scartare in quanto ridondanti.
Iniziamo a calcolare i vari lati del traliccio a partire dal primo.
Calcoliamo T
1
T
1
=
_

_
x
t
= x
z

= H
t+1
_
_
_
_
x
0
.
.
.
x
t
_
_
_
_
H
t+1
_
_
_
_
x
0
.
.
.
x
t
_
_
_
_
= 0
T
1
=
_

_
x
1
= x
z

= H
2
_
x
0
x
1
_
=
_
1 1
0 1
__
x
0
x
1
_
=
_
x
0
+x
1
x
1
_
H
2
_
x
0
x
1
_
= 0
_
_
_
1 1
0 1
0 0
_
_
_
_
x
0
x
1
_
= 0
_
_
_
x
0
+x
1
(r)
x
1
(r)
0
_
_
_ = 0
Dobbiamo tenere in mente un percorso nel traliccio da Z
0
a Z
t1
. Se ce ne
sono pi` u di uno che portano ad uno stesso nodo lo possiamo scegliere a caso.
Per il percorso che stiamo considerando dobbiamo man mano assegnare i valori
a x
0
, ...., x
t1
. Se la terza equazione non impone vincoli di etichetta, a x le due
etichette possibili [0, 1], risolviamo il sistema e ci ricaviamo letichetta del nodo
di arrivo z

(vettore trasposto).
Percorso da start sino a x
t1
Possibili etichette per x Valore di z

x
0
= 0 [0] x = x
1
= 0
_
x
0
+x
x
_
=
_
0 + 0
0
_
z

= 00
x
0
= 0 [0] x = x
1
= 1
_
x
0
+x
x
_
=
_
0 + 1
1
_
z

= 11
x
0
= 1 [1] x = x
1
= 0
_
1 + 0
0
_
z

= 10
x
0
= 1 [1] x = x
1
= 1
_
1 + 1
1
_
z

= 01
Nella prima colonna tra parentesi [] abbiamo indicato letichetta del nodo di
partenza.
CAPITOLO20. 20 MAGGIO2010: ULTERIORI CENNI SULLACOSTRUZIONE DEI TRALICCI96
Z(0) Z(1)
0
1
00
01
10
11
000
001
010
011
00
01
10
11
0
1
100
101
110
111
start end
Z(2) Z(3) Z(4) Z(6) Z(7)
00
01
10
11
Z(5)
Calcoliamo T
2
T
2
=
_

_
x
2
= x
z

= H
3
_
_
_
x
0
x
1
x
2
_
_
_ =
_
_
_
1 1 1
0 1 1
0 0 1
_
_
_
_
_
_
x
0
x
1
x
2
_
_
_ =
_
_
_
x
0
+x
1
+x
2
x
1
+x
2
x
2
_
_
_
H
3
_
_
_
x
0
x
1
x
2
_
_
_ = 0
_
_
_
1 1 1
0 1 1
0 0 1
_
_
_
_
_
_
x
0
x
1
x
2
_
_
_ = 0
_
_
_
x
0
+x
1
+x
2
(r)
x
1
+x
2
(r)
x
2
(r)
_
_
_ = 0
CAPITOLO20. 20 MAGGIO2010: ULTERIORI CENNI SULLACOSTRUZIONE DEI TRALICCI97
Percorso da start a x
t1
Possibili etichette per x Valore di z

x
0
= 0, x
1
= 0 [00] x = x
2
= 0
_
_
x
0
+x
1
+x
2
x
1
+x
2
x
2
_
_
=
_
_
0 + 0 + 0
0 + 0
0
_
_
z

= 000
x
0
= 0, x
1
= 0 [00] x = x
2
= 1
_
_
0 + 0 + 1
0 + 1
1
_
_
z

= 111
x
0
= 0, x
1
= 1 [11] x = x
2
= 0
_
_
0 + 1 + 0
1 + 0
0
_
_
z

= 110
x
0
= 0, x
1
= 1 [11] x = x
2
= 1
_
_
0 + 1 + 1
1 + 1
1
_
_
z

= 001
x
0
= 1, x
1
= 0 [10] x = x
2
= 0
_
_
1 + 0 + 0
0 + 0
0
_
_
z

= 100
x
0
= 1, x
1
= 0 [10] x = x
2
= 1
_
_
1 + 0 + 1
1 + 1
1
_
_
z

= 011
x
0
= 1, x
1
= 1 [01] x = x
2
= 0
_
_
1 + 1 + 0
1 + 0
0
_
_
z

= 010
x
0
= 1, x
1
= 1 [01] x = x
2
= 1
_
_
1 + 1 + 1
1 + 1
1
_
_
z

= 101
Z(0) Z(1)
0
1
00
01
10
11
000
001
010
011
00
01
10
11
0
1
100
101
110
111
start end
Z(2) Z(3) Z(4) Z(6) Z(7)
00
01
10
11
Z(5)
CAPITOLO20. 20 MAGGIO2010: ULTERIORI CENNI SULLACOSTRUZIONE DEI TRALICCI98
Calcoliamo T
3
T
3
=
_

_
x
3
= x
z

= H
4
_
_
_
_
_
x
0
x
1
x
2
x
3
_
_
_
_
_
=
_
0 1 1 0
0 0 1 1
_
_
_
_
_
_
x
0
x
1
x
2
x
3
_
_
_
_
_
=
_
x
1
+x
2
x
2
+x
3
_
=
_
x
1
+x
2
x
2
+x
0
+x
1
+x
2
_
=
_
x
1
+x
2
x
0
+x
1
_
H
4
_
_
_
_
_
x
0
x
1
x
2
x
3
_
_
_
_
_
= 0
_
_
_
1 1 1 1
0 1 1 0
0 0 1 1
_
_
_
_
_
_
_
_
x
0
x
1
x
2
x
3
_
_
_
_
_
= 0
_
_
_
x
0
+x
1
+x
2
+x
3
x
1
+x
2
(r)
x
2
+x
3
(r)
_
_
_ = 0 x
3
= x
0
+x
1
+x
2
Questa volta H
4
ha restituito unequazione valida. Allora x non `e pi` u libero
di assumere come etichetta i valori 0 e 1 ma solo quelli imposti dallequazione.
Percorso da start sino a x
t1
Possibili etichette per x Valore di z

x
0
= 0, x
1
= 0, x
2
= 0 [000] x = x
3
= x
0
+x
1
+x
2
= 0
_
x
1
+x
2
x
0
+x
1
_
=
_
0 + 0
0 + 0
_
z

= 00
x
0
= 0, x
1
= 0, x
2
= 1 [111] x = x
3
= 0 + 0 + 1 = 1
_
0 + 1
0 + 0
_
z

= 10
x
0
= 0, x
1
= 1, x
2
= 0 [110] x = x
3
= 0 + 1 + 0 = 1
_
1 + 0
0 + 1
_
z

= 11
x
0
= 0, x
1
= 1, x
2
= 1 [001] x = x
3
= 0 + 1 + 1 = 0
_
1 + 1
0 + 1
_
z

= 01
x
0
= 1, x
1
= 0, x
2
= 0 [100] x = x
3
= 1 + 0 + 0 = 1
_
0 + 0
1 + 0
_
z

= 01
x
0
= 1, x
1
= 0, x
2
= 1 [011] x = x
3
= 1 + 0 + 1 = 0
_
1 + 0
1 + 0
_
z

= 11
x
0
= 1, x
1
= 1, x
2
= 0 [010] x = x
3
= 1 + 1 + 0 = 0
_
1 + 0
1 + 1
_
z

= 10
x
0
= 1, x
1
= 1, x
2
= 1 [101] x = x
3
= 1 + 1 + 1 = 1
_
1 + 1
1 + 1
_
z

= 00
Calcoliamo T
4
T
4
=
_

_
x
4
= x
z

= H
5
_
_
_
_
_
_
_
_
x
0
x
1
x
2
x
3
x
4
_
_
_
_
_
_
_
_
=
_
0 1 1 0 1
0 0 1 1 0
_
_
_
_
_
_
_
_
_
x
0
x
1
x
2
x
3
x
4
_
_
_
_
_
_
_
_
=
_
x
1
+x
2
+x
4
x
2
+x
3
_
H
5
_
_
_
_
_
_
_
_
x
0
x
1
x
2
x
3
x
4
_
_
_
_
_
_
_
_
= 0
_
_
_
1 1 1 1 0
0 1 1 0 1
0 0 1 1 0
_
_
_
_
_
_
_
_
_
_
_
x
0
x
1
x
2
x
3
x
4
_
_
_
_
_
_
_
_
= 0
_
_
_
x
0
+x
1
+x
2
+x
3
(x
4
non `e presente)
x
1
+x
2
+x
4
(r)
x
2
+x
3
(r)
_
_
_
CAPITOLO20. 20 MAGGIO2010: ULTERIORI CENNI SULLACOSTRUZIONE DEI TRALICCI99
Z(0) Z(1)
0
1
00
01
10
11
000
001
010
011
00
01
10
11
0
1
100
101
110
111
start end
Z(2) Z(3) Z(4) Z(6) Z(7)
00
01
10
11
Z(5)
Percorso da start sino a x
t1
Possibili etichette per x Valore di z

x
0
= 0, x
1
= 0, x
2
= 0, x
3
= 0 [00] x = x
4
= 0
_
x
1
+x
2
+x
4
x
2
+x
3
_
z

= 00
x
0
= 0, x
1
= 0, x
2
= 0, x
3
= 0 [00] x = x
4
= 1
_
0 + 0 + 1
0 + 0
_
z

= 10
x
0
= 0, x
1
= 1, x
2
= 1, x
3
= 0 [01] x = x
4
= 0
_
1 + 1 + 0
1 + 0
_
z

= 01
x
0
= 0, x
1
= 1, x
2
= 1, x
3
= 0 [01] x = x
4
= 1
_
1 + 1 + 1
1 + 0
_
z

= 11
x
0
= 1, x
1
= 1, x
2
= 0, x
3
= 0 [10] x = x
4
= 0
_
1 + 0 + 0
0 + 0
_
z

= 10
x
0
= 1, x
1
= 1, x
2
= 0, x
3
= 0 [10] x = x
4
= 1
_
1 + 0 + 1
0 + 0
_
z

= 00
x
0
= 1, x
1
= 0, x
2
= 1, x
3
= 0 [11] x = x
4
= 0
_
0 + 1 + 0
1 + 0
_
z

= 11
x
0
= 1, x
1
= 0, x
2
= 1, x
3
= 0 [11] x = x
4
= 1
_
0 + 1 + 1
1 + 0
_
z

= 01
Da notare che era possibile scegliere percorsi alternativi da start sino a x
t1
.
CAPITOLO20. 20 MAGGIO2010: ULTERIORI CENNI SULLACOSTRUZIONE DEI TRALICCI100
Z(0) Z(1)
0
1
00
01
10
11
000
001
010
011
00
01
10
11
0
1
100
101
110
111
start end
Z(2) Z(3) Z(4) Z(6) Z(7)
00
01
10
11
Z(5)
Calcoliamo T
5
T
5
=
_

_
x
5
= x
z

= H
6
_
_
_
_
_
_
_
_
_
_
x
0
x
1
x
2
x
3
x
4
x
5
_
_
_
_
_
_
_
_
_
_
=
_
0 0 1 1 0 1
_
_
_
_
_
_
_
_
_
_
_
x
0
x
1
x
2
x
3
x
4
x
5
_
_
_
_
_
_
_
_
_
_
H
6
_
_
_
_
_
_
_
_
_
_
x
0
x
1
x
2
x
3
x
4
x
5
_
_
_
_
_
_
_
_
_
_
= 0
_
_
_
1 1 1 1 0 0
0 1 1 0 1 1
0 0 1 1 0 1
_
_
_
_
_
_
_
_
_
_
_
_
_
x
0
x
1
x
2
x
3
x
4
x
5
_
_
_
_
_
_
_
_
_
_
= 0
T
5
=
_

_
x
5
= x
z

= (x
2
+x
3
+x
5
) = (x
2
+x
3
= x
1
+x
2
+x
4
) = (x
1
+x
3
+x
4
)
_
_
_
x
0
+x
1
+x
2
+x
3
(x
5
non presente)
x
1
+x
2
+x
4
+x
5
x
2
+x
3
+x
5
(r)
_
_
_ = 0 x
5
= x
1
+x
2
+x
4
CAPITOLO20. 20 MAGGIO2010: ULTERIORI CENNI SULLACOSTRUZIONE DEI TRALICCI101
Percorso da start sino a x
t1
Possibili etichette per x Valore di z

x
0
= 0, x
1
= 0, x
2
= 0, x
3
= 0, x
4
= 0 [00] x = x
5
= x
1
+x
2
+x
4
= 0 (x
1
+x
3
+x
4
)z

= 0
x
0
= 0, x
1
= 1, x
2
= 1, x
3
= 0, x
4
= 0 [01] x = x
5
= 1 + 1 + 0 = 0 (1 + 0 + 0)z

= 1
x
0
= 1, x
1
= 1, x
2
= 0, x
3
= 0, x
4
= 0 [10] x = x
5
= 1 + 0 + 0 = 1 (1 + 0 + 0)z

= 1
x
0
= 1, x
1
= 0, x
2
= 1, x
3
= 0, x
4
= 0 [11] x = x
5
= 0 + 1 + 0 = 1 (0 + 0 + 0)z

= 0
Anche qui era possibile scegliere percorsi alternativi da start sino a x
t1
.
Z(0) Z(1)
0
1
00
01
10
11
000
001
010
011
00
01
10
11
0
1
100
101
110
111
start end
Z(2) Z(3) Z(4) Z(6) Z(7)
00
01
10
11
Z(5)
Verichiamo un cammino a caso: (1100011) e moltiplichiamo per la matrice
di controllo gi`a ridotta per righe:
_
_
1 1 1 1 0 0 0
0 1 1 0 1 1 0
0 0 1 1 0 1 1
_
_
_
_
_
_
_
_
_
_
_
_
1
1
0
0
0
1
1
_
_
_
_
_
_
_
_
_
_
=
_
_
1 1 0 0 0 0 0
0 1 0 0 0 1 0
0 0 0 0 0 1 1
_
_
=
_
_
0
0
0
_
_
verica ok.
Capitolo 21
25 Maggio 2010:Bitwise
Decoding Problem
Sia t = parola trasmessa = (t
0
. . . t
N1
) e sia y = parola ricevuta.
Problema : per n 0 . . . N 1 calcolare P(t
n
[y) cio`e trovare le due
probabilit`a condizionali P(t
n
= 0[y) e P(t
n
= 1[y).
Formalmente:
P(t
n
[y) =

C
t

n
=t
n
P(t

[y)
Le nostre ipotesi sono di avere un canale Q privo di memoria, ma non
necessariamente simmetrico. Supponiamo che C sia associato ad un traliccio T
fatto dagli stati Z
0
. . . Z
N
.
FIGURA 1 QUI
Numeriamo con un indice i i nodi del traliccio con
i = 0 = nodo allo stato n = 0
i = I = nodo allo stato n = N
Deniamo G(i)=genitori di i, cio`e j tali che ji `e lato orientato del traliccio.
Ad ogni lato del traliccio attribuiamo il valore P(y
n
[t
n
) dove:
t
n
= etichetta del lato
y
n
= corrispondente bit di y
Avendo anche indicato i lati con coppie (i, j) tali che j G(i) scriviamo w
ij
=
valore attribuito al lato ji
w
ij
= P(y
n
[t
n
) t
n
= etichetta del lato ji
21.1 Messaggi forward
Dobbiamo far passare dei messaggi tra i nodi del traliccio. Ad i = 0 attribuiamo
il valore
0
= 1. Ad ogni nodo i viene inviato il messaggio

i
=

jG(i)
w
ij

j
102
CAPITOLO 21. 25 MAGGIO 2010:BITWISE DECODING PROBLEM 103
FIGURA 2 QUI
Sia
I
il valore sul nodo nale.
Proposizione: (esercizio del testo) Se il nodo i `e a tempo n (cio`e i Z
n
) allora

i
`e proporzionale (per tutti gli i vale la stessa costante di proporzionalit`a) alla
probabilit`a congiunta che la parola del codice t passi da i e che i suoi primi n
simboli ricevuti siano y
0
. . . y
n1
cio`e
i
= cost P(t passa per i, y
0
, . . . , y
n1
) =
P(i).
Dimostrazione. La dimostrazione procede per induzione.
n = 0
0
= 1 OK
Supponiamo vero per n 1 (cost=C
n1
) e proviamo per i di livello n.
FIGURA 3 QUI
P(i) =

jG(i)
P(t
n1
(j), y
n1
) =

jG(i)

j
P(y
n1
=w
ij
[t
n1
(j)) P(t
n1
(j))
Abbandoniamo questo percorso P(t
n1
(j)) =
P(t
n1
) perche
stiamo
parlando di un
canale privo di
memoria
Dimostrazione alternativa:

i
=

j
w
ij
=

C
n1
P(t passa per j, y
o
. . . y
n2
) P(y
n1
[ t
n1
=t
n1
(ji)
) =
C
n1

jG(i)
P(. . . , y
0
. . . y
n1
)
P(y
n1
, t
n1
)
P(t
n1
)
.
Osservazione per C codice lineare, per ogni sezione del traliccio (cio`e insieme
di lati da Z
n1
a Z
n
) vi `e lo stesso numero di etichette pari a 0 oppure 1
P(t
n1
) =
1
2
t
n
0, 1.
Per ipotesi induttiva
C
n1
=
1
2
n1
P(i) =

jG(i)
1
2
n1

j
w
ij
1
2
=
1
2
n

i
Osservazione vera per C lineare con matrice di controllo H ridotta per righe
con t

i
< t

i
riga i cio`e C privo di componenti = 0 (x
0
. . . 0 . . . x
n1
). Infatti in
tal caso la proiezione C F
2
denita da (x
0
. . . x
n1
) x
i
`e lineare suriettiva
e #
1
(0) = #
1
(1) perche se una parola x
(0)
C ha x
(0)
i
= 1 e z
1
(0)
(cio`e z
i
= 0) allora z +x
0

1
(1) cio`e
1
(0)
+x
(0)

1
(1)
Osservazione
I
= valore nale = 2
N
P(y = (y
0
. . . y
n1
))
21.2 Messaggi backward

I
= 1 valore dellultimo nodo

j
=

i:jG(j)

i
w
ij
CAPITOLO 21. 25 MAGGIO 2010:BITWISE DECODING PROBLEM 104
Proposizione Per un nodo i al tempo n
n
`e una
costante
dipendente solo
da n

i
=
n
P(y
n
y
n1
bit ricevuti
[t passa per i).
La dimostrazione si fa per induzione allindietro partendo da n = N e quindi
i = I.
Conoscendo
i
,
i
per ogni i (per genitori e gli di un dato i) e ssato
t 0, 1, t
ij
etichetta del lato ji, deniamo
r
(t)
n
=

i,j
t
ij
=t
jG(i)
al tempo n

i
w
ij

i
Proposizione:
P(t
n
= t[y) =
1
Z
r
(t)
n
Z = r
(0)
n
+r
(1)
n
=
I
Dimostrazione. Ogni termine
j
w
ij
con t
ij
= t `e proporzionale alle probabilit`a
congiunta che la parola emessa passi per j e per i e t
ij
= t e y
0
. . . y
n1
siano i primi n bit ricevuti. Segue che a
j
w
ij

i
, per la proposizione che non
abbiamo dimostrato, `e proporzionale a P(t passi per j, i t
ij
= t, y
0
. . . y
n1
)
P(y
n
. . . y
N1
[t passi per i) = P(y, t passa per j e per i, t
ij
= t). Sommando
queste quantit`a per tutte le coppie i, j con i al tempo n, j G(i) e t
ij
= t
troviamo
r
(t)
n
P(y, t
n
= t)
P(t
n
= t[y) =
P(y, t
n
= t)
P(y)
=costante
Questi sono degli argomenti possibili per completare la dimostrazione per conto
nostro.
Esercizio 25.9 del testo: Sia C il codice di controllo di parit`a in F
3
2
ovvero
C = (x
0
, x
1
, x
2
)[x
0
+x
1
+x
2
= 0
H = (1, 1, 1)
Costruire il traliccio associato e data la parola y = (0, 1, 0) calcolare le
probabilit`a P(t
0
= 0[y) P(t
0
= 1[y)
P(t
1
= 0[y) P(t
0
= 1[y)
P(t
2
= 0[y) P(t
2
= 1[y)
Canale = BSC f = 0, 1
Capitolo 22
27 Maggio 2010: Codici di
convoluzione
Ammetteremo tralicci con etichette x F
q
2
(etichette x = (x
1
. . . x
q
), x F
2
).
Denizione (dinamica):
u
t
F
r
2
= input al tempo t (arbitrario)
z
t
F
v
2
= Z = stato al tempo t
u
t+1
F
v
2
= Z = stato al tempo t + 1
x
t
= etichetta del lato da z
t
a z
t+1
_
z
t+1
= Fz
t
+Gu
t
x = Hz
t
+Lu
t
(22.1)
F, G, H, L matrici costanti.
F tipo v u, G tipo v r, H tipo q v, L tipo q r.
rkL = r.
Inizializzazione: z
0
= 0
Parole del codice
(x
0
, x
1
, x
2
, . . . , x
t
, . . .)
dipendenti dagli input
(u
0
, u
1
, . . .)
La condizione rkL = r serve a garantire liniettivit`a dellencoder:
(u
0
, u
1
, u
2
. . .) (x
0
, x
1
, . . .)
Questo si pu`o provare per induzione su t.
22.1 Traliccio associato al codice di convoluzione
del sistema 22.1
Traliccio T con Z
0
= 0 e Z
t
= Z = F
v
2
t e lato (z
t
, x
t
etichetta
, z
t+1
) u
t
tale
che valga il sistema 22.1.
105
CAPITOLO 22. 27 MAGGIO 2010: CODICI DI CONVOLUZIONE 106
Esempio
u
t
F
2
(r = 1)
x
t
F
2
2
z
t
F
2
t > 0(v = 1)
z
0
= 0 Z
t
= F
2
_

_
z
t+1
= z
t
+u
t
x
t
=
_
z
t
+u
t
u
t
_
=
_
1
0
_
z
t
+
_
1
1
_
u
t
F = (1) G = (1) H =
_
1
0
_
L =
_
1
1
_
_

_
z
0
= 0
x
0
=
_
u
0
u
0
_
z
1
= u

(1,1)|1
??








(0,0)|0
//

0
_

_
z
t+1
= z
t
+u
t
x
t
=
_
z
t
+u
t
u
t
_
(
1
,
1
)
|
1
(0,0)|0 (0,0)|0 (0,0)|0 (0,0)|0
(1
,
1
)
|
1
(
1
,
1
)
|
1
(0
,
1
)
|
1
(
0
,
1
)
|
1
22.2 Troncatura di un codice di convoluzione

E il codice C = (x
0
. . . x
N1
)[imponendo Z
N
= 0. Nellesempio, imponendo
z
4
= 0 si trova:
_

_
0 = z
3
+u
3
u
3
= z
3
x
3
=
_
z
3
+u
3
u
3
_
x
3
=
_
0
u
3
_
(0,0)|0
(0
,1
)|
1
Z
4
Il problema di questi codici di convoluzione `e che dal traliccio non si capisce se
il codice sia buono oppure no.
Osservazione Il codice di convoluzione
_
z
t+1
= z
t
+u
t
x
t
= u
t
(q = 1)
ha un traliccio simile al precedente ma con diverse etichette e rappresenta il
codice banale C = F
N
2
22.3 Codici associati a gra bipartiti
22.3.1 Codici LDCPC (low density parity checks)
Manage bit
Check bit
Supponiamo di avere il grafo bipartito visibile a
anco. Ciascun message bit ricevere un input
arbitrario in F
2
e ciascun checkbit riceve come valore
la somma dei message bit a lui collegati.
Si produce un codice C(x
1
, x
2
, x
3
message bit
x
1
+x
2
, x
2
+x
3
).
Quindi possiamo dedurre la matrice di controllo del codice a partire dalla
CAPITOLO 22. 27 MAGGIO 2010: CODICI DI CONVOLUZIONE 107
gura:
H =
_
x
1
1
x
2
1
x
3
0
y
1
1
y
2
0
0 1 1 0 1
_
0 0 1
0 1
x
1
x
2
x
3
y
1
y
2
Nel grafo bipartito i nodi delle due classi corrispondono a righe e colonne di H,
lati (i, j) H
ij
= 1.

=
=
=
=
=
=
=
=


=
=
=
=
=
=
=
=

wwp
p
p
p
p
p
p
p
p
p
p
p
p
p

wwp
p
p
p
p
p
p
p
p
p
p
p
p
p
colonne
righe
I codici che ottengono i migliori risultati sono codici di questo tipo qui e
algoritmi di questo tipo qua.
Denizione Un codice associato ad un grafo bipartito che rappresenta la sua
matrice di controllo si dice LDPC se il numero di 1 in ogni riga e colonna di
H `e piccolo confrontato rispetto alla lunghezza del codice, e con densit`a quasi
uniforme nella matrice:
H =
_
_
_
_
_
_
0 1 0 0 1 0 1
0 0 0 1
1 0 0 1
0 1 0 0
1 0 0 0
_
_
_
_
_
_
22.4 Factor graphs
0 0 1
0 1
x
1
x
2
x
3
f
2
f
3
0
f
1
1
f
4
1
f
5
Ciascun nodo fattore corrisponde ad una funzione che
ha per variabili i nodi variabile ad esso collegati. In
questo esempio f
1
`e funzione di x
1
, f
2
`e funzione di
x
2
, f
3
`e funzione di x
3
, f
4
`e funzione di x1, x
2
e f
5
`e
funzione di x
2
, x
3
Problema 1: calcolare
P(x) = f
1
f
2
f
3
f
4
f
5
x = x
1
x
2
x
3
Normalizzazione
P

(x) =
P(x)
Z
dove z =

x
P(x)
CAPITOLO 22. 27 MAGGIO 2010: CODICI DI CONVOLUZIONE 108
Problema 2: per ogni nodo variabile x
n
calcolare
Z
n
(x
n
) =

:x

n
=x
n
P

(x

)
P
n
(x
n
) =

:x

n
=x
n
P(x

) =
Z
n
(x
n
)
Z
Questo tipo di problema `e signicativo nel nostro contesto. Poniamo, nel nostro
esempio:
f
1
(x
1
) =
_
0, 1 x
1
= 0
0, 9 x
1
= 1
f
2
(x
2
) =
_
0, 1 x
2
= 0
0, 9 x
2
= 1
f
3
(x
3
) =
_
0, 9 x
3
= 0
0, 1 x
3
= 1
f
4
(x
1
, x
2
) =
_
1 x
1
= x
2
0 x
1
,= x
2
f
5
(x
2
, x
3
) =
_
1 x
2
= x
3
0 x
2
,= x
3
f
4
= f
5
= 1 x
1
= x
2
= x
3
x R
3
codice di ripetizione di lunghezza 3
f
1
(x
1
) = P(x
1
[y
1
= 1)
f
2
(x
2
) = P(x
2
[y
2
= 1)
f
3
(x
3
) = P(x
3
[y
3
= 0)
Abbiamo unespressione delle probabilit`a condizionali sui singoli bit sapendo
che C = R
3
e che `e stato ricevuto y = (1, 1, 0).
P

(x) = P(x[y, C = R
3
)
P
n
(x
n
) = P(x
n
[y) probabilit`a nel bit nesimo.
Capitolo 23
01 Giugno 2010 mattina:
esercitazione
23.1 Esercizio 6
Trovare un traliccio associato al codice C F
5
2
con matrice di controllo:
H =
_
_
1 1 0 1 0
0 1 1 0 1
1 0 1 1 0
_
_
Questa matrice non `e ridotta ne per righe ne per colonne. Cominciamo
riducendola per righe. Quando si riduce una matrice si possono ottenere pi` u
matrici e di conseguenza pi` u tralicci diversi associati allo stesso codice.
R

3
= R
3
+R
1
H =
_
_
1 1 0 1 0
0 1 1 0 1
0 1 1 0 0
_
_
R

3
= R
3
+R
2
H =
_
_
1 1 0 1 0
0 1 1 0 1
0 0 0 0 1
_
_
Qui gi`a vediamo che il nostro codice avr`a probabilmente uno 0 sso, ma non `e
ancora detto perche dobbiamo sistemare le colonne.
R

2
= R
2
+R
3
H =
_
_
1 1 0 1 0
0 1 1 0 0
0 0 0 0 1
_
_
t

0
= 0 t

0
= 3
t

1
= 1 t

1
= 2
t

2
= t

2
= 4
Il codice ha le componenti x
4
nulle (infatti x C soddisfa in particolare
lequazione x
4
= 0).
109
CAPITOLO 23. 01 GIUGNO 2010 MATTINA: ESERCITAZIONE 110
Il codice equivale a C

= (x
0
x
1
x
2
x
3
)[(x
0
x
1
x
2
x
3
0) C e la matrice di controllo
di C

`e
_
1 1 0 1
0 1 1 0
_
t

0
= 0 t

0
= 3
t

1
= 1 t

1
= 2
H
1
=
_
1
_
H
2
=
_
1 1
0 1
_
H
3
=
_
1 1 0
_
H
4
=
Z
0
= (0) dimZ
1
= 1 dimZ
2
= 2 dimZ
3
= 1 Z
4
= 0 FIGURA 1
T
1
=
_

_
z
1
= x
0
x
1
= x
z
2
=
_
1 1
0 1
__
x
0
x
1
_
=
_
x
0
+x
1
x
1
_
=
_
z +x
x
_
FIGURA 2
T
2
=
_

_
z
2
=
_
1 1
0 1
__
x
0
x
1
_
x
2
= x
z
3
=
_
1 1 0
_
_
_
_
x
0
x
1
x
2
_
_
_ = x
0
+x
1
x
1
+x
2
= 0; x = x
1
= x
2
FIGURA 3
T
3
=
_

_
z
3
=
_
1 1 0
_
_
_
_
x
0
x
1
x
2
_
_
_ = x
0
+x
1
x
3
= x
z
4
= 0
x
0
+x
1
+x
3
= 0; x = x
3
= x
0
+x
1
FIGURA 4
C

=
_
0 0 0 0 0
_
,
_
0 1 1 1 0
_
,
_
1 1 1 0 0
_
,
_
1 0 0 1 0
_

23.2 Esercizio 2
Considerare la matrice
Q = (Q
i,j
)
i,j=1,2,3
=
_
_
_
3
4
1
8
1
8
1
4
1
2
1
4
1
8
1
8
3
4
_
_
_
Spiegare perche non pu`o esistere un canale tale che P(Y = y
i
[X = x
j
) = Q
ij
.
Risoluzione
Questa `e matrice di transizione se P
y
= QP
x
in particolare per
P
x

_
_
_
_
_
1
0
0
_
_
,
_
_
0
1
0
_
_
,
_
_
0
0
1
_
_
CAPITOLO 23. 01 GIUGNO 2010 MATTINA: ESERCITAZIONE 111
P
y
deve risultare distribuzione di probabilit`a
C.N.S.
la somma su ogni colonna
deve essere = 1. Per Q questo non `e vericato.
Richiamo
Q
ij
= P(Y = y
i
[X = x
j
)

P(Y = y
i
) =

Q
ij
P(x
j
)
Quando la somma delle colonne fa uno vuol dire che le colonne sono diverse
distribuzioni di probabilit`a in Y . In generale il prodotto di matrici di questo
tipo `e la combinazione lineare delle colonne avente per coecienti ci`o che c`e
dentro P
y
. Quindi se `e vera questa condizione sulle colonne sar`a vera qualsiasi
sia P
x
: per questo la condizione non `e solo necessaria ma anche suciente.
23.3 Esercizio 3
Considerare la trasposta Q
t
della matrice precedente. Argomentare il fatto che
pu`o esistere un canale con tale matrice di transizione di probabilit`a, e calcolarne
la capacit`a.
Q
T
=
_
_
_
3
4
1
4
1
8
1
8
1
2
1
8
1
8
1
4
3
4
_
_
_
I verica: si ottiene la distribuzione uniforme su Y ? Ovvero: ha soluzione il
sistema
Q
T
_
_
P
1
P
2
P
3
_
_
=
_
_
1
3
1
3
1
3
_
_
?
Equivalentemente:
Q
T
_
_
x
y
z
_
_
=
_
_
1
1
1
_
_
?
La cosa interessante `e che possiamo anche evitare di risolvere il sistema
calcolando il rango. Perche se la matrice `e quadrata o ha rango pari al numero
di righe sappiamo che il sistema si pu`o risolvere se rkQ
t
=3.
Nel nostro caso per calcolare il rango ci conviene fare una riduzione.
R

3 = R
3
R
2
Q
T
=
_
_
_
3
4
1
4
1
8
1
8
1
2
1
8
0
1
4
5
8
_
_
_
R

1 = R
1
6R
2
CAPITOLO 23. 01 GIUGNO 2010 MATTINA: ESERCITAZIONE 112
Q
T
=
_
_
_
0
1
4
3
5
8
1
8
1
2
1
8
0
1
4
5
8
_
_
_ =
_
_
_
0
11
4

5
8
1
8
1
2
1
8
0
1
4
5
8
_
_
_
R

1
= R
1
+R
3
Q
T
=
_
_
_
0 3 0
1
8
1
2
1
8
0
1
4
5
8
_
_
_
il cui determinante `e ,= 0.
Questo `e il procedimento generale per sapere se la distribuzione su Y `e ottenuta
da qualche distribuzione su X che non necessariamente `e quella uniforme.
Osservazione importante:
Q
T
_
_
1
1
1
_
_
=
_
_
_
9
8
3
4
9
8
_
_
_ dividendo per 3 otteniamo
_
_
_
3
8
1
4
3
8
_
_
_ non uniforme quindi
non siamo in quel caso fortunato in cui le distribuzioni uniformi di X e di Y si
corrispondono.
23.3.1 Calcoliamo la capacit`a
Vogliamo I(X; Y ) = H(Y ) H(Y [X).
1) H(Y [X) =

x
i
P
x
H(Y [x = x
i
)
H(Y [x = x
i
) rappresenta le entropie delle distribuzioni di probabilit`a delle
colonne di Q
T
. Ce le dobbiamo calcolare separatamente:
H(Y [x
1
) =
3
4
log
4
3
+
1
8
log 8 +
1
8
log 8 =
3
4
log 4 +
1
4
log 8
3
4
log 3 =
3
4
2 +
1
4
3
3
4
log 3 =
9
4

3
4
log 3
H(Y [x
2
) =
1
4
log 4 +
1
2
log 2 +
1
4
log 4 =
1
2
+
1
2
+
1
2
=
3
2
H(Y [x
3
) = H(Y [x
1
) =
9
4

3
4
log 3
P
x
=
_
_
p
q
r
_
_
=
_
_
_
P
(x
1
)
x
P
(x
2
)
x
P
(x
3
)
x
_
_
_
H(Y [X) =
3
4
(p +r)(3 log 3) +
3
2
q
Se H(Y [X) fosse stato costante il massimo sarebbe stato quello che
corrispondeva alla distribuzione uniforme. In questo caso, in cui non `e
costante, non ci tornano utili i calcoli che avevamo fatto prima.
H(Y ) = P
(1)
y
log
1
P
(1)
y
+P
(2)
y
log
1
P
(2)
y
+P
(3)
y
log
1
P
(3)
y
=
=
_
3
4
p +
1
4
q +
1
8
r
_
log
_
1
3
4
p +
1
4
q +
1
8
r
_
+
_
1
8
p +
1
2
q +
1
8
r
_
log
_
1
1
8
p +
1
2
q +
1
8
r
_
+
_
1
8
p +
1
4
q +
3
4
r
_
log
_
1
1
8
p +
1
4
q +
3
4
r
_
CAPITOLO 23. 01 GIUGNO 2010 MATTINA: ESERCITAZIONE 113
Notiamo che in H(Y ) c`e simmetria p r, cos` come in H(Y [X) possiamo
assumere
p = r = t; q = 1 2t (23.1)
I(X; Y ) = 2
_
7
8
t +
1
4

1
2
t
_
log
1
(
3
8
t+
1
4
)
+
_
1
4
t +
1
2
t
_
log
1
(
1
2

3
4
t)

3
2
t(3
log 3)
3
2
(1 2t)
Dobbiamo massimizzare per 0 t
1
2
(per la 23.1) la funzione
I(X; Y ) = 2
_
3
8
t +
1
4
_
log
_
3
8
t +
1
4
_

_
1
2

3
4
t
_
log
_
1
2

3
4
t
_

3
2
t(3log3)
3
2
(12t)
C`e da calcolare la derivata seconda. Calcoliamo intanto i valori estremi:
t = 0 I(X; Y ) =
2
4
log
1
4

1
2
log
1
2

3
2
= 1 +
1
2

3
2
= 0
t =
1
2
I(X; Y ) =
14
16
log
7
16

1
8
log 18
3
4
(3 log 3) +

3
2

3
2
Adesso bisognerebbe fare la derivata in t, porla uguale a 0, e confrontare con
gli estremi.
Capitolo 24
01 Giugno 2010 pomeriggio
I contenuti di
questo capitolo
sono nel
capitolo 26 del
libro
FIGURA 1
f
1
(x
1
), f
2
(x
2
), f
3
(x
3
), f
4
(x
1
, x
2
), f
5
(x
2
, x
3
)
P (x) = f
1
f
2
f
3
f
4
f
5
P(x) =
P(x)
Z
normalizzata
Z =

x=(x
1
,x
2
,x
3
)P(x)
I compito: calcolare Z
II compito: calcolare, per ogni n 1, 2, 3Z
n
(x
n
) =

n
n

=n
P (x)
Esempio
Z
1
(x
1
) =

x
2
,x
3
P (x
1
, x
2
, x
3
) = f
1
(x
1
)

x
2
,x
3
f
2
(x
1
)f
3
(x
3
)f
4
(x1, x
2
)f
5
(x
2
, x
3
) =
= f
1
(x
1
)

x
2
f
2
(x
2
)f
2
(x
1
, x
2
)

x
3
f
3
(x
3
)f
5
(x
2
, x
3
)
Z =

x
n
{0,1}
Z
n
(x
n
)
P
n
(x
n
) =
Z
n
(x
n
)
Z
Quando si `e in presenza di un grafo bipartito come quello in gura 1.
Se m `e un nodo fattore denotiamo con x
m
il vettore delle variabili da cui il nodo
fattore dipende (di cui `e parente nel grafo).
Esempio m = 4 x
4
= (x
1
, x
2
)
N(m) = indici delle variabili dellmesimo nodo fattore
Esempio: N(4) = 1, 2
Analogamente per ogni nodo variabile n indichiamo con
M(n) = indici dei nodi fattori che hanno x
n
come variabile
Esempio M(1) = 1, 4
114
CAPITOLO 24. 01 GIUGNO 2010 POMERIGGIO 115
Notazione N(m) MENO n = parenti di m eccetto n (n `e nodo variabile
parente di m)
Analogamente M(n) m = . . .
x
mMENOn
=variabili di x
m
eccetto x
n
Messaggi di due tipi: q
n
m = messaggio dal nodo variabile n al nodo
fattore m
r
m
n = messaggio dal fattore m al nodo variabile n
24.1 Regole
q
(x
n
)
nm
=

r
n

M(n)m
r
m

n
r
(x
n
)
mn
=

x
m
MENOn
f
n
(x
m
)

N(m)n
q
(x
n
)
n

m
Esempio
r
41
(x
1
) =

x
2
f
4
(x
1
, x
2
)q
24
(x
2
) =

x
2
f
4
(x
1
, x
2
)r
52
(x
2
)r
22
(x
2
) =

x
0
f
4
(x
1
x
2
)
=

x
0
f
4
(x
1
x
2
)f
2
(x
2
)
_

x
3
f
5
(x
2
x
3
)q
(x
3
)
35
_
=
=

x
2
f
4
(x
1
x
2
)f
2
(x
2
)

x
3
f
5
(x
2
x
3
)f
3
(x
3
)
24.2 In generale
Se il grafo di gura 1 `e un albero (non contiene cicli) allora esistono delle foglie
che possono essere dei due tipi:
foglia di tipo variabile: x
n
che ha M(n) = m (1 solo nodo fattore); allora
q
nm
=

M(n)m
=
r
m

n
= 1
foglia di tipo fattore:
f
m
tale che N(m) = n r
mn
=

x
m
n
f
m
(x
m
)

N(m)n
=
g
n

m
(x
n
) = f
m
(x
n
)
Il grafo del nostro esempio `e un albero:
FIGURA 2
Lalgoritmo termina quando tutti i messaggi sono inviati in tutte le direzioni.
q
nm
r
mn
per ogni lato (n, m)
Z
n
(x
n
) =

mM(n)
r
mn
; Z =

x
n
Z
n
(x
n
)
CAPITOLO 24. 01 GIUGNO 2010 POMERIGGIO 116
Osservazione
Stesso algoritmo con max al posto di

risolve il problema di massimizzazione.


Trovare x tale che P (x) = max.
Esempio Per il grafo dellesempio supponiamo che
(x
1
, x
2
, x
3
) R
3
y = (1, 1, 0) parola ricevuta
f
1
(x
1
) = P(x
1
[y
1
) =
_
0.1 x
1
= 0
0.9 x
1
= 1
f
2
(x
2
) = P(x
2
[y
2
) =
_
0.1 x
2
= 0
0.9 x
2
= 1
f
3
(x
3
) = P(x
3
[y
3
) =
_
0.9 x
3
= 0
0.1 x
3
= 1
f
4
(x
1
, x
2
) =
_
0 x
1
,= x
2
1 x
1
= x
2
f
5
(x
2
, x
3
) =
_
0 x
2
=,= x
3
1 x
2
= x
3
P (x
1
, x
2
, x
3
) =
_
P(x
1
[y
1
)P(x
2
[y
2
)P(x
3
[y
3
) (x
1
, x
2
, x
3
) C
0 altrimenti
Fissiamo come vertice x
1
e sviluppiamo il grafo partendo da questo come radice
FIGURA 3
r
33
= f
3
(x
3
)
q
35
= f
3
(x
3
)
r
22
= f
2
(x
2
)
r
52
(x
2
) = max
x
3
f
5
(x
2
, x
3
)f
3
(x
3
) (e va fatto per ogni valore di x
2
)=
_

_
max
x
3
=f
3
(0)
f
5
(0, x
3
)f
3
(x
3
) x
2
= 0
max
x
3
f
5
(1, x
3
)
=f
3
(1)
f
3
(x
3
) x
2
= 1
q
24
(x
2
) = f
2
(x
2
)r
52
(x
2
) =
_

_
f
2
(0)f
3
(0) x
2
= x
3
= 0
f
2
(1)f
3
(1) x
2
= x
3
= 1
0 altrimenti
r
11
(x
1
) = f
1
(x
1
)
r
41
(x
1
) = max
x
2
(f
4
(x
1
, x
2
)q
24
(x
2
)) =
_
q
24
(0) x
1
= x
2
= 0
q
24
(1) x
1
= x
2
= 1
=
_

_
f
2
(0)f
3
(0) x
1
= x
2
= x
3
= 0
f
2
(1)f
3
(1) x
1
= x
2
= x
3
= 1
0 altrimenti
Z
1
(1) = r
11
(x
1
)r
41
(x
1
)
Z = max
x
1
f
1
(x
1
)r
41
(x
1
) = max
_
0.1
f
1
(0)
0.1
f
2
(0)
0.9
f
3
(0)
x
1
=x
2
=x
3
=0
,
0.9
f
1
(1)
0.9
f
2
(1)
0.1
f
3
(1)
x
1
=x
2
=x
3
=1
_
Capitolo 25
03 Giugno 2010: LDPC
Sono codici binari C F
N
2
lineare con matrice di controllo H di tipo sparso.
Per sparso si intende che si ssa una costante c (piccola rispetto ad N) tale
che w(H) = #(i, j)[h
ij
= 1 = cN lineare in N anziche N
2
(rate ssato
R C R =
K
N
K dimC)
N
2
NK = N
2
(1 K) =O(N
2
). Gli argomenti
di ogni sono
contenuti nel
capitolo 47 del
libro
Le matrici H come sopra possono essere interpretate come le matrici di
adiacenza associate a gra bipartiti con N nodi in alto (corrispondenti agli
indici di colonna j = 1 . . . N), N K nodi in basso (corrispondenti agli indici
di riga i = 1 . . . N K).
h
ij
= 1 (i, j) `e un lato del grafo
H =
_
_
1 1 0 1
0 0 1 0
0 1 1 0
_
_
FIGURA 1
Un grafo bipartito si dice regolare se da ogni nodo in alto escono c lati e da ogni
nodo in basso escono d lati. Condizione necessarie e suciente
cN = dM = #lati del grafo = w(H)
25.1 Esercizio
Siano c, d, M, N tali che cN = dM arbitrari; provare che esiste sempre grafo
bipartito regolare con questi parametri. Ad esempio, se prendiamo N = 6, M =
4 e vogliamo prendere c = 2, d = 3 allora dobbiamo fare in modo che ci siano 3
uni per riga e 2 per ogni colonna:
_
_
_
_
1 0 0 ? ? ?
1 1 0 ? ? ?
0 1 1 ? ? ?
0 0 1 1 1 0
_
_
_
_

117
CAPITOLO 25. 03 GIUGNO 2010: LDPC 118
_
_
_
_
1 0 0 0 1 1
1 1 0 0 0 1
0 1 1 1 0 0
0 0 1 1 1 0
_
_
_
_
Per questi codici dobbiamo denire un opportuno decoder che possa decodicare
in modo veloce ed eciente. Vedremo decoder di tipo message passing. Se noi
riusciremo a costruire un algoritmo di decodica per codici associati a questi
gra del tipo Message Passing avremo degli algoritmi di complessit`a lineare in
N, che `e un ottima cosa perche, ad esempio, lalgoritmo per sindromi non `e
aatto lineare in N.
C = x[Hx = 0 con H matrice sparsa associata a grafo bipartito sparso
(#lati=cN). Osserviamo che il grafo consente anche di calcolare le sindromi:
Hy = z
FIGURA 2
25.2 BSC
x=parola trasmessa tale che Hx = 0
y=parola ricevuta
y = x + n
errore
z = Hy = Hn
Dobbiamo inferire n
Metodo ottimale: massimizzare P(n[y) = P(x[y)
P(n[y) =
P(y|x)P(x)
Z
Supponiamo che P(x) = costante x C
P(n[y) P(y[x) =
N

n=1
P(y
n
[x
n
) = f
w(n)
(1 f)
Nw(n)
25.2.1 Metodo non ottimale ma eciente
Calcolare la funzione di marginalizzazione
Z
i
(n
i
) = P(n
i
[y) =
_

_
P(n
i
= 0[y) =

n
j
j=i
P(n, n
i
= 0[y)
P(n
i
= 1[y) =

n
j
j=i
P(n, n
i
= 1[y)
Una volta calcolati Z
n
i
(n
i
= 0) e Z
n
i
(n
i
= 1) si pone n
i
= 0 oppure 1 a seconda
di chi `e il massimo dei due valori per ogni i = 1 . . . N deducendo n. Se n passa
il test
Hn = z = Hy
allora correggiamo y y +n altrimenti si dichiara un fallimento.
Il grafo fattore che permette di calcolare P(n
i
[y) i = 1 . . . N `e il seguente:
CAPITOLO 25. 03 GIUGNO 2010: LDPC 119
FIGURA 3 (grafo associato ad H)
f
i
(n
i
) = P(y
i
[x
i
) = P(x
i
[y
i
) =
_
f n
i
= 1
1 f n
i
= 0
Per un nodo fattore m in basso, deniamo
N(m) = j nodo variabile[(j, m)lato = nodo parente di m
j
A livello di sindromi:
z
m
=

jN(m)
n
j
f
m
(y
j
[j N(m)) =
_
0 Z
m
,=

jN(m)
n
j
1 Z
m
=

jN(m)
n
j
Modichiamo leggermente le notazioni per descrivere lalgoritmo di decodica
applicato a questo caso per l
25.2.2 Algoritmo per calcolo dei marginali nel caso dei
codici LDPC
n
i
0, 1
q
nm
=
_
q
0
nm
se n
n
= 0
q
1
nm
se n
n
= 1
messaggi inviati dal nodo variabile n al nodo fattore m
q
x
nm
x 0, 1 sono inizializzati a P
0
= 1 f
se x=0
P
1
= f
se x=1
Regole di aggiornamento:
q
0
nm
= q
0
mn
=
mn
p
0
n

M(n)m
r
0
m

n
p
0
n
= 1 f
q
1
nm
= q
1
mn
=
mn
p
1
n

M(n)m
r
1
m

n
p
1
n
= f

mn
= (q
0
mn
+q
1
mn
)
1
r
0
mn
= r
0
mn
=

n
n

N(m)n
f
m
(n
n
, n
n
= 0)

N(m)n
q
n
n
m
=

P(Z
m
[n
n
, n
n
= 0)


r
1
mn
= r
1
mn
=

n
n

N(m)n
f
m
(n
n
, n
n
= 1)

N(m)n
q
n
n
m
=

P(Z
m
[n
n
, n
n
= 1)


Dove n
n
== n
n
=
_
0 se z
m
,= n
n
+

n
n

1 se z
m
= n
n
+

n
n

CAPITOLO 25. 03 GIUGNO 2010: LDPC 120


25.3 Esercizio
C = (0, 0, 0, 0)
1
2
, (0, 0, 1, 1)
1
8
, (1, 1, 0, 0)
1
8
, (1, 1, 1, 1)
1
4

f <
1
3
decodica ottimale: arg max P(x, y)
P(x[y) =
P(y[x)P(x)
Z
=
f
d(x,y)
(1 f)
4d(x,y)
P(x)
Z
Domanda: per quali y questa funzione pu`o essere massimizzata da (0 0 1 1)
o (1 1 0 0)? Poiche hanno la stessa probabilit`a il ragionamento che facciamo su
una delle due varr`a anche per laltra. Prendiamo (0 0 1 1) e dividiamo le y a
seconda della distanza:
d(y, (0 0 1 1))
A distanza 0 abbiamo:
(0, 0, 1, 1)
A distanza 1 abbiamo:
(1, 0, 1, 1) d(y, (1, 1, 1, 1)) = 1
(0, 1, 1, 1) d(y, (1, 1, 1, 1)) = 1
(0, 0, 0, 1) d(y, (0, 0, 0, 0)) = 1
(0, 0, 1, 0) d(y, (0, 0, 0, 0)) = 1
A distanza due abbiamo, per la disuguaglianza triangolare che la parola di
distanza minima di qualsiasi y da una parola del codice in eetti `e 2 e se `e una
parole dista da questa di 2 allora trovi unaltra di questa pi` u probabile che ha
una distanza o uguale oppure addirittura minore.
y si decodica come (0, 0, 1, 1) quando d(y, (0, 0, 1, 1)) = 0 cio`e y = (0, 0, 1, 1) e
P((0, 0, 1, 1)[(0, 0, 1, 1)) =
(1f)
2
P(0011)
Z

f
d(y,x)
(1f)
d(y,x)
p(x)
Z
x C
In particolare per x = (0, 0, 0, 0)
(1 f)
4
1
8
f
2
(1 f)
2
1
2
_
1 f
f
_
2
f
1
3
1 f
f
2; 3f 1
y = (0011), (1100) y y
Quindi y si decodica con (1, 1, 1, 1)?
d(y, (1, 1, 1, 1)) = 0 y (1, 1, 1, 1)
d(y, (1, 1, 1, 1)) = 1 w(y) = 3
Dobbiamo solo vericare
P(y[1111)
1
4
P(y[0000)
1
2
f(1 f)
3
1
4
f
3
(1 f)
1
2
_
1 f
f
_
2
2 OK perche sappiamo
_
1 f
f
_
2
4
Capitolo 26
08 Giugno 2010
gura 1
=vettore di errore
n
0, 1
H = z = Hy
La decodica viene fatta attribuendo alla componente nesima delle variabili di
input (che rappresenta lerrore in questo caso) il valore 0, 1 a seconda di quale
dei due ha la probabilit`a pi` u alta. Lalgoritmo ha due tipi di messaggi:
q
0
mn
= q
0
nm
q
1
mn
= q
1
nm
r
0
mn
= r
0
mn
r
1
mn
= r
1
mn
Inizializzazione
q
0
mn
= 1 +f q
1
mn
= f = p
f
(f = probabilit`a di errori del BSC)
Passo dal basso verso lalto
r
0
mn
=

n
|n

N(m)n
P(z
m
[epsilon
n
= 0,
n
)

nN(m)n
q
e
m
mn

r
1
mn
=

n
|n

N(m)n
P(z
m
[epsilon
n
= 1,
n
)

nN(m)n
q
e
m
mn

P(z
m
[
n
= 0,
n
) =
_
1 z
m
=

N(m)n

0 z
m
,=

N(m)n

P(z
m
[
n
= 1,
n
) =
_
1 z
m
=

N(m)n

n
+ 1
0 z
m
,=

N(m)n

n
+ 1
P(z
m
[
n
,
n
) =
_
1 z
m
=

N(m)n

0 z
m
,=

N(m)n

121
CAPITOLO 26. 08 GIUGNO 2010 122
Aggiornamento dei q

mn
q
0
mn
=
n
P
0

M(n)m
r
0
m

n
=
n
(1 f)

r
0
m

n
q
1
mn
=
n
P
1

M(n)n
r
1
m

n
=
n
f

r
1
m

n
=
1
q
0
mn
+q
1
mn
Si calcolano anche
q
0
n
=
n
P
0

M(n)
r
0
mn
q
1
n
=
n
P
1

M(n)
r
0
mn
Se q
1
n
>
1
2
si pone
n
= 1, altrimenti
n
= 0; questo si fa n.
A questo punto si fa una verica di consistenza vericando se cos` costruito
soddisfa H = z.
Se il test `e superato la decodica `e x = y+; altrimenti si prosegue lalgoritmo
con un nuovo passo dal basso verso lalto.
26.1 Ottimizzazione del passo dal basso verso
lalto
Ci sono delle somme in r
0
ed r
1
; anziche calcolare r
0
mn
ed r
1
mn
calcoliamo
r
mn
= r
0
mn
r
1
mn
Proposizione Ponendo q
mn
= q
0
mn
q
1
mn
si ha r
mn
= (1)
z
n

N(m)n
q
mn
.
Dimostrazione. r
mn
= r
0
mn
r
1
mn
=

P(r
n
[
n
= 0,
n
)

q
0
mn

P(z
m
[
n
= 1,
n
)

q
1
mn

Notiamo che P(z


m
[
n
= 0,
n
) = 0 P(z
m
[
n
= 1,
n
) = 1
Allora r
mn
=

n
n

N(m)n
(1)
e
n

mn
=

(1)
z
m
+

nm

(ricordare che z
m
+
n
+

nN(m)n

n
= 0)
= (1)
z
m

(1)

q
e
n

mn
= (1)
z
m

N(m)n
(q
0
mn
q
1
mn
) = (1)
z
m

N(m)n
q
mn

Osservando che r
0
mn
+r
1
mn
= 1 sempre, si trova che
r
0
mn
=
1 +r
mn
2
r
1
mn
=
1 r
mn
2
CAPITOLO 26. 08 GIUGNO 2010 123
26.2 Esempio
Codice associato a grafo bipartito, con detto grafo pieno (nel senso che questi
sette vertici hanno queste connessioni nel modo descritto)
FIGURA 2
Vogliamo calcolare q
0
n
e q
1
n
.
Passo dal basso verso lalto
r
m
1
,n
= (1)
1
r
m
2
,n
= (1)
1
q
m
1
,1
q
m
1
2
q
m
2
3
q
m
2
4
Nellinizializzazione
q
mn
= (1 f) f = (1 2f)
r
m
1
,n
= (1)(1 2f)
2
r
m
2
,n
= (1)(1 2f)
2
r
0
m
1
,n
=
1 (1 2f)
2
2
=

1 + 4f 4f
2
2
= 2f 2f
2
r
0
m
2
,n
= 2f 2f
2
q
0
n
=
n
p
0
r
0
m
1
,n
r
0
m
2
,n
=
n
(1 f)(2f 2f
2
)
2
q
1
n
=
n
f(1 2f + 2f
2
)
2

n
=
1
q
0
n
+q
1
m
Se r(1 f)f
2
(1 f)
2
> f(1 2f +2f
2
) allora il bitrate di errore pi` u probabile
in
n
`e 0, altrimenti `e 1.
26.3 Esercizio 11
C =
1
2
(0000),
1
8
(0011),
1
8
(1100),
1
4
(1111) F
4
2
abbiamo gi`a osservato che `e lineare
con matrice di controllo
H =
_
1 1 0 0
0 0 1 1
_
In generale, avendo una base, si impone che lequazione generica con coecienti
incogniti
h
1
x
1
+. . . +h
n
x
n
=
sia soddisfatta da tutti gli x = x
1
, . . . , x
n
appartenenti alla data base.
CAPITOLO 26. 08 GIUGNO 2010 124
26.3.1 Esempio
Se C ha per base (0011), (1100) allora si impone che siano soddisfatte le seguenti
due equazioni:
_
h
2
+h
4
+h
5
= 0
h
1
+h
2
+h
5
= 0
da cui si pu`o ricavare che
h
4
= h
1
= h
2
+h
5
(h
1
, h
2
, h
3
, h
4
, h
5
) = (h
2
+h
5
, h
2
, h
3
, h
2
+h
5
, h
5
).
Attribuiamo ai parametri liberi (h
2
, h
3
, h
5
) i valori (1, 0, 0), (0, 1, 0), (0, 0, 1)
H =
_
_
1 1 0 1 0
0 0 1 0 0
1 0 0 1 1
_
_
Il traliccio di questo codice si potrebbe fare intuitivamente:
FIGURA 3
26.3.2 Decodica
f =
1
3
y = (0011)
Vogliamo massimizzare P(x[y) P(y[x)P(x).
Sotto le ipotesi che la probabilit`a di emissione delle parole del codice sia
uniforme, che il canale sia memoryless, e nel caso in cui sia BSC con f costante,
lalgoritmo ottimale diventa quello della distanza minima
P(y[x) =
memoryless

P(y
n
[x
n
) =
BSC
f
d(y,x)
(1 f)
4d(y,x)
che `e max quando d(x, y) `e minima.

S-ar putea să vă placă și