Facoltà di Ingegneria
Appunti dalle lezioni del corso di
Teoria dell’informazione e codici
Prof. Alessandro NERI
Anno accademico 2008-2009
1
TEORIA DELL'INFORMAZIONE
Problema fondamentale della comunicazione:
Riprodurre in un punto, in modo esatto o approssimato, un messaggio selezionato
in un altro punto
Obiettivo
Provare, per mezzo della teoria dei processi ergodici, teoremi fondamentali sulla
codificazione dell'informazione trasmessa (in cui l'entropia gioca un ruolo
essenziale)
La misura dell'informazione è
1. Un'indicazione della libertà di scelta che una sorgente è in grado di esercitare
nel selezionare un messaggio
2. Un'indicazione del grado di incertezza di un osservatore nei riguardi del
messaggio che sarà emesso
2
Codifica a blocchi
S0
Data
xk
Codificatore a
blocchi
(k;M)
una sorgente discreta S0, siano:
x[n]: una realizzazione costituita da una successione indefinita di caratteri
appartenenti all'alfabeto di sorgente A ad L determinazioni
A=(a1, a2, …, aj, …aL)
xk: sequenza di k caratteri successivi
3
Codifica a blocchi
A(k) : l'alfabeto estensione di ordine k di A
A(k) =(b1, b2, …, bj, …bLk)
i cui elementi sono le Lk differenti sequenze di k caratteri ciascuno appartenente ad
A, cioè
bj =(aj1, aj2, …, ajn , … ajk)
Si
applichi ad x[n] una codificazione a blocchi (k; M) a lunghezza di parola non
necessariamente costante tale che a ciascun carattere bj di A(k) faccia corrispondere
una stringa di nj caratteri del nuovo alfabeto ad M simboli
C =(c1, c2, …, cj, …cM)
4
Codifica a blocchi
carattere
a1
a2
a3
a4
PA(a)
1/2
1/4
1/8
1/8
Codice I
1
00
01
10
Codice II Codice III
0
0
10
01
110
011
111
111
Codici:
univocamente decodificabili
Trasformazione invertibile
istantaneamente decodificabili
l'inversione può essere effettuata in tempo reale
senza dover attendere gli altri caratteri della
sequenza.
Regola
del prefisso: Un codice risulta univocamente istantaneamente
decodificabile se non esiste nessuna parola di codice che coincida interamente
con l'inizio di parole di codice di lunghezza maggiore.
5
ENTROPIA
Obiettivo
cercare di assegnare le parole di codice di lunghezza più brevi alle
sequenze di caratteri d'ingresso più frequenti
esempio:
codice MORSE
Definizione
Indicata
con PB(bj) la probabilità associata al carattere bj, il valore atteso
del numero di caratteri di C che corrispondono a xk vale:
E B {n} =
Lk
∑ n j PB (b j )
j =1
6
ENTROPIA
Ciò posto, si definisce Entropia H della sorgente la quantità
 E {n}
H = Inf  B 
k  k

al variare in tutti i modi possibili del sistema di codificazione a blocchi,
purché biunivocamente decodificabile.
7
ENTROPIA (cont.)
Teorema

1
1 
H = lim E B  log M

P
(
b
)
k →∞ k


B
Dal
(1)
teorema discende che una serie di approssimazioni per H può essere
ottenuta a partire dalla conoscenza delle proprietà statistiche di sequenze
di 1, 2, …, k simboli
La
base del logaritmo che compare nella (1) determina l'unità di misura
per l'entropia.
Per
M=2 l'entropia si misura in [bit/simbolo]
Per
M=e l'entropia si misura in [nat/simbolo]
8
Sorgente ergodica senza memoria
Poiché per tale sorgente:
PB(bj)=PA(aj1, aj2, …, ajn , … ajk)=
k
= ∏ PA (a j )
l =1
l
si ha:
H = lim
k →∞
1
E A( k )
k




 k
1
1
1 
E A ( k )  ∑ log 2
log 2 k
 = lim
=
k →∞ k
PA j ( a j ) 
j =1



(
)
P
a
Aj
j
∏


i =1
1 

= lim k E A  log 2

PA ( a ) 
k →∞ k

1
9
Sorgente ergodica senza memoria
quindi una sorgente senza memoria presenta una entropia pari a:

1 
H = E A  log 2

P
(
a
)


A
10
Sorgente ergodica senza memoria
Sorgente binaria
posto
PA(a1)=P;
PA(a2)=1-P
per l'entropia di tale sorgente si ha:
H = P log2
1
1
+ (1 − P) log2
P
1− P
11
Sorgente ergodica senza memoria
Teorema: L'entropia di una sorgente senza memoria soddisfa la
diseguaglianza:
H ≤ log 2 L
con uguaglianza quando i simboli sono equiprobabili.
Dim.: poiché
log 2 y ≤
1
( y − 1)
ln 2
12
Sorgente ergodica senza memoria
si ha:


1
1 L
1
H − log 2 L = ∑ PA ( a n ) log 2
≤
∑ PA ( an )  LP (a ) − 1 .
LP
a
(
)
ln
2
n =1
n =1
 A n

A n
L
D’altro canto,
L

 1 L
1
∑ PA (an )  LP (a ) − 1 = L ∑1 − ∑ PA (an ) = 1 − 1 = 0 ,
n =1
n =1 n =1
 A n

L
pertanto si ha:
H − log 2 L ≤ 0
c.d.d.
13
Diseguaglianza di KRAFT
Teorema (diseguaglianza di Kraft): Dato un codice istantaneamente
decodificabile definito sull’alfabeto C ad M simboli, le lunghezze delle
parole di codice deve soddisfare la condizione
Lk
∑ M −n
i
≤1
i =1
Di converso, per ogni insieme di lunghezze ni che soddisfano la precedente
condizione esiste almeno un codice istantaneamente decodificabile con le
predette lunghezze di codice.
14
Diseguaglianza di KRAFT
c1
c1
c1
Si
osservi
codice
a
che
un
blocco
cM
cj
c2
cj
decodificabile
c1
cM
c1
cM
c1
cM
può
essere rappresentato da
un un albero M-ario in
cj
cM
istantaneamente
cM
cM
c1
rad
c1
cui ogni nodo ha M
figli.
c1
cj
cM
cM
15
Ogni ramo dell’albero rappresenta un carattere di C mentre ogni foglia
rappresenta una parola di codice. Il cammino dalla radice alla foglia definisce
la parola di codice. La regola del prefisso è automaticamente verificata poiché
ogni nodo che corrisponde ad una parola di codice è una foglia da cui, pertanto,
non si sviluppano altri sottoalberi.
• Sia nmax la lunghezza maggiore.
• Considerati i nodi al livello nmax, alcuni di essi rappresenteranno parole di
codice, altri corrisponderanno a discendenti di parole di codice.
• Una parola di lunghezza ni ha M nmax − ni discendenti a livello nmax.
Poiché i sottoinsiemi costituiti dai discendenti delle parole di codice sono
disgiunti si ha
16
Lk
nmax − ni
nmax
M
≤
M
∑
i =1
Ovvero
Lk
− ni
M
≤1
∑
i =1
q.e.d.
17
OTTIMIZZAZIONE DELLE LUNGHEZZE
La minimizzazione di EB{n} deve tenere in conto la diseguaglianza di Kraft. A
tale scopo si può ricorrere alla tecnica dei moltiplicatori di Lagrange.
Pertanto, indicando con λ il moltiplicatore di Lagrange, possiamo imporre la
minimizzazione del funzionale
L

J = ∑ ni P (bi ) + λ  1 − ∑ M − ni

i =1
 i =1
Lk
k



e risolvere parametricamente il problema secondo le tecniche consuete.
Pertanto, imponiamo
∂J
= P(bi ) − λ M − ni log e M = 0
∂ni
Da cui si ottiene
18
ni = log M
λ log e M
P (bi )
Il valore del moltiplicatore può essere determinato imponendo il rispetto del
vincolo, ovvero della diseguaglianza di Kraft:
Lk
∑M
i =1
− ni
Lk
P(bi )
1
=∑
=
≤1
λ log e M
i =1 λ log e M
Da cui segue che
1 ≤ λ log e M
e quindi, poiché le lunghezze devono essere numeri interi
ni ≥ log M
1
P(bi )
Ovvero, indicando con  x  il più piccolo intero ≥ x
19

1 
ni =  log M

P
b
(
)
i 

Poiché
log M
1
1
≤ ni < log M
+1
P(bi )
P(bi )
si ha


1 
1 
EB log M
 ≤ ∑ ni P(bi ) < EB log M
 +1
P(bi ) 
P(bi ) 


Per una sorgente senza memoria pertanto
kH ≤ EB {n} < kH + 1
20
Codificatore di Huffman (1952)
Procedura per M=2
Passo 1
Si ordinino gli Lk simboli bj
secondo valori non crescenti delle
0.36
0
0.63
0.14
loro probabilità e si indichi con
{d(n)} la sequenza così riordinata di
D simboli
Passo 2
equivalente con probabilità
P[d(D)]+P[d(D-1)]
Passo 3
0.27 1
0.13
1
0.12
0
0.22
Si raggruppino gli ultimi due
simboli d(D) e d(D-1) in un simbolo
0
0.10
1
0.37
0.09
0.15
0.04
1
0
0
Posto D=D-1 si ripetano i passi 1 e
2 finché non rimanga un unico
0
0
1
0.06
1
0.02
1
simbolo
21
Codificatore di Huffman
All’albero binario di figura
corrisponde il codice seguente
carattere
a1
a2
a3
a4
a5
a6
a7
a8
Codifica
00
010
011
100
101
110
1110
1111
costruito secondo l’algoritmo di Huffman
P(bj)
0.36
0.14
0.13
0.12
0.10
0.09
0.04
0.02
log2 [P(bj)]-1
1,47
2,84
2,94
3,06
3,32
3,47
4,64
5,64
nj
2
3
3
3
3
3
4
4
L’entropia della sorgente vale
H=2,62 bit/simbolo
La lunghezza media del codice vale pertanto
EB[n]=2x0.36+3x0.14+3x0.13+3x0.12+3x0.10+3x0.09+4x0.04+4x0.02=
=2.7 bit/simbolo
22
Codificatore di Huffman
• Per alfabeti di sorgente di dimensione ridotta una codifica efficiente
richiede valori di k relativamente elevati.
• Uno degli svantaggi del codificatore di Huffman è che la soluzione relativa
a blocchi di dimensione k non può essere dedotta a partire da quella
relativa a blocchi di dimensione k-1.
o Il codificatore di Huffman richiede infatti il calcolo completo delle
probabilità di tutte le possibili sequenze di lunghezza k e la costruzione
dell’albero relativo.
• Più adatti appaiono gli schemi di codifica che consentono l’estensione a
lunghezze di blocco via via crescenti di soluzioni relative a lunghezze di
blocco inferiori.
23
Codifica di Shannon-Fano-Elias
L’insieme delle lunghezze

1 
ni = log M

P
(
b
)
i 

soddisfa la diseguaglianza di
Kraft e può essere impiegato per costruire un codice univocamente
decodificabile.
A questo scopo si può fare ricorso al metodo di Shannon-Fano-Elias basato
sulla funzione di distribuzione di probabilità.
Consideriamo, inizialmente, per semplicità una sorgente discreta senza
memoria, tale che per ogni possibile carattere PA ( ak ) > 0 .
Come è noto, nel caso di sorgente discreta la funzione di distribuzione è una
funzione costante a tratti.
24
Inoltre
F ( x) =
∑ PA (ak )
ak ≤ x
Oltre alla funzione di distribuzione nel seguito è conveniente fare riferimento
alla funzione di distribuzione modificata definita come segue:
1
F ( x) = ∑ PA (ak ) + PA ( x)
2
ak < x
25
F ( x)
1
a1
a2
aj
aL
• Poiché le probabilità sono tutte positive, se a ≠ b si ha che F (a) ≠ F (b) e
quindi se conosciamo F ( x) possiamo determinare x.
• Quindi F ( x) può essere impiegato per codificare x.
• In generale è un numero reale e la sua rappresentazione richiede un numero
infinito di bit.
26
• Indichiamo con  F ( x )  l ( x ) l’approssimazione di F ( x) basata su l(x) bit
per cui si ha
•
F ( x) −  F ( x) 
l ( x)
<
1
2l ( x )
• Se

1 
l ( x) =  log 2
+1

P( x) 

Si ha che
•
1
2l ( x )
<
P( x)
= F ( x) − F ( x − 1)
2
27
E quindi  F ( x )  l ( x ) cade all’interno del salto corrispondente ad x e consente
di identificarlo correttamente.
F ( x)
F ( x)
 F ( x ) 
l ( x)
1
2l ( x )
F − ( x)
x
28
Poiché per rappresentare x viene impiegato un numero di bit pari a

1 
+1
l ( x) =  log 2

P( x) 

La lunghezza attesa del codice vale:

1 
L = ∑ P ( x)l ( x) = ∑ P ( x) log 2
+1 < H ( X ) + 2

P ( x) 

29
Codifica aritmetica
• Elemento essenziale della codifica aritmetica è il calcolo efficiente della
funzione di probabilità e della funzione di distribuzione
• In particolare indicando con
a1m
la sottosequenza
a1n = ( a1 , a 2 ,..., a n −1 , a n )
• Per codificare il carattere successivo emesso dalla sorgente occorre
calcolare
P (a1n a n +1 ) e
A partire dai valori
P (a1n ) e
F (a1n )
F (a1n a n +1 )
calcolati al passo precedente.
P (a1n an+1 ) = P (an+1 | a1n ) P (a1n )
30
• Riferendoci per semplicità di notazione al caso binario, si ha che per il
calcolo della funzione di distribuzione in x, in linea di principio
occorrerebbe sommare le probabilità relative a tutte le foglie dell’albero
che cadono a sinistra di x.
• In alternativa è però possibile sommare le probabilità dei sottoalberi
disgiunti a sinistra di x calcolati direttamente, passo dopo passo.
T2
T1
x
31
L’algoritmo base può schematizzato come segue:
1.
Si inizializza l’intervallo corrente a [0..1].
2.
Per ogni carattere della sequenza:
2.1. Si suddivide l’intervallo corrente in sottointervalli, uno per ciascun
simbolo dell’alfabeto. L’ampiezza di ciascun sottointervallo è
proporzionale alla probabilità (stimata) che il carattere corrente sia
uguale al simbolo corrispondente all’intervallo.
2.2. Si
seleziona
come
intervallo
corrente
il
sottointervallo
corrispondente al carattere corrente.
32
La lunghezza finale dell’intervallo corrente è uguale al prodotto P delle
probabilità dei singoli caratteri che compongono la sequenza.
Esempio. Codifica della sequenza bbb a partire dalla conoscenza delle
probabilità
Pa=0.4
Pb=0.5
Peof=0.1
33
Intervallo
Azione
a
b
EOF
Ingresso
corrente
[0.000,1.000]
dividi
[0.000,0.400] [0.400,0.900] [0.900,1.000]
b
[0.400,0.900]
dividi
[0.400,0.600] [0.600,0.850] [0.850,0.900]
b
[0.600,0.850]
dividi
[0.600,0.700] [0.700,0.825] [0.825,0.850]
b
[0.700,0.825]
dividi
[0.700,0.750] [0.750,0.812] [0.812,0.825]
eof
[0.812,0.825]
0.0
a
1101000
b
0.4
a
0.9 eof 1.0
b
a
a
b
b
34
L’intervallo finale, senza approssimazioni, è [0.812,0.825], che è approssimato
dalla seguente rappresentazione binaria:
[0.11010000, 0.11010011]
L’intervallo può quindi essere identificato trasmettendo 1101000.
Si
osservi
che
la
probabilità
della
sequenza
considerata
vale
P=(0.5)3(0.1)=0.0125. Pertanto –logP=6.322, mentre la versione approssimata
del codificatore aritmetico impiega 7 cifre binarie.
35
Decodifica aritmetica
Il decodificatore opera a partire dal valore x che rappresenta un punto
dell’intervallo [0,1].
• Supponiamo, per semplicità, che il decodificatore conosca la lunghezza N
della sequenza da decodificare, codificata e trasmessa separatamente. In
alternativa può essere impiegato un ulteriore carattere di fine sequenza
(eof)
• Si inizializza l’intervallo corrente a [0..1].
• Per ciascuno degli N caratteri da decodificare:
o Si suddivide l’intervallo corrente in sottointervalli, uno per ciascun
simbolo dell’alfabeto. L’ampiezza di ciascun sottointervallo è
proporzionale alla probabilità (stimata) che il carattere corrente sia
uguale al simbolo corrispondente all’intervallo.
36
o Si selezione il carattere corrispondente al sottointervallo in cui cade il
valore x e si tale sottointervallo come intervallo corrente
0.0
0
1.0
1
0
0
1
1
1
37
Codifica universale
• Consideriamo, senza perdita di generalità, una sorgente senza memoria.
L’algoritmo di Huffmann consente di costruire un codice la cui efficienza
raggiunge, al crescere della dimensione k del blocco, il valore teorico
corrispondente all’entropia H della sorgente.
• La procedura presuppone la conoscenza della funzione di probabilità
PB(bj)=PA(aj1, aj2, …, ajn , … ajk)
che caratterizza la sorgente.
• Se in fase di progetto del codice, si commette un errore nella valutazione
della funzione di probabilità della sorgente, esso si ripercuote sul codice e
quindi sulle prestazioni.
• In particolare sia
38
o PA(a): la funzione di probabilità corretta
o QA(a): la funzione di probabilità assunta nel progetto del codice
Per un’assegnata lunghezza k del blocco, il codice costruito a partire da
QB(bj)=QA(aj1, aj2, …, ajn , … ajk)
avrà parole di lunghezza pari a
log M
1
1
≤ ni < log M
+1
QB (bi )
QB (bi )
Poiché la probabilità corretta PB(bj) il valore atteso del numero di simboli
impiegato per codificare un simbolo emesso dalla sorgente varrà
Lk
LK
Lk
1
1
ni
1
1
1
P
(
b
)
log
≤
P
(
b
)
<
P
(
b
)log
+
∑ B i M Q (b ) ∑ k i k ∑ B i M Q (b ) k
k i =1
B i
B i
i =1
i =1
39
Quindi
EB {n}
1
1
Inf
= lim ∑ PB (bi )log M
k →∞ k
k
QB (bi )
k
i =1
Lk
Ovvero un errore nella valutazione iniziale del modello probabilistico della
sorgente si traduce in un aumento ∆H del numero medio di caratteri necessari
per codificare un simbolo emesso dalla sorgente pari a:

1
PB (bi ) 
∆H = lim EB log M

k →∞ k
Q
(
b
)
B i 

40
Algoritmo di Lempel-Ziv
Appartiene alla classe dei codificatori di sorgente universali (É progettato in
modo da essere indipendente dalla statistica dell'ingresso)
1. La sequenza d'ingresso é scomposta in blocchi di lunghezza variabile, chiamati
frasi.
2. Ogni volta che un blocco di lettere differisce da uno dei blocchi precedenti per
l'ultima lettera esso viene inserito nel dizionario.
3. Tutte le frasi sono riportate nel dizionario unitamente all'informazione sulle
locazioni in cui ciascuna frase compare.
4. nel
codificare quindi una nuova frase, l'algoritmo registra nel dizionario la
locazione da cui essa inizia e la nuova lettera.
41
Algoritmo di Lempel-Ziv
Es.:
10101101001001110101000011001110101100011011
scomposizione in frasi
1,0,10,11,01,00,100,111,010,1000,011,001,110,101,10001,1011
42
Algoritmo di Lempel-Ziv
10101101001001110101000011001110101100011011
Dizionario
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Locazione del
dizionario
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Contenuto del
dizionario
1
0
10
11
01
00
100
111
010
1000
011
001
110
101
10001
1011
Parola di
codice
00001
00000
00010
00011
00101
00100
00110
01001
01010
01110
01011
01101
01000
00111
10101
11101
43
Algoritmo di Lempel-Ziv
Le parole di codice sono determinate concatenando la locazione (in binario)
del dizionario che contiene la frase precedente che coincide sino al
penultimo carattere con quella da codificare, ed il nuovo carattere.
La locazione 0000 é impiegata per fare riferimento alla frase nulla.
44
45
Canale di comunicazione
Canale:
ai
CANALE
bj
É da considerarsi come una trasformazione (dallo spazio dei messaggi in ingresso allo spazio
dei messaggi in uscita) con corrispondenze non rigide ma probabilistiche fra ogni messaggio
possibile in ingresso ed ogni messaggio possibile in uscita (operatore stocastico)
L'operatore é descritto dalla funzione di probabilità della variabile del messaggio d'uscita
condizionata a quella del messaggio d'ingresso
46
Canale stazionario (o permanente) senza memoria
ai
CANALE
bj
Caratteristiche:
Invariante nel tempo
L'azione sul messaggio in transito si esplica simbolo per simbolo (trasformazione passopasso)
É descritto dalla Matrice di Canale
a1
a2
…
ai
…
aL
b1
PB/A(b1/a1)
PB/A(b1/a2)
…
PB/A(b1/ai)
…
PB/A(b1/aL)
b2
PB/A(b2/a1)
PB/A(b2/a2)
…
PB/A(b2/ai)
…
PB/A(b2/aL)
…
…
…
…
…
…
…
bj
PB/A(bj/a1)
PB/A(bj/a2)
…
PB/A(bj/ai)
…
PB/A(bj/aL)
…
…
…
…
…
…
…
bM
PB/A(bM/a1)
PB/A(bM/a2)
…
PB/A(bM/ai)
…
PB/A(bM/aL)
b1
a1
b2
a2
PB/A(bj/ai)
bj
ai
aL
bM
47
Tasso di informazione mutua
Osservatore
esterno
ai
bj
S
Canale
Correttore
D
Prima di osservare il simbolo in uscita dal canale lo stato di conoscenza di un osservatore
circa i risultati possibili é rappresentabile con
{PA(ai), i=1,…,L}
Dopo la ricezione del simbolo bj lo stato di conoscenza di un osservatore é rappresentabile da
{PA/B(ai/bj), i=1,…,L}
L'osservatore esterno é in grado di osservare sia ciò che é emesso dalla sorgente, sia ciò che é
emesso dal canale (con errori dovuti al rumore).
48
L'osservatore nota gli errori e trasmette le eventuali correzioni sul canale ideale
Avendo osservato bj l'osservatore esterno può ricorrere ad una codifica per gli ai che richiede
un numero medio di binit per simbolo pari a:


1
H ( A / b j ) = E A / B  log 2

P
(
a
/
b
)

A/ B
j 

L
=
∑
i =1
PA / B ( ai / b j ) log 2
1
PA / B ( ai / b j )
Il modo più efficiente di operare per l'osservatore consiste nel:
1. predisporre M codici, uno per ogni possibile valore ricevuto bj in base alle PA/B(ai/bj)
2. usare il codice corrispondente al simbolo ricevuto per inviare s
3. ul canale di correzione la codifica del simbolo ai emesso dalla sorgente.
49
I codici utilizzati dall'osservatore devono essere necessariamente istantanei.
50
Equivocazione H(A/B) del canale
Def. numero medio di binit necessari all'osservatore esterno per
rappresentare il simbolo di ingresso, ovvero per inviare la correzione

1
H ( A / B ) = EB {H ( A / b)} = E A,B  log2
PA / B ( a / b

L
=
∑∑
i =1
Nel
M
j =1
1
PA,B (ai , b j ) log 2
PA / B (ai / b j )

=
)
(1)
caso di canale ideale l'osservazione all'uscita del canale é perfetta e
quindi
PA/B(ai/bj=
aj) =δij,
51
Equivocazione H(A/B) del canale
in tal caso, coerentemente con il fatto che in tal caso l'osservatore non ha
necessità di inviare alcuna correzione, l'eq. (1) fornisce un valore nullo per
l'equivocazione.
52
Tasso di informazione mutua
Poiché
l'insieme (canale+osservatore esterno) si comporta come un canale
ideale, é naturale dire che
il
complesso fornisce una quantità di informazione media per simbolo
pari alla entropia della sorgente H(A)
l'osservatore
deve fornire, per inviare le correzioni, una quantità di
informazione media pari alla equivocazione H(A/B)
e
quindi l'osservazione di un simbolo all'uscita del canale fornisce una
quantità di informazione media per simbolo pari a
I(A;B)= H(A)- H(A/B)
53
Tasso di informazione mutua
La
quantità I(A;B) prende il nome di TASSO DI INFORMAZIONE (MUTUA) del
canale e può essere calcolata come segue

PA / B ( a / b) 
I ( A; B ) = H ( A) − H ( A / B ) = E A, B  log2
=
P
(
a
)


A
PA, B ( a, b) 

= E A, B  log2

P
(
a
)
P
(
b
)


A
B
54
Tasso di informazione mutua
Ricordando che
log 2 y ≤
1
( y − 1)
ln 2
si può verificare che
I ( A; B ) ≥ 0
con il segno di eguaglianza se e solo se
PA,B(ai,bj)= PA(ai) PB(bj)
ovvero
l'informazione
la
media ricevuta attraverso un canale é sempre non negativa
sola situazione in cui l'informazione é nulla é rappresentata dal caso in
cui i simboli di ingesso e di uscita sono indipendenti.
55
Entropia congiunta
Def.: Si definisce Entropia congiunta H(A,B) la quantità


1
H ( A, B ) = E A, B  log2
=
P
(
a
,
b
)


A, B
L M
= ∑ ∑ PA, B ( ai , b j ) log2
i =1 j =1
1
PA, B ( ai , b j )
♦ Il tasso di informazione si può quindi esprimere come segue:
I(A;B) = H(A)- H(A/B) =
= H(B)- H(B/A) =
= H(A) + H(B) - H(A,B)
56
Capacità di canale
♦ Obiettivo:
caratterizzare le potenzialità del canale prescindendo dalla distribuzione di
probabilità della sorgente a cui il canale é connesso.
♦ Definizioni:
• CAPACITÀ DI CANALE PER SIMBOLO Cs : tasso di informazione massimo
consentito da un dato canale, rispetto a tutte le possibili distribuzioni di
probabilità della sorgente
C s = Max[ I ( A; B)]
PA ( a )
[bit/coppia di simboli]
57
Capacità di canale
• CAPACITÀ DI CANALE C:
C = Cs f c
[bit/s]
con
fc: frequenza di simbolo all'uscita del canale
C
é funzione solo delle probabilità condizionate che caratterizzano il canale.
58
Capacità di un canale ideale
• Poiché per un canale ideale l'equivocazione é nulla sia ha
C = f c Max [ H ( A) − H ( A / B )] = f c Max [ H ( A)] =
PA ( a )
PA ( a )
= f c log2 L
INTENSITÀ DI EROGAZIONE DI UNA SORGENTE
• Indicata con
fS: la frequenza con la quale la sorgente eroga i messaggi
si definisce intensità di erogazione della sorgente la quantità
RS=fS H(A)
59
Capacità di un canale binario simmetrico
P
p
0
0
q =1-p
q
Q=1-P 1
1
p
Per il canale binario simmetrico si ha
P ( a0 , b0 ) = pP
P ( a1 , b0 ) = qQ
P ( a0 , b1 ) = qP
P ( a1 , b1 ) = pQ
P ( a 0 / b0 ) =
P ( a 0 / b1 ) =
pP
pP + qQ
qP
qP + pQ
P ( a1 / b0 ) =
P ( a 1 / b1 ) =
qQ
pP + qQ
pQ
qP + pQ
60
Capacità di un canale binario simmetrico
e quindi
I ( A; B ) =
1
1
∑ ∑ PA, B ( ai , b j ) log 2
i =0 j =0
=
=
PA / B ( ai / b j )
PA ( ai )
=
p
q


P p log2
+ q log2
+
pP + qQ
qP + pQ 

q
p


+ Q  q log2
+ p log2
=
pP + qQ
qP + pQ 

( p log2 p + q log2 q) +
+ ( pP + qQ ) log2
1
1
+ ( qP + pQ ) log2
=
( pP + qQ )
( qP + pQ )
61
Capacità di un canale binario simmetrico
ovvero
I ( A; B ) = H 0 ( pP + qQ ) − H 0 ( p )
con
1
1
H 0 ( x ) = x log2 + (1 − x )log2
x
1− x
Poiché H(x) é massima per x=1/2, il massimo del tasso di informazione
rispetto a P si ha per
pP + qQ =
1
2
⇒
pP + q(1 − P ) =
1
2
⇒
P=
1
2
62
Capacità per simbolo del canale binario simmetrico
• La capacità per simbolo di un canale binario simmetrico vale
Cs = 1- H0(p)
Cs
p
63
Capacità del Canale Gaussiano limitato in banda
TEOREMA.
Una sorgente analogica, stazionaria ergodica, senza memoria,
con valore atteso e momento del secondo ordine o varianza assegnati e di
valore finito, ha la massima entropia se é gaussiana.
Il problema può essere formulato come segue: determinare la funzione di
densità di probabilità p(x) tale che
Max ∫
+∞
p ( x ) −∞
p( x)log 2
1
dx
p ( x)
Con i vincoli
+∞
∫−∞ p( x)dx = 1
64
+∞
∫−∞ x p( x)dx = m
+∞ 2
x
−∞
∫
p( x)dx = m(2)
Pertanto, applicando il metodo dei moltiplicatori di Lagrange possiamo
massimizzare il funzionale seguente:
F =∫
+∞
−∞
p( x)log 2
+∞
+∞
+∞
1
dx + λ1 1 − ∫ p( x)dx  + λ2  m − ∫ xp( x)dx  + λ3  m(2) − ∫ x 2 p( x)dx 






−∞
−∞
−∞
p ( x)
determinando la funzione p che annulla la derivata parziale di F rispetto a p,
ovvero tale che
∂ +∞ 
log2 e ∫ − p( x)ln p( x) − λ1 p( x) − λ2 xp( x) − λ3 x 2 p( x)  dx = 0
∂p −∞
65
Da cui si ha:
+∞ 
1
2
p( x) − ln p( x) − λ1 − λ2 x − λ3 x  dx = 0
log 2 e ∫  −
−∞
 p( x)

Che ammette come soluzione
− ln p ( x ) − (λ1 + 1) − λ2 x − λ3 x 2 = 0
Ovvero
−(λ1 +1)−λ2 x−λ3 x2
p( x) = e
I valori dei moltiplicatori di Lagrange si ottengono imponendo il rispetto dei
vincoli, per cui si ha
p( x) =
1
2πσ
( x −m)2
−
2
e 2σ
con
66
σ 2 = m (2) − m 2
q.e.d.
67
Capacità del Canale Gaussiano limitato in banda
n[k]~ N (0, σ2N )
x[k]
I(X;Y)
y[k]
= H(Y)- H(Y/X)

1
( y − x ) 2  
2
H (Y / X ) = E
log 2 e  ln 2 πσ N +
=
Y/X 
2 
2
2
σ

N  


= log2 e  1 ln 2πσ2N + 1 ln e =
2
2

= 1 log 2 2 πeσ 2N
2
68
Capacità del Canale Gaussiano limitato in banda
Poichè
in virtù del risultato precedente, affinché H (Y) sia massima si ha:
Y~ N (0, σ2X + σ2N )
Ovvero,
poiché X e N sono statisticamente, la varianza di y è pari alla
somma delle varianze di X e N, si ha:
Y~ N (0, σ2X + σ2N )
quindi
-
σ 2X + σ 2N
1
C = f C log 2
2
σ 2N
ed essendo fC=2w si ha
69
C = w log2 (1+ SNR)
70
Teorema della codifica di canale - Canale Ideale
• Teorema: Data una sorgente con entropia H (bit/simbolo) ed un canale
ideale binario di capacità C (bit/s), é possibile codificare i messaggi in modo
da trasmettere attraverso il canale, nell'unità di tempo, un numero di simboli
di sorgente pari a
C
−ε
H
con ε piccolo a piacere. Non é possibile trasmettere nell'unità di tempo un
numero di simboli della sorgente superiore a (C/H).
71
Teorema della codifica di canale - Canale Ideale
Dim.:
condizione di codifica in tempo reale
fC
fS
fS :
=
E{n}
k
frequenza dei messaggi della sorgente
E{n}:
valore atteso del numero di simboli all'ingresso del canale
corrispondenti a k simboli emessi dalla sorgente
72
Teorema della codifica di canale - Canale Ideale
Per il Io teorema di Shannon, ∀ε > 0 , ∃ un codice ⇒
H≤
E{n}
< H +ε
k
H≤
fC
ovvero tale che
fS
< H +ε
Poiché per un canale binario ideale
C = f C log 2 L = f C
(L=2)
si ottiene
H≤
C
< H +ε
fS
ovvero
C
C
− ε < fS ≤
H
H
c.d.d.
73
Teorema della codifica di canale - Caso generale
(Shannon 1948)
Teorema:
Siano dati una sorgente con entropia H (bit/simbolo) ed un canale
binario di capacità C (bit/s).
• Se fSH<C esiste almeno un codice tale che l'uscita della sorgente possa
essere trasmessa attraverso il canale con un tasso di errore arbitrariamente
piccolo (o equivocazione arbitrariamente piccola).
• Se fSH>C é possibile codificare la sorgente in modo tale che
l'equivocazione sia minore di (fSH - C+ε) con ε piccolo a piacere. Non
esiste nessun codice tale che l'equivocazione sia minore di (fSH - C) .
74
Diseguaglianza di Fano
• Dalla precedente trattazione appare che la qualità di un canale può essere
descritta sia facendo riferimento alla probabilità d’errore che
all’equivocazione. Tali grandezze non sono tra loro indipendenti, come
mostrato dalla seguente disuguaglianza di Fano che lega tra loro la
probabilità d’errore e l’equivocazione di un canale discreto senza
memoria.
75
• Teorema: dato un canale discreto senza memoria i cui alfabeti di ingresso e
d'uscita A e B hanno lo stesso numero di simboli L e la cui probabilità
d'errore é Pe, vale la diseguaglianza
H ( A / B ) ≤ H 0 ( Pe ) + Pe log 2 ( L − 1) .
Dim.:
In base alla definizione di equivocazione si ha:

1
H ( A / B ) = E B {H ( A / b)} = E A,B  log 2
PA / B ( a / b


=
)
L
M
∑∑
i =1
j =1
PA,B ( ai , b j ) log 2
1
PA / B ( ai / b j )
76
L
=
L
∑∑
j =1
i =1
i≠ j
L
1
PA,B ( ai , b j ) log 2
+
PA / B ( ai / b j )
∑
PA,B ( a j , b j )log 2
j =1
1
PA / B ( a j / b j )
Pertanto
H ( A / B ) − H 0 ( Pe ) − Pe log 2 ( L − 1) =
L
=
L
∑∑
j =1
L
PA,B ( ai , b j ) log 2
i =1
i≠ j
L
+
L
∑∑
j =1
1
+
PA / B ( ai / b j )
i =1
i≠ j
∑
PA,B ( a j , b j )log 2
j =1
1
PA / B ( a j / b j )
L
PA, B ( ai , b j ) log 2 Pe +
∑
PA,B ( a j , b j ) log 2 (1 − Pe )
j =1
77
L
−
∑∑ P
A, B
j =1
L
=
( ai , b j ) log 2 ( L − 1)
i =1
i≠ j
L
∑∑
j =1
L
L
PA,B ( ai , b j ) log 2
i =1
i≠ j
Pe
+
( L − 1) PA / B (ai / b j )
∑
j =1
PA,B ( a j , b j )log 2
1 − Pe
PA / B ( a j / b j )
Ricordando che
log 2 y ≤
1
( y − 1)
ln 2
si ha:
78
1
H ( A / B ) − H 0 ( Pe ) − Pe log 2 ( L − 1) ≤
ln 2
L
+
∑
j =1





L
L
j =1
i =1
i≠ j
∑∑


Pe
PA, B ( ai , b j ) 
− 1
L
−
1
P
(
a
/
b
)
(
)
A/ B
i
j



 1 − Pe

PA, B ( a j , b j ) 
− 1 
 PA / B ( a j / b j ) 

1
H ( A / B ) − H 0 ( Pe ) − Pe log 2 ( L − 1) ≤
ln 2
L
+ (1 − Pe )
∑
j =1

 Pe

 ( L − 1)

L
PB (b j ) −
∑
j =1
L
L
∑∑
j =1
i =1
i≠ j
L
PB (b j ) −
L
∑∑
j =1
PA, B ( ai , b j )
i =1
i≠ j


PA, B ( a j , b j ) 


79
H ( A / B ) − H 0 ( Pe ) − Pe log 2 ( L − 1) ≤
1
ln 2

 Pe
( L − 1)

L
−
1
)
(

L
∑
L
PB (b j ) + (1 − Pe )
j =1
∑
i =1


PB (b j ) − 1


Quindi
H ( A / B ) − H 0 ( Pe ) − Pe log 2 ( L − 1) ≤ 0 .
c.d.d.
80
6
L=2
L=4
L=8
L=16
L=32
5
4
3
2
1
0
0
0 ,2
0 ,4
0 ,6
0 ,8
1
81
RATE DISTORTION THEORY
82
QUANTIZZAZIONE
Una sorgente analogica presenta, per definizione, una cardinalità dello spazio
di messaggio almeno pari a quella del continuo. Pertanto il ricorso ad una sua
rappresentazione in forma numerica, ad esempio per mezzo di un numero finito
di cifre binarie, richiede l’analisi della bontà dell’approssimazione.
Il primo passo concettuale consiste nell’introduzione di una misura di
distorsione d ( x, xˆ ) (non negativa) che definisce il costo pagato nel
rappresentare il dato originale x con una sua rappresentazione x̂ discreta.
ˆ → R+
d :X×X
Una volta specificata la funzione di distorsione, il problema di base può essere
formulato in una delle due forme seguenti:
83
• Data una sorgente caratterizzata da una propria distribuzione ed una classe
di rappresentazioni xˆ ( x; R ) che utilizzano un numero preassegnato R di bit
con associata distorsione media D(R)
D ( R ) = EX {d [ x, xˆ ( x; R ) ]}
determinare quanto vale il minimo valore di distorsione media D(R)
ottenibile e la rappresentazione che consente di ottenere tale valore.
• Data una sorgente caratterizzata da una propria distribuzione ed una
funzione di distorsione, determinare quanto vale il minimo numero di bit R
necessario per garantire che la distorsione media non superi un livello
preassegnato.
84
Quantizzazione scalare
Consideriamo inizialmente il caso della quantizzazione scalare.
L’asse reale è partizionato in
N=2R intervalli
{Vi = (ξi −1, ξi ] , i = 1,K, N }
consecutivi, con ξ 0 = −∞ e
xˆi
ξ1
ξ2
ξi-1 ξi
ξN-1
ξN = ∞ .
Il quantizzatore scalare associa il
valore xˆi ad ogni punto
dell’intervallo Vi.
85
La distorsione media vale pertanto
N
D( R) = ∑ ∫ d ( x, xˆi ) p X ( x)dx
i =1
• L’ottimizzazione
della
Vi
regola
di
quantizzazione
richiede
sia
la
determinazione dei valori quantizzati, sia l’individuazione della partizione.
• Consideriamo inizialmente, per semplicità, l’ottimizzazione dei valori
quantizzati nel caso in cui la partizione sia fissata ed esaminiamo in
particolare il caso di distorsione quadratica.
86
Quantizzazione scalare e distorsione quadratica
Nel caso di funzione di distorsione di tipo quadratico si ha:
N
2
x − xˆi ) p X ( x)dx
(
V
D( R ) = ∑ ∫
i =1
i
Pertanto, per una partizione assegnata il livello di quantizzazione ottimo si
ottiene imponendo l’annullamento di
∂D( R)
= −2∫ ( x − xˆi ) p X ( x)dx
Vi
∂xˆi
Da cui si ha
xp X ( x) dx
∫
p X ( x)
V
xˆi =
=∫ x
dx
V
∫V p X ( x)dx
∫V p X ( x ')dx '
i
i
i
i
87
• Il valore ottimo per un dato intervallo Vi è quindi dato dal valore atteso
condizionato all’evento che il valore osservato cada in tale intervallo.
• Esso si riduce, ad esempio, al punto medio dell’intervallo nel caso in cui la
funzione di densità di probabilità sia costante nell’intervallo Vi.
88
Quantizzazione scalare Max-Lloyd
L’algoritmo di Max-Lloyd fornisce un procedimento iterativo per la
determinazione del quantizzatore ottimo per un’assegnata funzione di densità
di probabilità nel caso di funzione di distorsione di tipo quadratico.
Si
{
assume
(
che
sia
disponibile
un’approssimazione
iniziale
}
(0) 
Vi(0) = ξi(0)
,
ξ
−1 i  , i = 1,K, N della partizione ottima.
• Tale approssimazione può essere ottenuta ad esempio,
suddividendo
l’intervallo di variabilità della grandezza fisica d’interesse in parti uguali.
89
Algoritmo Max-Lloyd
1. Inizializza k=0
2. Ripeti
ξ i( k )
a. xˆi( k +1) =
( k +1)
b.ξi
∫ξ
(k )
i −1
(k )
i
ξ
∫ξ
(k )
i −1
xp X ( x ) dx
p X ( x ) dx
xˆi( k +1) + xˆi(+k1+1)
=
2
c. k=k+1
{
}
( k +1)
− ξi( k ) > ∆ξ
Sino a quando Max ξi
i
90
QUANTIZZAZIONE: Sorgente con distribuzione uniforme
Si consideri il caso in cui i valori emessi dalla sorgente siano distribuiti
uniformemente nell’intervallo [-A, A], cosicchè
 1
−A ≤ x ≤ A
1

p X ( x) =
rect2 A ( x ) =  2 A
2A
 0
altrimenti
In tal caso, indicato con Qi l’ampiezza dell’i-esimo intervallo, si ha
xˆi = ξ −1 +
Qi
2
2
1 N ξi−1 +Qi 
Qi 
D( R) =
x − ξi −1 +  dx
∑

∫
ξ
2 A i =1 i−1 
2 
91
Qi
1 N 2 2
=
x dx
∑
Q
∫
2 A i =1 −
i
2
1 N Qi3
=
∑
2 A i =1 12
Con il vincolo
N
∑ Qi = 2 A
i =1
Pertanto, applicando il metodo dei moltiplicatori di Lagrange, posto
N


1 N Qi3
J=
+ λ  2 A − ∑ Qi 
∑
2 A i =1 12
i =1


si ha
92
∂J Qi2
=
−λ = 0
∂Qi 8 A
si ha
Qi = 8λ A
Il valore del moltiplicatore può essere ottenuto imponendo il vincolo
N
∑
8λ A =2 A
λ=
A
2N 2
i =1
Da cui segue che
Ovvero la partizione ottima corrisponde a intervalli tutti uguali con ampiezza
Qi =
2A
N
93
E la distorsione complessiva vale
1 N Qi3
1
8 A3
A2
A2 −2 R
=
=
=
2
D( R) =
N
∑
3
2
2 A i =1 12 2 A 12 N
3
3N
Ovvero, esprimendo la distorsione in dB si ha
[ D( R)]dB = 10log10
A2
A2
− ( 20log10 2 ) × R ≅ 10log10
− 6R
3
3
Si osserva quindi che in questo caso la distorsione decresce di circa 6 dB per
ogni bit impiegato nel convertitore.
94
CODIFICA PCM DELLA FONIA (ITU G.711)
La raccomandazione ITU G.711 specifica le modalità secondo le quali deve
essere rappresentato il segnale vocale per servizi di fonia offerti dalle reti
telefoniche pubbliche internazionali.
• Il valore nominale raccomandato per il ritmo di campionamento è di 8000
campioni al secondo con una tolleranza di ± 50 parti per milione (ppm).
• Ogni campione è rappresentato con 8 bit.
• La quantizzazione è non uniforme ed è realizzata come cascata di un
quantizzatore
uniforme
e
di
una
non
linearità
per
la
compressione/espansione della dinamica.
95
• La raccomandazione specifica due non linearità indicate rispettivamente
come legge A e legge µ.
• La legge µ si applica negli USA e in Giappone ed è caratterizzata dalla
seguente espressione analitica
Fµ ( x) = sign( x)
ln (1 + µ x )
ln (1 + µ )
,
x < 1.
Il quantizzatore uniforme impiega 14 bit.
s(t)
Campionatore
Fc=8000
Quantizzatore
uniforme
a
14 bit
Legge µ
Fµ ( x) = sign( x)
ln (1 + µ x )
ln (1 + µ )
,
x <1
sPCM[k]
96
• La legge A si applica in Europa e nel resto del mondo (ad esclusione di
USA e Giappone) ed è caratterizzata dalla seguente espressione analitica

Ax
sign
(
x
)

1 + ln A
FA ( x) = 
 sign( x) 1 + ln A x

1 + ln A
0 ≤ x < A−1
A−1 ≤ x ≤ 1
Il quantizzatore uniforme impiega 13 bit.
s(t)
Campionatore
Fc=8000
Quantizzatore
uniforme
a
13 bit
Legge A

Ax
 sign( x)
1 + ln A
FA ( x) = 
1
 sign( x) + ln A x

1 + ln A
0 ≤ x < A−1
A−1 ≤ x ≤ 1
sPCM[k]
97
98
QUANTIZZAZIONE VETTORIALE
Un quantizzatore vettoriale associa ad ogni vettore dello spazio a k dimensioni
uno fra N possibili vettori C={c1,c2,…,cN} che costituiscono il dizionario
(codebook).
Ad ogni parola di codice ci, è associata la regione di Voronoi i cui punti
{
}
soddisfano la condizione Vi = x ∈ R : x − ci ≤ x − c j , ∀j ≠ i
k
L’insieme delle regioni di Voronoi costituisce una partizione di Rk .
99
100
ALGORITMO LBG
Nel 1980, Linde, Buzo, and Gray (LBG) hanno proposto un algoritmo per la
progettazione di un quantizzatore vettoriale a partire da una sequenza di
addestramento
(training sequence) il cui impiego consente di evitare le
operazioni di integrazione multidimensionale richieste dall’uso diretto della
funzione di densità di probabilità.
Nel caso ad esempio dei segnali vocali la sequenza di addestramento potrebbe
essere estratta a partire da registrazioni di conversazioni telefoniche tipiche.
Si assume che il numero di casi che costituiscono la
sequenza di
addestramento sia sufficientemente grande da poter applicare le leggi dei
grandi numeri e sostituire le medie d’insieme con le medie calcolate sul
numero finito di realizzazioni disponibili.
101
ALGORITMO LBG
Il problema affrontato da Linde, Buzo, and Gray può essere schematizzato
come segue:
Dato un insieme di M vettori di addestramento T=(x1x2,xM), trovare il
dizionario C={c1,c2,…,cN} e la partizione V={V1,V2,…,VN} = tale che la sia
minima distorsione media
1 M
2
D=
x
−
Q
(
x
)
∑ m
m
Mk m=1
essendo Q ( x m ) il vettore del dizionario associato a xm:
Q ( x m ) = c n , if x m ∈ Vn
102
IV. Criteri di ottimalità
Indicato con Sn l’insieme dei vettori di addestramento che cadono in Vn:
S n = {x m x m ∈ Vn , m = 1,K , M }
se C e V sono soluzioni
del problema devono essere soddisfatte le due
condizioni seguenti
Nearest Neighbor Condition:
2
∀x m ∈ S n : x m − c n ≤ x m − c j , ∀j ≠ n
2
Centroid Condition:
cn
∑
=
∑
x m∈S n
xm
x m∈S n
1
, n = 1,K, N
103
IV. Algoritmo
L’algoritmo si compone di tre parti
• Inizializzazione
• Raddoppio degli elementi della partizione tramite suddivisione
• Raffinamento iterativo della partizione
104
Inizializzazione
• La partizione iniziale è costituita da un unico elemento coincidente con
Rk.
• Il dizionario ha un solo elemento costituito dal centroide dei vettori della
sequenza di addestramento
N=1
1
c =
M
*
1
M
∑x
m =1
m
1 M
*
D =
x
−
c
∑ m 1
Mk m=1
*
av
2
105
• Raddoppio degli elementi della partizione tramite suddivisione
1. Suddivisione
1. Per i=1,2,…,N
(0)
*
i. ci = ci (1+ ∈)
(0)
*
ii. ci + N = ci (1− ∈)
2. Poni N=2N
106
• Raffinamento iterativo della partizione
i=0
Dav(0) = Dav*
Ripeti
i. Per m=1,2,…,M
{
(i )
Q(i ) (xm ) = Arg Min
x
−
c
m
n
(i )
cn
}
ii. Aggiornamento partizione
{
}
Sn(i ) = xm Q(i ) (xm ) = c(ni ) , n = 1,K, N
iii. Aggiornamento del dizionario
107
c
( i +1)
n
∑
=
∑
x m∈S n( i )
xm
x m∈S n( i )
1
, n = 1,K, N
iv. Aggiornamento distorsione
2
1 M
(i )
D =
x m − Q (x m )
∑
Mk m=1
(i )
av
v. i=i+1
sino a quando
Dav(i ) − Dav(i−1)
>∈
( i −1)
Dav
c*n = c(ni )
108
VI. Two-Dimensional Animation
VIII. References
1.
2.
3.
4.
A. Gersho and R. M. Gray, Vector Quantization and Signal Compression.
H. Abut, Vector Quantization.
R. M. Gray, ``Vector Quantization,'' IEEE ASSP Magazine, pp. 4--29, April 1984.
Y. Linde, A. Buzo, and R. M. Gray, ``An Algorithm for Vector Quantizer Design,'' IEEE Transactions on Communications, pp. 702--710, January 1980.
109
CODIFICA DI CANALE
110
Codificatore lineare a blocchi
- In un codice lineare a blocchi la sequenza in ingresso viene suddivisa in
blocchi di lunghezza costante k,
- per ogni blocco in ingresso di lunghezza k, il codificatore genera un
blocco di n cifre in uscita combinando linearmente le k cifre del blocco
sorgente
registro d'ingresso
x
xmk
cmn
…
xm2
xm1
…
cm2
cm1
c
registro d'uscita
111
Codificatore lineare a blocchi
Un codice lineare a blocchi (n,k) e' definito quindi dalla relazione
Xm
Cm = X mG
Cm
in cui
- Ingresso:
- Uscita:
[
C m = [cm1
X m = xm1
]
cmn ]
xm 2 K xmk
cm 2
K
- G : Matrice di generazione del codice
 ← g1 →   g11 g12

 
←
g
→

2   g21 g22
G=
=
...
 ...   ...

 
←
→
g

  gk1 gk 2
k
g1n 

... g2n 

... ... 

... gkn 
...
112
Codificatore lineare a blocchi
Esempio: Il codice di Hamming (7,4)
1
0
G=
0

0
x
xm4
xm3
xm2
xm1
0 0 0 1 0 1
1 0 0 1 1 1

0 1 0 1 1 0

0 0 1 0 1 1
c
cm7
ingresso
0000
0001
0010
0011
0100
0101
0110
0111
Codice
0000 000
0001 011
0010 110
0011 101
0100 111
0101 100
0110 001
0111 010
Peso
0
3
3
4
4
3
3
4
cm6
cm5
cm4
Ingresso
1000
1001
1010
1011
1100
1101
1110
1111
cm3
cm2
cm1
Codice
Peso
1000 101
3
1001 110
4
1010 011
4
1011 000
3
1100 010
3
1101 001
4
1110 100
4
1111 111
7
113
Codificatore lineare a blocchi
Poiché
Cm=XmG
per ottenere l'uscita del codificatore è sufficiente sommare le righe
corrispondenti agli 1 contenuti nella sequenza d'ingresso
Esempio: Dato il codice di Hamming (7,4) calcolare l'uscita per Xm=[1100]
1
0
C m = [1 1 0 0 ]
0

0
0 0 0 1 0 1
1 0 0 1 1 1

0 1 0 1 1 0

0 0 1 0 1 1
1 0 0 0 1 0 1
0 1 0 0 1 1 1
1 1 0 0 0 1 0
114
Codificatore lineare a blocchi
Def.:
Peso di Hamming: numero di 1 contenuti in una parola di codice
Def.:
distanza di Hamming fra due parole di codice: numero di
posizioni in cui le parole sono diverse.
Def.:
distanza minima del codice: minimo delle distanze di Hamming
tra le parole che compongono il codice
115
Codici sistematici
Def.: Un codice lineare (n,k) e' detto sistematico se le prime k cifre della
parola di codice sono una replica delle cifre d'ingresso e le rimanenti (n-k)
sono dei controlli di parità sulle k cifre d'informazione, ovvero se la sua
matrice di generazione ha la forma seguente:
1

0
G = I k P] = 
...

 0
[
0 ...
0 p11
p12
...
0 p 21
... ... ... ...
p22 ...
0 ... 1 pk1
pk 2 ...
1 ...
...
...
p1n − k 

p1n − k 

... 

pkn − k 
116
Codici sistematici
Proprietà 1.
Proprietà 2.
Proprietà 3.
Proprietà 4.
Proprietà 5.
Ogni parola di codice è una somma di righe della matrice
generatrice
Il codice a blocco è formato da tutte le possibili somme
delle righe della matrice generatrice
La somma di due parole di codice è ancora una parola di
codice
La sequenza di tutti zeri è sempre una parola di codice di
un codice a controllo di parità
La distanza minima di un codice a blocco lineare è il peso
minimo delle sue parole di codice non nulle.
117
Codici sistematici
Proprietà 6.
Da un punto di vista algebrico le k righe della matrice
generatrice costituisco una base del sottospazio costituito
dalle 2k parole di codice
Proprietà 7.
La matrice di un codice lineare a blocco può essere ridotta,
tramite operazioni sulle righe e permutazioni sulle
colonne, alla forma sistematica
118
Rivelazione e correzione d'errore per i codici a blocco
Siano
Cm:
parola di codice trasmessa
Y:
parola di codice ricevuta
In generale Y può essere posto nella forma seguente
Y= Cm+ e
con
e:
vettore di errore binario arbitrario
Il decodificatore confronta le (n-k) cifre di controllo di parità con il
risultato dei controlli effettuati sulle prime k cifre ricevute.
Viene rivelato un errore quando almeno uno degli (n-k) controlli fallisce.
119
Rivelazione e correzione d'errore per i codici a blocco
Def.:
Si definisce sindrome il vettore S a (n-k) componenti la cui
componente i-esima vale 1 se il controllo di parità i-esimo è fallito e 0
altrimenti.
120
Codice duale di un codice sistematico
Dato un codice lineare a blocchi (n, k), ad esso e' associato un codice duale
a blocco (n, n-k) il cui sottospazio costituito dalle 2n-k parole di codice è
ortogonale al sottospazio costituito dalle 2k parole del codice (n,k).
Sia H la matrice di generazione del codice duale. Poiché ogni parola di
codice Cm e' ortogonale ad ogni parola del codice duale, vale la condizione
XmG(ZmH)T =0
ovvero
XmGHT(Zm)T =0
Poiché tale condizione deve valere per ogni Xm e per ogni Zm, si ha
GHT =0
121
Matrice di controllo di parità
Per un codice sistematico posto
H = [ A | B]
si ha:
 AT 
[I k | P]  T  = I k AT + PBT = 0 ⇒ AT = −P,
B 
BT = I n−k
ovvero (poiché il segno negativo può essere omesso per codici binari):
H = [PT | In −k ]
H prende il nome di matrice di controllo di parità
122
Matrice di controllo di parità
Dato il codice di Hamming (7,4)
1
0
G=
0

0
0 0 0 1 0 1
1 0 0 1 1 1

0 1 0 1 1 0

0 0 1 0 1 1
la matrice di controllo di parità vale
1 1 1 0 1 0 0
H = 0 1 1 1 0 1 0


 1 1 0 1 0 0 1 
123
Matrice di controllo di parità
Data la matrice di controllo di parità vale la proprietà:
S = YH
T
essendo S la sindrome del vettore d'errore. Infatti
YH = [ y1 ... yk
T
yk +1
 P 
... yn ]  
 I n −k 
e quindi YHT è un vettore la cui componente i-esima vale 0 solo se il
risultato del controllo di parità i-esimo coincide con la (k+i)-esima cifra
ricevuta
Inoltre
S=YHT= CmHT+ eHT=eHT
124
Rivelazione e correzione dell'errore
La sindrome associata ad una sequenza Y è un vettore nullo se e solo se Y è
una parola di codice
Il decodificatore può rivelare tutti gli errori del canale che non siano parole
di codice
Data una parola di codice esistono 2k diverse sequenze che danno la stessa
sindrome
La sola sindrome non consente di determinare quindi quale sequenza
di errore si sia verificata
125
Rivelazione e correzione dell'errore per canali binari simmetrici
Per un canale binario simmetrico si ha
P(Y / C
(i )
)= p
n−d i
(1 − p )
di
in cui di è la distanza di Hamming tra Y e la i-esima parola di codice C(i).
Quindi, date due parole di codice C(i) e C(h) , per il logaritmo del rapporto
di verosimiglianza si ha
ln
P(Y / C
P(Y / C
(i )
(h)
)
= ( n − d i ) ln p + d i ln(1 − p ) − ( n − d h ) ln p + d h ln(1 − p )
)
p
= ( d h − d i ) ln
1− p
126
Rivelazione e correzione dell'errore per canali binari simmetrici
Pertanto, poiché per funzione di costo uniforme e simboli equiprobabili si
ha
p
C
(i )
>
( d h − d i ) ln
0
<
1− p
(h)
C
se p>1/2 la verifica del rapporto di verosimiglianza porta a scegliere, tra le
due ipotesi, quella a cui corrisponde la minima distanza di Hamming (se
p<1/2 viene selezionata l'ipotesi a cui corrisponde la massima distanza di
Hamming)
127
Rivelazione e correzione dell'errore per canali binari simmetrici
Posto
Y= C(i)+ e(i)
la distanza di hamming di tra Ye C(i) è pari al peso dell'errore e(i)
pertanto se p>1/2 la regola di decisione ottima associa selezionata
la parola di codice corrispondente all'errore di peso minimo.
128
Rivelazione e correzione d'errore per i codici a blocco
TEOREMA
Un codice a blocco lineare (n,k) con distanza minima dmin può correggere
tutti i vettori d'errore che non contengano più di
t =  ( d min − 1) / 2 
errori. Tale codice è detto a correzione di t errori.
Dim.: la regola di decisione ottima fa corrispondere una data parola di
codice a tutte le sequenze ricevibili che sono più vicine ad essa piuttosto che
ad una delle altre parole di codice. Un vettore d'errore con non più di
t =  ( d min − 1) / 2  errori genera una sequenza ricevuta che cade all'interno
della regione corretta.pertanto la correzione dell'errore è possibile
129
Rivelazione e correzione d'errore per i codici a blocco
Poiché dato un codice ed una parola ricevibile è possibile calcolare la
parola di codice più vicina, l'uso diretto dell'algoritmo di decodifica a
distanza minima richiede la memorizzazione di una tavola con 2n ingressi
dmin
2
3
4
5
6
7
errori
corretti
0
1
1
2
2
3
errori
rilevati
1
2
3
4
5
6
130
Rivelazione e correzione d'errore per i codici a blocco
Un approccio più efficiente consiste nell'associare ad ogni sindrome il
vettore d'errore di peso minimo che possa produrre la sindrome osservata.
Aggiungendo ad una parola di codice una parola non di codice la
somma ha la stessa sindrome della parola non di codice
S= CmHT+ eHT=eHT
Per ogni sindrome S esistono 2k parole di codice che la generano, che
prendono il nome di coinsieme
L'elemento del coinsieme di peso minimo prende il nome di
rappresentante del coinsieme
131
Schieramento standard
dato il codice (6,3) associato alla matrice
1 0 0 1 1 1 
G = 0 1 0 1 1 0


 0 0 1 1 0 1 
a cui corrisponde
1 1 1 1 0 0 
H = 1 1 0 0 1 0 


1 0 1 0 0 1 
ad esso è associato lo schieramento standard
sindrome
000
111
110
101
100
010
001
011
000000
100000
010000
001000
000100
000010
000001
000011
100111
000111
110111
101111
100011
100101
100110
100111
010110
110110
000110
011110
010010
010100
010111
010101
Codice
001101
101101
011101
000101
001001
001111
001100
001110
110001
010001
100001
111001
110101
110011
110000
110010
101010
001010
111010
100010
101110
101000
101011
101001
011011
111011
001011
010011
011111
011001
011010
011000
111100
011100
101100
110100
111000
111110
111101
111111
132
Schieramento standard
la prima riga dello schieramento standard è costituita dalle 2k parole di
codice riordinate per peso crescente da sinistra verso destra
le successive righe sono costituite dagli altri coinsiemi
per ciascuna riga, a sinistra si scrive il rappresentante di coinsieme
le altre parole si ottengono sommando a ciascuna parola di codice della
prima riga, il rappresentante di coinsieme
a margine di ciascuna riga si annota inoltre la sindrome corrispondente
133
Algoritmo per la correzione degli errori
FUORI LINEA
costruzione della tabella di decodifica a 2n-k ingressi corrispondenti alle diverse
sindromi contenente
(sindrome, rappresentante di coinsieme)
ovvero
(Si,ei),
i=1,…,2 n-k
134
Algoritmo per la correzione degli errori
IN LINEA
1. calcolo della sindrome S della sequenza ricevuta
2. ricerca nella teballa di decodifica della riga corrispondente
ê m → rappresent anti di coinsieme associato
3. stima della sequenza trasmessa come
ˆ = Y + eˆ
C
m
m
135
Algoritmo per la correzione degli errori
Dato il codice di Hamming (7,4) si ha
Sindrome
000
001
010
011
100
101
110
111
Rappresentante di
coinsieme
0000000
0000001
0000010
0001000
0000100
1000000
0010000
0100000
cifra errata
Nessuna
7
6
4
5
1
3
2
136
Algoritmo per la correzione degli errori
pertanto se Y=(1101010) si ha
1
1

1
T
S = YH = [1 1 0 1 0 1 0 ] 0
1

0
 0
0 1
1 1

1 0

1 1  = [ 0 1 1]
0 0

1 0
0 1 
il rappresentante di coinsieme è [0 0 0 1 0 0 0] e quindi
ˆ = [1 1 0 1 0 1 0 ] + [0 0 0 1 0 0 0 ] =
C
m
= [1 1 0 0 0 1 0 ]
137
Codici Convoluzionali
Un
codificatore binario convoluzionale (n, k) con lunghezza di vincolo N è
un sistema a memoria finita che genera n cifre binarie per ogni k cifre di
messaggio presentate al suo ingresso.
Può
essere pensato come una macchina sequenziale costituita da un registro
a scorrimento a Nk posizioni, suddivise in N stadi di k elementi, un circuito
combinatorio di uscita e un convertitore parallelo serie.
Nk
Zm
1
2
…
k
1
elementi
2
…
k
1
2
…
k
Xm
1
2
…
…
…
…
…
n
138
Codici Convoluzionali
Il
diagramma di connessione tra le celle del registro a scorrimento ed i
sommatori
modulo-2
è
specificato
dall'insieme
dei
coefficienti
{g ij , i = 1,..., kN , j = 1,..., n }
Tali
coefficienti possono essere riorganizzati in N sottomatrici G1, G2, …,
GN, che descrivono le connessioni del i-esimo stadio del registro a
scorrimento con le n celle del registro di uscita.
139
Codici Convoluzionali
Diagramma degli stati di un codice (3,1)
Diagramma a traliccio
000
(00)
111
000
001
110
(10)
(01)
010
(11)
110
011
011
100
001
111
100
010
101
101
140
Decodifica a massima verosimiglianza
Si indichino con St lo stato del codificatore convoluzionale, con St∈{0,1,…,M-1}, con M=2Nk, e
con Xt l’uscita del sistema nell’istante t.
Si indichi inoltre con
S tt ' = ( S t , S t +1 ,..., S t ' −1 , S t ' )
la successione degli stati dall’istante t, all’istante t’, e con
X tt ' = ( X t , X t +1 ,..., X t ' −1 , X t ' )
la successione delle uscite dall’istante t, all’istante t’.
Nel seguito, per semplicità e compattezza, si assume che l’ingresso del codificatore
convoluzionale sia costituito dall’uscita di un codificatore (di sorgente) entropico, cosicché i
simboli binari in ingresso possano essere considerati statisticamente indipendenti, identicamente
distribuiti ed equiprobabili.
La sorgente parte dallo stato iniziale S0=0 e ritorna nello stesso stato all’istante finale τ.
Si assume infine che il canale di comunicazione sia un canale senza memoria per cui la
probabilità condizionata della successione ricevuta dal ricevitore
141
Y1τ = (Y1 , Y2 ,..., Yτ −1 , Yτ )
vale
{
}
τ
{
}
τ
Pr Y1 S1 = ∏ Pr Y j S j , S j −1 = ∏ R Y , X ( S j , S j −1 )  .
τ
τ
j =1
j =1
L’obiettivo è quello di calcolare la successione degli stati tale che

Pr {Sτ1 , Y1τ } 


 Max Pr Sτ , Yτ 
τ
τ


Sˆ 1 = Arg  Max
Pr
S
|
Y
=
Arg
Max
=
Arg
{
}
{ 1 1 }
1
1
τ

 S1τ
 Sτ1
Pr {Y1τ } 
 S1
τ
A tal fine si osservi che
Pr {S τ1 , Y1τ } = Pr {Yτ | S 1τ , Y1τ −1 } Pr {S 1τ , Y1τ −1 }
= Pr {Yτ | S τ1 , Y1τ −1 } Pr {Sτ | S 1τ −1 , Y1τ −1 } Pr {S 1τ −1 , Y1τ −1 }
Poichè il sistema è markoviano, se lo stato Sτ−1 è noto gli eventi che si producono dopo l’istante
τ-1 non dipendono dalle uscite del sistema sino all’istante τ-1. Pertanto
Pr {Yτ | Sτ1 , Y1τ −1} = Pr {Yτ | Sτ , Sτ −1} = R Yτ , X ( Sτ , Sτ −1 ) 
142
Pr {Sτ | S τ1 −1 , Y1τ −1 } = Pr {Sτ | Sτ −1 }
e quindi
Pr {S τ1 , Y1τ } = Pr {Yτ | Sτ , Sτ −1 } Pr {Sτ | Sτ −1 } Pr {S1τ −1 , Y1τ −1 }
Ovvero riapplicando iterativamente la procedura si ha
τ
Pr {S1 , Y1 } = ∏ Pr {Yt | St , St −1} Pr {St | St −1}
τ
τ
t =1
τ
Pr {S1 , Y1 } = ∏ R Yt , X ( St , St −1 )  Pr {St | St −1}
τ
τ
t =1
Data
una sequenza ricevuta
Y1τ
di lunghezza τ, a cui corrisponde un cammino
di lunghezza τ sul traliccio, il decodificatore ottimo a massima
verosimiglianza deve scegliere il cammino del traliccio per il quale risulti
massima la probabilità condizionata
Pr {Sτ1 , Y1τ } ,
ovvero il suo logaritmo.
143
Decodifica a massima verosimiglianza
Considerato
che ciascuno dei 2kN stati in cui si può trovare il sistema
ammette solo 2k possibili successori. Pertanto, indicato con T(m) l’insieme
dei successori dello stato m-esimo, nel caso in cui la sequenza in ingresso al
codificatore convoluzionale sia una sequenza i.i.d. binaria con simboli
equiprobabili, la probabilità di transizione vale:
2− k
Pr {St = m | St −1 = m '} = 
 0
Conseguentemente,
m ∈ T ( m ')
altrimenti
all’istante t sono possibili solo 2(k+1)N transizioni. Nel
seguito indicheremo con r l’indice che identifica le transizioni ammissibili
e con
Xt( r ) l’uscita
corrispondente ovvero la sequenza di n cifre binarie
relativa al cammino r-esimo del traliccio che congiunge gli stati St e St-1 .
144
Pertanto
il decodificatore ottimo deve trovare il cammino per il quale
τ
Max
Pr {S1 , Y1 } = Max
2
∏ R Yt , X ( St , St−1 ) Pr {St | St−1} = Max
τ
τ
(r )
τ
τ
S1
S1
Ovvero
−k
Xt
t =1
(r )

R
Y
,
X
∏  t t 
t =1
per cui
τ
Max
(r )
{X t
O
τ
lnR  Y , X
∑
τ}
,t =1,...,
t =1
t
(r )
t

equivalentemente
τ
(r )

Min
−
ln
R
Y
,
X
∑  t t 
(r )
{ Xt
,t =1,...,τ
}
t =1
145
Decodifica a massima verosimiglianza: canale binario simmetrico
• Indicando con
d t( r ) la
distanza di Hamming tra le due sequenze
Yt
e
Xt( r ) ,
per
un canale binario simmetrico con probabilità di rivelazione corretta p si ha:
P ( Yt , X
(r )
t
)= p
n − dl( r )
(1 − p)
dl( r )
e quindi
ln R  Yt , Xt( r )  =  n − dt( r )  ln p + dt( r ) ln(1 − p) =
= − dt( r ) ln
p
+ n ln(1 − p) = −α dt( r ) − β
1− p
• Pertanto se p>1/2, α>0 e il problema si riduce a
τ
Min
(r )
{X t
,t =1,...,τ
}
α ∑ d t( r )
t =1
146
Decodifica a massima verosimiglianza: canale gaussiano additivo
• Nel caso in cui il canale sia caratterizzato da un rumore gaussiano additivo
bianco, con varianza σ N2 si ha:
p ( Yt , X
(r )
t
)=
1
( 2πσ )
2
N
n
2
 X( r ) − Y
t
t

exp −
2
σ
2
N

2




e quindi
X
− ln R  Yt , X  =
(r )
t
(r )
t
− Yt
2
2σ N2
n
+ ln 2πσ N2
2
• Pertanto il problema si riduce a
τ
Min
(r )
{X t
,t =1,...,τ
∑
} t =1
Xt( r ) − Yt
2
147
Decodifica a massima verosimiglianza
quindi,
tralasciando le costanti non essenziali il problema si riduce alla
ricerca del cammino che rende minimo
τ
∑ Vt( r )
t =1
Con
Canale binario simmetrico Vt( r ) = dt( r )
Canale gaussiano
Vt
(r )
=
Xt( r )
− Yt
2
148
Come
era intuitivo, la decodifica a massa verosimiglianza, richiede nel caso
del canale discreto binario simmetrico la minimizzazione della distanza di
Hamming fra la sequenza ricevuta e quella che sarebbe stata ricevuta in
assenza di errore in corrispondenza al singolo cammino del traliccio del
codice.
Nel
caso del canale gaussiano additivo richiede la minimizzazione della
distanza euclidea (norma L2) fra la sequenza ricevuta e quella che sarebbe
stata ricevuta in assenza di rumore in corrispondenza al singolo cammino del
traliccio del codice.
149
Per
la ricerca del minimo di tale funzionale può essere impiegato l'algoritmo
di Viterbi (1969), essendo la metrica di ogni ramo la distanza di Hamming tra
le sequenze binarie.
150
Algoritmo di Viterbi (1969) per stato iniziale noto
k
Denotiamo ciascuno degli M=2 stati con il numero d'ordine corrispondente
1. Passo:
1.1. Il decodificatore considera tutti gli MN cammini relativi ai primi N rami
del traliccio che si dipartono dal nodo iniziale, supposto in questo caso
(r )
noto, e computa le funzioni Vt (St −1, St ), relative a ciascun ramo ovvero
•
(
canale gaussiano additivo
•
)
nel caso di decisione soft: − ln p Yt Xt( r ) , ed in particolare nel caso di
Xt( r )
− Yt
2
(r)
nel caso di decisione hard: le distanze di Hamming d l
151
•
Esempio per k=1, N=2
110
l=0
s1
s2
s3
s4
000
111
001
110
011
010 100
101
111
l=1
l=2
s1
2
3 5
s2
1
0 2
1
2
s3
s4
011
001
l=3
000
l=4
000
l=5
000
l=6
l=7
2 3
152
Algoritmo di Viterbi (1969) per stato iniziale noto
1.2. Per analogia con quanto accade nei passi successivi dell’algoritmo
ciascuna delle MN sottosequenze di stati corrispondente ad un cammino
che si diparte dal nodo iniziale
viene indicata con il termine di
superstite. Per ciascun superstite viene calcolata la metrica relativa al
cammino associato sommando le metriche dei singoli rami
Stato finale
S1
S2
S3
S4
Superstite
S1S1
S1 S1
S1 S2
S1 S2
Metrica
5
2
2
3
153
Algoritmo di Viterbi (1969) per stato iniziale noto
2. passo
2.1. Per ciascun superstite del passo 1 vengono calcolate le M metriche
relative ai rami del traliccio divergenti dal nodo s N −1 e vengono
sommate alla metrica corrispondente al superstite. Ciò produce MN
funzioni relative agli MN cammini di lunghezza N+1.
110
l=0
s1
s2
s3
s4
000
111
001
110
011
010 100
101
s1
s2
s3
s4
111
l=1
011
l=2
001
l=3
000
l=4
000
l=5
000
l=6
l=7
5 2
21
1
2
2
0
31
3
2
154
2.2. Il decodificatore compara le funzioni in gruppi di M, eseguendo i
confronti sui sottinsiemi di cammini che terminano in uno stesso stato
conservando solo il cammino con la metrica più piccola che diviene il
nuovo superstite associato a tale stato
110
l=0
s1
000
111
s2
s3
s4
001
110
011
010 100
101
Stato finale
S1
111
l=1
011
l=2
001
l=3
000
l=4
000
l=5
000
l=6
l=7
3
s1
4
s2
2
s3
5
s4
Superstite
S1 S2 S3
Metrica
3
S2
S1 S2 S3
4
S3
S1 S1 S2
2
S4
S1 S2 S4
5
155
Algoritmo di Viterbi (1969) per stato iniziale noto
j. passo
j.1 Per ciascun superstite del passo j-1 vengono calcolate le M metriche
relative
ai
rami
del
traliccio
divergenti
dal
nodo
terminale
corrispondente e vengono sommate alla metrica corrispondente al
superstite. Ciò produce MN funzioni relative agli MN cammini di
lunghezza j.
156
Superstiti al passo j-1
110
l=0
s1
000
111
s2
s3
s4
001
110
011
010 100
101
Stato finale
111
l=1
011
l=2
001
l=3
l=4
s1
2
s2
5
s3
5
s4
6
Superstite
000
000
l=5
000
l=6
l=7
Metrica
S1
S1 S1 S2 S3
2
S2
S1 S2 S3 S1
5
S3
S1 S2 S3 S2
5
S4
S1 S2 S4 S4
6
157
Calcolo delle metriche dei singoli cammini divergenti dai superstiti
110
l=0
s1
s2
s3
s4
000
111
001
110
011
010 100
101
111
l=1
011
l=2
001
l=3
000
l=4
s1
2
s2
5
s3
5
s4
6
000
l=5
000
l=6
l=7
0
3
1
2
2
1
1
2
158
j.2 Il decodificatore compara le funzioni in gruppi di M, eseguendo i
confronti sui sottinsiemi di cammini che terminano in uno stesso stato
conservando solo il cammino con la metrica più piccola che diviene il nuovo
superstite associato a tale stato.
110
l=0
s1
000
111
s2
s3
s4
001
110
011
010 100
101
Stato finale
S1
111
l=1
011
l=2
001
l=3
000
l=4
l=5
s1
2
s2
5
s3
7
s4
6
Superstite
S1 S1 S2 S3 S1
2
S2
S1 S1 S2 S3 S1
5
S3
S1 S2 S3 S1 S2
7
S4
S1 S2 S3 S1 S2
6
000
000
l=6
l=7
Metrica
159
Algoritmo di Viterbi (1969) per stato iniziale noto
Passo finale:
Nel
caso in cui anche lo stato finale sia noto (ad es. nel caso della
codifica di canale per servidi di fonia in GSM) si seleziona tra i superstiti
quello che termina in tale stato.
Nel
caso in cui lo stato finale non sia noto si seleziona il superstite
corrispondente al cammino più corto.
160
Turbocodici
161
Turbocodici
• Lo schema base è costituito da due codificatori convoluzionali di tipo ricorsivo
sistematico (RSC: Recursive Systematic Convolutional), chiamati codificatori
costituenti, concatenati in parallelo e separati tra loro tramite un interleaver
(permutatore o interlacciatore).
• Ogni RSC costituente produce in uscita, in base al tasso di codifica r, per ciascun
bit d’ingresso, una replica dello stesso bit (systematic output o codificatore
sistematico) sommata ad un numero di bit di parità.
• Se un RSC encoder è caratterizzato da r=1/2, viene usato uno soltanto dei due
systematic output provenienti dai precedenti encoder;
• questo avviene perché l’altro è la versione permutata di quello scelto e per ogni bit
di sorgente ottengo in uscita il bit stesso più un bit di parità.
• i codificatori usati nel turbo encoder sono ricorsivi cioè con controreazione
(feedback). mentre i codificatori convoluzionali standard sono del tipo in avanti
(feedforward) senza controreazione.
162
Recursive Systematic Convolutional (RSC) Encoder
Gli encoder RSC sono ottenuti a partire dai codificatori convoluzionali non ricorsivi e non
sistematici (convenzionali) riportando in ingresso come input uno dei loro output codificati.
163
Stato finale del codificatore
Per il codificatore convoluzionario convenzionale, si forza lo stato finale accodando in ingresso
al blocco di bite prodotto dalla soregente, kN bit pari a zero.
A causa del feedback, per l’RSC questa strategia non è possibile. I bits terminali accodati
dipendono, in questo caso, dallo stato dell’encoder e sono molto difficili da precalcolare.
La presenza dell’interliver tra i codificatori costituenti fa sì che, anche se per uno dei codificatori
è nota la sequenza che lo riporta nello stato “all-zero”, la sequenza complessiva rimescolata
dall'interleaver non riporta n generale il secondo codificatore nello stato “all-zero”.
Per superare questo problema è stato proposto uno schema semplice ma molto funzionale che
viene riportato di seguito.
Per codificare la sequenza di input lo swich è posizionato in A, per la terminazione in B.
164
BLOCK INTERLEAVER
• É il più usato nei sistemi di comunicazione.
• Scrive per colonne dall’alto verso il basso e da sinistra a destra.
• Legge per righe da sinistra a destra e dall’alto verso il basso.
165
Random (Pseudo-Random) Interleaver
• Selezione puramente aleatoria di una tra tutte le possibili permutazioni
della sequenza d’ingresso.
• Tutte le permutazioni sono equiprobabili.
Ingresso
0
1
1
0
1
0
0
1
Indice i
0
1
2
3
4
5
6
7
Permutazione
0
2
5
7
1
6
3
4
Uscita
0
0
0
1
1
1
1
0
166
Circular-Shifting Iterleaver
• La permutazione p di questo interlacciatore è definita come
p(i)=(ai+s)mod L
• Deve soddisfare a<L e s<L con a primo rispetto ad L, dove i è l’indice,
a è il passo e s è l’offset.
•
Esempio per L=8, a=3 e s=0. L
Ingresso
0
1
1
0
1
0
0
1
Indice i
0
1
2
3
4
5
6
7
Permutazione
0
3
6
1
4
7
2
5
Uscita
0
0
0
1
1
1
1
0
Si vede come bit adiacenti nella sequenza d’ingresso si trovano a distanza 3 o 5
167
in quella d’uscita.
168
Semirandom Interleaver
• E’ un compromesso tra un random interleaver ed uno tra il “block” ed il
“circular- shifting” interleaver.
• In essenza, in un interleaver semi-random di lunghezza L, caratterizzato da
una distanza minima uguale a S < L / 2 , l’n-esimo indice della permutazione
è calcolato generando a caso un intero in.
• Se |in - in-k |>S, per k=1,2,…,S, in è considerato valido, altrimenti esso viene
scartato e la procedura viene reiterata generando un nuovo valore per
l’indice.
• L’insieme degli interleaver completamente aleatori è il sottoinsieme degli
interleaver semialeatori corrispondente a S=1.
169
Turbocodici - Calcolo della Probabilità A Posteriori (APP)
Si consideri una sorgente di Markov a tempo discreto con un numero finito di stati. Si
indichino con St lo stato della sorgente, con St∈{0,1,…,M-1}, e con Xt l’uscita del
sistema nell’istante t.
Si indichi inoltre con
S tt ' = ( S t , S t +1 ,..., S t ' −1 , S t ' )
la successione degli stati dall’istante t, all’istante t’, e con
X tt ' = ( X t , X t +1 ,..., X t ' −1 , X t ' )
la successione delle uscite dall’istante t, all’istante t’.
La sorgente di Markov sia caratterizzata dalle seguenti probabilità di transizione
pt (m | m ') = Pr {St = m St −1 = m '}
E dalle seguenti probabilità condizionate delle uscite:
qt ( X | m ', m) = Pr { X t = X St −1 = m '; St = m}
170
Infine la sorgente parte dallo stato iniziale S0=0 e ritorna nello stesso stato all’istante
finale τ.
Si assume infine che il canale di comunicazione sia un canale senza memoria per cui la
probabilità condizionata della successione ricevuta dal ricevitore
Y1τ = (Y1 , Y2 ,..., Yτ −1 , Yτ )
vale
{
}
τ
{
}
τ
Pr Y1 X1 = ∏ Pr Y j X j = ∏ R (Y j X j ) .
τ
τ
j =1
j =1
L’obiettivo è quello di calcolare le probabilità congiunte
• λt ( m ) = Pr {S t = m; Y1τ }
• σ t ( m ', m ) = Pr {St = m; St −1 = m '; Y1τ }
Infatti, una volta note tali probabilità è possibile calcolare le probabilità condizionate:
171
{
}
Pr St = m Y1τ =
Pr {St = m; Y1τ }
M −1
∑ Pr {S
n =0
{
}
= n; Y1 }
τ
t
Pr St −1 = m '; St = m Y1τ =
=
λt ( m )
M −1
∑ λ (n)
n=0
t
Pr {St = m; St −1 = m '; Y1τ }
M −1 M −1
∑ ∑ Pr {S
n = 0 n '= 0
= n; St −1 = n '; Y1 }
τ
t
=
σ t ( m ', m)
M −1 M −1
∑ ∑ σ (n ', n)
n = 0 n '= 0
t
A tal fine, posto
α t ( m ) = Pr {S t = m; Y1t }
β t ( m ) = Pr {Ytτ+1 St = m}
γ t ( m ', m ) = Pr {St = m; Yt
S t −1 = m '}
Si osservi che per λt(m) si ha
172
λt ( m ) = Pr {S t = m; Y1τ }
= Pr {Ytτ+1 S t = m; Y1t } Pr {S t = m; Y1t }
Poichè il sistema è markoviano, se lo stato St è noto gli eventi che si producono dopo
l’istante t non dipendono dalle uscite del sistema sino all’istante t. Pertanto
λt ( m ) = Pr {Ytτ+1 St = m} Pr {St = m; Y1t }
= αt (m)βt (m)
Similmente:
σ t ( m ', m ) = Pr {St = m; St −1 = m '; Y1τ }
{
}
= Pr Ytτ+1 St −1 = m '; St = m; Y1t Pr {St −1 = m '; St = m; Y1t }
e sempre per la markovianità si ha:
{
}
Pr Ytτ+1 St −1 = m '; St = m; Y1t = Pr {Ytτ+1 St = m}
Conseguentemente
173
σ t ( m ', m ) = Pr {Ytτ+1 St = m} Pr {St −1 = m '; St = m; Y1t }
= Pr {Ytτ+1 S t = m} Pr {St = m; Yt St −1 = m '; Y1t −1} Pr {St −1 = m '; Y1t −1}
= α t −1 ( m) β t ( m)γ t ( m ', m)
Inoltre, sempre per la markovianità si ha:
M −1
αt (m) = ∑ γ t (m ', m)αt −1 (m ')
m '= 0
M −1
βt (m) = ∑ γ t +1 (m, m ')βt +1 (m ')
m '= 0
con condizioni al contorno
1 per m = 0
α 0 (m) = 
0 altrimenti
1 per m = 0
βτ (m) = 
0 altrimenti
Inoltre
174
γ t (m ', m) = ∑ Pr {St = m;Yt ; X t = X St −1 = m '}
X
= ∑ Pr {Yt
X
St −1 = m '; St = m; X t = X } Pr {St = m; X t = X St −1 = m '}
= ∑ Pr {Yt X t = X } Pr {St = m; X t = X St −1 = m '}
X
= ∑ Pr {Yt X t = X } Pr { X t = X St −1 = m '; St = m} Pr {St = m St −1 = m '}
X
= ∑ R(Yt , X )qt ( X | m ', m) pt (m | m ')
X
175
Algoritmo AAP
1. Inizializzazione
1 per m = 0
a. α0 (m) = 
0 altrimenti
1 per m = 0
b. βτ (m) = 
0 altrimenti
2. Per ogni t=1,…,τ, ricevuto Yt, si calcola
a. γ t (m ', m) == ∑ R(Yt , X )qt ( X , m ', m) pt (m, m ')
X
M −1
b. αt (m) = ∑ γ t (m ', m)αt −1 (m ')
m ' =0
3. Per ogni t=τ−1…,1, ricevuto Yt, si calcola
a. βt (m) =
M −1
∑γ
m ' =0
t +1
(m, m ')βt +1(m ')
4. Per ogni t=1,…,τ si calcola
a. Si calcolano i valori
λt (m) = α t (m) βt (m)
176
b. Si normalizzano le probabilità per ottenere le probabilità condizionate
{
}
Pr St = m Y1τ =
λt (m)
M −1
∑
n =0
λt (n)
c. Si calcolano i valori
σ t (m ', m) = αt −1 (m) βt (m)γ t (m ', m)
d. Si normalizzano le probabilità per ottenere le probabilità condizionate
{
}
Pr St −1 = m '; St = m Y1τ =
σ t (m ', m)
M −1 M −1
∑ ∑ σ (n ', n)
n=0 n '=0
t
177
Turbocodice + canale gaussiano additivo
n st
dt
Xt
n1t
RSC
C1
Y1t
n 2t
Interleaver
Π
RSC
C2
Y2t
Codificatore turbo
178
Deinterleaver
Π−1
[ Z]1
τ
τ
[ X]1
τ
DECODE
R
DEC1
ˆ ( d )
Λ
 1 t 
1
[ Y1 ]1
τ
Interleave
r
Π
ˆ ( d )
Λ
 2 t 
1
DECODE
R
DEC1
τ
Deinterleaver
Π−1
[ Y2 ]1
τ
Decodificatore turbo
179
• Il ricevitore ottimo si basa sul criterio di decisione bayesiano
Λ(d k )
H1
>
η
<
H0
essendo
Λ ( d k ) = log
= log
= log
= log
Pr {d k = 1 X , Y1 , Y2 }
Pr {d k = 0 X , Y1 , Y2 }
Pr {d k = 1, X , Y1 , Y2 }
Pr {X , Y1 , Y2 }
Pr {d k = 0, X , Y1 , Y2 }
Pr {X , Y1 , Y2 / d k = 1}
Pr {X , Y1 , Y2 / d k = 0}
Pr {d k = 1}
Pr {d k = 0}
+ log
Pr {X , Y1 , Y2 }
+ log
Pr {d k = 1}
Pr {d k = 0}
Pr {X , Y1 / d k = 1}
Pr {X , Y1 / d k = 0}
+ log
Pr {Y2 / d k = 1, X , Y1 }
Pr {Y2 / d k = 0, X , Y1 }
180
= log
Pr {d k = 1}
Pr {X / d k = 1}
Pr {Y1 / d k = 1, X}
Pr {Y2 / d k = 1, X , Y1}
+ log
+ log
+ log
Pr {d k = 0}
Pr {X / d k = 0}
Pr {Y1 / d k = 0, X}
Pr {Y2 / d k = 0, X , Y1}
Si osserva che il logaritmo del rapporto di verosimiglianza si compone di 4
termini:
Λ apriori ( d k ) = log
Λ ( X ) ( d k ) = log
Pr {d k = 1}
Pr {d k = 0}
Pr {X / d k = 1}
Pr {X / d k = 0}
rappresenta
il
contributo
relativo
all'informazione a priori
rappresenta
il
contributo
relativo
all'osservazione della parte sistematica
del codice
Λ ( Y1 ) ( d k ) = log
Pr {Y1 / d k = 1, X}
Pr {Y1 / d k = 0, X}
rappresenta
il
contributo
relativo
all'osservazione dei bit di parità del primo
codificatore
181
Λ ( Y2 ) ( d k ) = log
Pr {Y2 / d k = 1, X , Y1}
Pr {Y2 / d k = 0, X , Y1}
rappresenta
il
contributo
relativo
all'osservazione dei bit di parità del
secondo codificatore
182
Algoritmo di decodifica
L'algoritmo di decodifica approssima il codificatore ottimo attraverso un procedimento
iterativo.
Al primo passo il primo decodificatore calcola
Λ1 ( d k ) = log
Pr {d k = 1 X , Y1}
Pr {d k = 0 X , Y1}
A questo scopo è utile osservare
Pr {d k = 1 X , Y1}
Pr {d k = 1 X , Y1} Pr {X , Y1 }
Λ1 ( d k ) = log
= log
=
Pr {d k = 0 X , Y1}
Pr {d k = 0 X , Y1 } Pr {X , Y1 }
log
{
Pr {d
Pr d k = 1, X1k −1 , [ Y1 ]1 , xk , y1k , X kN+1 , [ Y1 ]k +1
k −1
}=
}
= 0, X1k −1 , [ Y1 ]1 , xk , y1k , X kN+1 , [ Y1 ]k +1
k −1
k
N
N
183
{
Pr { x / d
Pr { x / d
= log
Pr { x / d
= log
} {
} Pr {d
}+
}
Pr xk / d k = 1, X1k −1 , [ Y1 ]1 , y1k , X kN+1 , [ Y1 ]k +1 Pr d k = 1, X1k −1 , [ Y1 ]1 , y1k , X kN+1 , [ Y1 ]k +1
k
k
k
k −1
N
k
= 0, X1k −1 , [ Y1 ]1 , y1k , X kN+1 , [ Y1 ]k +1
k
= 1, X1k −1 , [ Y1 ]1 , y1k , X kN+1 , [ Y1 ]k +1
k
= 0, X1k −1 , [ Y1 ]1 , y1k , X kN+1 , [ Y1 ]k +1
k −1
k −1
{
+ log
Pr {d
k −1
N
N
N
Pr d k = 1, X1k −1 , [ Y1 ]1 , y1k , X kN+1 , [ Y1 ]k +1
k −1
}=
}
= 0, X1k −1 , [ Y1 ]1 , y1k , X kN+1 , [ Y1 ]k +1
k −1
k
N
N
}
}
= 0, X1k −1 , [ Y1 ]1 , y1k , X kN+1 , [ Y1 ]k +1
k −1
k
N
k −1
N
Poiché il codice è sistematico, nel caso di modulazione BPSK si ha
x k = 2d k − 1 + ns
k
cosicché
{
log
Pr { x
Pr xk d k = 1, S k = m , S k −1 = m ′, X1k −1 , [ Y1 ]1 , y1k , X kN+1 , [ Y1 ]k +1
k −1
}=
}
d k = 0, S k = m , S k −1 = m ′, X1k −1 , [ Y1 ]1 , y1k , X kN+1 , [ Y1 ]k +1
k −1
k
N
N
184
= log
Pr { xk d k = 1}
Pr { xk d k = 0}
=
( xk − 1) 2 − ( xk + 1) 2
2
=−
=
x
2σ n2
σ n2 k
Inoltre
{
log
Pr {d
Pr d k = 1, X1k −1 , [ Y1 ]1 , y1k , X kN+1 , [ Y1 ]k +1
= log
k −1
∑∑
m
m′
∑∑
m
}
}
= 0, X1k −1 , [ Y1 ]1 , y1k , X kN+1 , [ Y1 ]k +1
k −1
k
N
m′
{
Pr {d
N
Pr d k = 1, S k = m , S k −1 = m ′, X1k −1 , [ Y1 ]1 , xk , y1k , X kN+1 , [ Y1 ]k +1
k −1
}
=
}
= 0, S k = m , S k −1 = m ′, X1k −1 , [ Y1 ]1 , xk , y1k , X kN+1 , [ Y1 ]k +1
k −1
k
N
N
Pertanto
185
Λ1 ( d k ) = log
=
2
σ n2
Pr {d k = 1 X , Y1 }
Pr {d k = 0 X , Y1}
xk + log
∑∑
m
m′
∑∑
m
m′
{
Pr {d
=
Pr d k = 1, S k = m , S k −1 = m ′, X 1k −1 , [ Y1 ]1 , y1k , X kN+1 , [ Y1 ]k +1
k −1
N
= 0, S k = m , S k −1 = m ′, X1k −1 , [ Y1 ]1 , y1k , X kN+1 , [ Y1 ]k +1
k −1
k
}
}
N
ovvero
Λ1 (d k ) =
2
σ
2
n
xk + W1k
avendo posto
W1k = log
∑∑
m
m′
∑∑
m
m′
{
Pr {d
Pr d k = 1, S k = m , S k −1 = m ′, X 1k −1 , [ Y1 ]1 , y1k , X kN+1 , [ Y1 ]k +1
k −1
}
}
= 0, S k = m , S k −1 = m ′, X 1k −1 , [ Y1 ]1 , y1k , X kN+1 , [ Y1 ]k +1
k −1
k
N
N
si noti che
186
W1 =  Λ 1 (d k )  x =0
k
k
Inoltre
{
m
}
Pr d k = 1, S k = m , S k −1 = m ′, X1k −1 , [ Y1 ]1 , y1k , X kN+1 , [ Y1 ]k +1 =
∑∑
m′
k −1
{
N
= ∑ ∑ Pr X kN+1 , [ Y1 ]k +1 / y1k , d k = 1, S k = m , S k −1 = m ′, X1k −1 , [ Y1 ]1
m
m′
{
× Pr {S
k −1
N
× Pr y1k , d k = 1, S k = m , / S k −1 = m′, X1k −1 , [ Y1 ]1
k −1
′ k −1
k −1 = m / X 1 , [ Y1 ]1
k −1
} {
Pr X1k −1 , [ Y1 ]1
k −1
}
}×
}×
e per le ipotesi di markovianità
{
Pr X kN+1 , [ Y1 ]k +1 / y1k , d k = 1, S k = m , S k −1 = m ′, X1k −1 , [ Y1 ]1
k −1
N
{
Pr y1k , d k = 1, S k = m , / S k −1 = m ′, X1k −1 , [ Y1 ]1
k −1
} = Pr { y
1k
}
{
= Pr X kN+1 , [ Y1 ]k +1 / S k = m
N
}
}
, d k = 1, S k = m , / S k −1 = m ′
quindi, posto
187
{
α k ( m ) = Pr S k = m / X1k , [ Y1 ]1
β k (m ) =
{
Pr {X
k
}
}
/ X ,[Y ] }
Pr X kN+1 , [ Y1 ]k +1 / S k = m
N
N
k +1
, [ Y1 ]k +1
N
k
1
k
1 1
{
}
γ i ( y1k , m ′, m ) = Pr d k = i , S k = m , X1k , [ Y1 ]1 / S k −1 = m ′
k
La componente estrinseca del funzionale di verosimiglianza vale
W1 = log
k
∑∑γ
m
∑∑γ
m
•
m′
m′
1
( y1 , m ′ , m)α k ( m ′ ) β k (m)
0
( y1 , m ′ , m)α k ( m ′ ) β k (m)
k
k
W1k è una funzione dell'informazione relativa alla ridondanza (controlli di
parità) introdotta dal codificatore. In generale esso ha lo stesso segno di dk: quindi
188
W1k può migliorare l'attendibilità del logaritmo del rapporto di verosimiglianza.
Esso rappresenta l'informazione estrinseca fornita dai bit di parità introdotti dal
primo codificatore
•
Per il calcolo di W1k si può impiegare l'algoritmo di Bahl.
•
Il secondo decodificatore effettua la decodifica di {dk} a partire da {Λ1(dk)} e da
N
 Y2 
1
•
quindi
Λ 2 ( d k ) = f [ Λ 1 ( d k ) ] + W2 k
•
Si può verificare che W2k è una funzione della sequenza
189
{Λ 1 ( d n )}n ≠ k
•
Poiché {Λ1(dn)} dipende dalle osservazioni X e Y1 l’informazione estrinseca
W2k è correlata con le osservzaioni xk e y1k, cionondimeno maggiore è il valore di
|n-k| minore è la correlazione tra Λ1(dn) e xk e y1k. A causa dell’interleaver
interposto tra il primo ed l secondo decodificatore, in genere la correlazione tra
W2k e xk e y1k è modesta. Pertanto l’informazione estrinseca W2k ed i dati ricevuti
xk e y1k possono essere rielaborati insieme al fine di fornire una valutazione più
affidabile di dk
•
Per le successive iterazioni si procede come segue:
Al secondo passo, posto
190
z k = W 2 k = {Λ 2 ( d k )}Λ
1 ( dk )=0
Per il primo codificatore si calcola
Λ1 ( d k ) =
2
σ
2
n
xk +
2
σ
2
z
z k + W1k
Con
W1k = [ Λ 1 ( d k ) ]x
k = 0, z k = 0
Poichè Λ1(dk) è calcolato utilizzando i valori zk forniti dal secondo decoder DEC2, il
decoder DEC2 in ingresso, oltre a Y2, ha
Λ% 1 ( d k ) = [ Λ 1 ( d k ) ]z
•
k
=0
quindi
Λ 2 ( d k ) = f  Λ% 1 ( d k )  + W2 k
191
Inoltre l’informazione estrinseca fornita da DEC2 che alimenta il primo
decodificatore, dal terzo passo in poi si calcola come segue
z k = W 2 k = {Λ 2 ( d k )}Λ%
1 ( dk )=0
Infine, la decisione finale è calcolata come segue
dˆk = sign [ Λ 2 ( d k ) ]
192
Codici punturati
L’operazione
di punturazione consiste nell’eliminazione selettiva di alcuni
caratteri della sequenza prodotta in uscita da un codificatore convoluzionale
ordinario, secondo una legge (periodica) nota sia al codificatore che al
decodificatore.
L’obiettivo
è quello di generare un codice caratterizzato da un tasso elevato a
partire da un codice a tasso basso e di ridotta complessità computazionale.
Generazione di un codice punturato con tasso ¾ a partire da un codice con
tasso 1/3
193
Punturazione
1 1 1 
P = 1 0 0 
 0 0 0 
11
b
c
d
0
00
a
01 1
10
00
01
0
01
1
0
10
10
1
1
01 1
0 11
1
0
0
0
00
1
1
01
01
1
0
10
00
0
0
10
10
0 11
1
0
1
0
1
0
00
01 1
10
00
1
0
1
01
0
01
1
0
10
10
0
1
0
1
0
1
1
0
1
194
195
SERIE DISCRETE
• Presa una serie aleatoria X(t; ω) essa si dice discreta se le variabili aleatorie
X(t1), X(t2), … , X(tn) estratte negli n istanti t1, t2, … , tn sono variabili
aleatorie discrete che possono assumere una fra L possibili determinazioni
appartenenti all’insieme A:
A = {x1 , x2 , ..., x L }
con L eventualmente infinito.
• L’insieme A prende il nome di Alfabeto di sorgente.
• Analogamente la serie aleatoria si dice continua se le predette variabili
aleatorie risultano essere v. a. continue.
196
SERIE DI MARKOV
• Definizione. Una serie aleatoria discreta (e la sorgente che la emette) si
dice di Markov di ordine M se detti
t k1 , t k2 , ..., t kN
N istanti di tempo in ordine crescente con N > M+1, e indicate con
x[k1 ] = x(tk1 ), x[k2 ] = x(tk2 ),..., x[kn ] = x(tkn )
le generiche determinazioni delle v. a. estratte in detti istanti, le probabilità
delle determinazioni della v. a. X [ k n ] condizionate alle determinazioni
x[k1], x[k2],…, x[kn-1] dipendono dalle determinazioni delle M variabili
aleatorie che precedono X[kn].
In formule
{
Pr X [ kn ] = xik
{
= Pr X [ kn ] = xik
n
n
X [ kn−1 ] = xik ,..., X [ k1 ] = xik
n −1
X [ kn−1 ] = xik ,..., X [ kn− M ] = xik
n −1
1
}=
}
(1)
n−M
197
• Per M = 1 la serie viene detta di Markov semplice.
• Si osservi che per le serie di Markov (e per i processi di Markov che ne
rappresentano l’estensione al caso continuo), la gerarchia di qualsiasi ordine
è ottenibile a partire dalla conoscenza della gerarchia di probabilità di ordine
M+1.
• Infatti in base alla (1) per n > M+1 si ha:
{
}
Pr X [n] = xi , X [n − 1] = xi , X [n − 2] = xi ,..., X [1] = xi =
{
n−1
n
n−2
1
}
= Pr X [n] = xi / X [n − 1] = xi , X [n − 2] = xi ,..., X [1] = xi ×
{
n−1
n
n −2
}
1
× Pr X [n − 1] = xi , X [n − 2] = xi ,..., X [1] = xi =
{
n −1
n −2
1
= Pr X [n] = xi / X [n − 1] = xi , X [n − 2] = xi ,..., X [n − M ] = xi
{
n−1
n
n−2
}
n −M
}×
× Pr X [n − 1] = xi , X [n − 2] = xi ,..., X [1] = xi =
n −1
n −2
1
198
{
= Pr X [n] = xi / X [n − 1] = xi , X [n − 2] = xi ,..., X [n − M ] = xi
n−1
n
n−2
n −M
}×
{
}
× Pr { X [n − 2] = x ,..., X [1] = x } =
= Pr { X [n] = x / X [n − 1] = x , X [n − 2] = x ,..., X [n − M ] = x } ×
× Pr { X [n − 1] = x / X [n − 2] = x ,..., X [n − 1 − M ] = x } ×
× Pr { X [n − 2] = x ,..., X [1] = x } =
× Pr X [n − 1] = xi / X [n − 2] = xi ,..., X [1] = xi ×
n −1
n−2
in−2
in
i1
in−1
in−2
in−1
in−2
1
in−2
in−M
in−1−M
i1
199
{
= Pr X [n] = xi / X [n − 1] = xi , X [n − 2] = xi ,..., X [n − M ] = xi
n−1
n
{
× Pr { X [M + 1] = x / X [ M ] = x
× Pr { X [M ] = x ,..., X [1] = x }.
n−2
n −M
× Pr X [n − 1] = xi / X [n − 2] = xi ,..., X [n − 1 − M ] = xi
n −1
iM +1
iM
n−2
iM
}×
} × ...×
n−1− M
}
,..., X [1] = xi ×
1
i1
Ovvero
{
}
Pr X [n] = xi , X [n − 1] = xi , X [n − 2] = xi ,..., X [1] = xi =
=
n−1
n
n
∏
m = M +1
{
n−2
1
Pr X [ m ] = xi / X [ m − 1] = xi , X [ n − 2] = xi ,..., X [ m − M ] = xi
m −1
m
{
}
× Pr X [M ] = xi ,..., X [1] = xi .
M
1
m−2
m− M
}×
(2)
200
ed inoltre:
{
}
Pr X [ n ] = xin X [ n − 1] = xin −1 ,..., X [ n − M ] = xin − M =
=
{
Pr X [ n ] = xin , X [ n − 1] = xin −1 ,..., X [ n − M ] = xin − M
{
Pr X [ n − 1] = xin −1 ,..., X [ n − M ] = xin − M
}
}
(3)
• Ovviamente le gerarchie di ordine inferiore a M+1 possono essere ottenute
per saturazione della gerarchia di ordine M+1.
201
RELAZIONE DI CHAPMAN – KOLMOGOROFF
• Anche nel caso delle serie di Markov, la gerarchia di probabilità di ordine
M+1 dovrà soddisfare la relazione di consistenza rappresentata dalla
relazione di CHAPMAN – KOLMOGOROFF.
• Per derivare le implicazioni di tale relazione, si cominci con il considerare
una serie di Markov semplice.
• A tale scopo si osservi che nel caso di serie discreta, la gerarchia di
probabilità del 1° ordine può essere riscritta in forma più compatta
introducendo il vettore P[kn] i cui elementi sono costituiti dalle probabilità
che la v. a. X[kn] assuma le singole determinazioni x1, …, xL . In formule:
 Pr{ X [ kn ] = x1} 
 Pr{ X [ k ] = x }
n
2 
(4)
P[ kn ] = 
...




Pr{
X
[
k
]
=
x
}
n
L 

202
D’altronde, considerando due istanti di tempo t kn e t kl , per l’elemento i–
esimo di tale vettore si ha
Pr { X [kn ] = xi } = ∑ Pr { X [kn ] = xi , X [kl ] = x j } i = 1,..., L
L
(5)
j =1
ovvero, esprimendo la probabilità congiunta tramite le probabilità condizionate
si ha:
Pr { X [ kn ] = xi } = ∑ Pr { X [ kn ] = xi X [ kl ] = x j } ⋅ Pr { X [ kl ] = x j }, i = 1,..., L
L
(6)
j =1
Tale Relazione che vale per il singolo elemento del vettore può essere riscritta
in modo più compatto, in forma matriciale, come segue:
P[ kn ] = Π[ kn , kl ]P[ kl ]
(7)
203
in cui Π[ k n , kl ] è la matrice LxL il cui generico elemento (i, j) è costituito dalla
probabilità condizionata Pr { X [kn ] = xi X [kl ] = x j } :
 Pr{ X [ kn ] = x1 / X [ kl ] = x1}
 Pr{ X [ k ] = x / X [ k ] = x }
n
2
l
1
Π[ kn , kl ] = 
...


 Pr{ X [ kn ] = xL / X [ kl ] = x1}
... Pr{ X [ kn ] = x1 / X [ kl ] = xL }
... Pr{ X [ kn ] = x2 / X [ kl ] = xL 
 (8)
...
...


... Pr{ X [ kn ] = xL / X [ kl ] = xL 
Si noti che la somma degli elementi di ciascuna colonna della matrice Π[ k n , kl ]
è pari a 1, in quanto la funzione di normalizzazione
∑ Pr { X [ k ] = x
L
i =1
n
i
X [ kl ] = x j } =1
(9)
Si noti che la reazione (7) vale per qualsiasi serie discreta.
204
• Nel caso in cui la serie discreta sia di Markov semplice, la relazione di
CHAPMAN – KOLMOGOROFF può essere scritta in forma matriciale
come fattorizzazione della matrice Π[ k n , kl ] . Ovvero presi 3 istanti
t kl < t km < t kn si ha:
Π[kn , kl ] = Π[kn , km ]Π[km , kl ]
(10)
Per la dimostrazione della (10) si osservi che per ciascun elemento della
matrice Π[ k n , kl ] si ha:
Pr { X [ kn ] = xi X [ kl ] = x j } = ∑ Pr { X [ kn ] = xi , X [ km ] = xh X [ kl ] = x j } =
L
j =1
= ∑ Pr { X [ kn ] = xi X [ km ] = xh , X [ kl ] = x j } ⋅ Pr { X [ km ] = xh X [ kl ] = x j }
L
(11)
j =1
205
ed essendo la serie di Markov semplice ne consegue che:
Pr { X [ kn ] = xi X [ kl ] = x j } = ∑ Pr { X [ kn ] = xi X [ km ] = xh } ⋅ Pr { X [ km ] = xh X [ kl ] = x j } (10’)
L
j =1
Come è facile verificare la (10’), altro non è che la (10) riscritta elemento per
elemento.
Ciò posto, applicando iterativamente la (10) nella (7) e ponendo per semplicità
di notazione
∆
∏ [ k ] = ∏ [ k + 1, k ]
1
(12)
si ha:
P [ kn ] = ∏ 1[ kn−1 ] ∏ 1[ kn−2 ]⋅...⋅ ∏ 1[ kl ] P [ kl ]
(13)
206
che fornisce la funzione di probabilità all’istante t kn a partire dalla conoscenza
della funzione di probabilità all’istante t kl e delle matrici delle probabilità
condizionate.
• Di conseguenza si può affermare che una serie di Markov semplice è
completamente descritta sul piano statistico non appena si conoscono le
matrici delle probabilità condizionate a passo 1, e la funzione di probabilità
relativa all’istante iniziale P[0]=P0 che rappresenta la condizione iniziale
dell’equazione alle differenze:
P[k + 1] = Π[k ]P[k ]
(14)
soddisfatta dalla gerarchia di ordine 1.
207
• Nel caso in cui la serie di Markov semplice sia omogenea le matrici delle
probabilità condizionate non dipenderanno più dai 2 indici relativi agli
istanti di tempo, ma solo dalla loro differenza. Ciò implica che la matrice
k diviene costante rispetto al tempo e le relazioni (14) e (13) si
Π1[ ]
semplificano come segue:
P[k +1] = Π1P[k ]
(15)
P[k + n] = [ Π1 ] P[k ]
(16)
n
• Nel caso in cui la serie sia stazionaria oltre alle (15) e (16) si ha:
P [ k + 1] = P [ K ] = P = cos t .
(17)
208
Dalle (15) e (17) ne consegue che la gerarchia di ordine 1 deve soddisfare
la relazione:
(I - Π1) P = 0
(18)
• Si osservi che poiché la somma della matrice degli elementi di ciascuna
colonna della matrice Π1 è pari a 1, e che quindi la somma degli elementi di
ciascuna colonna della matrice (I - Π1) è zero, il determinante della matrice
I - Π1 è nullo.
• Quindi il sistema omogeneo (18) ammette almeno ∞1 soluzioni. Affinché
però il vettore P rappresenti una funzione di probabilità deve essere
soddisfatta la condizione di normalizzazione:
L
∑ P =1
i
(19)
i =1
209
• In effetti, si potrebbe dimostrare che qualora la serie sia anche ergodica, il
rango della matrice (I -
Π1
) è proprio pari a L-1 e quindi il sistema
omogeneo (18) ammette ∞1 soluzioni, ovvero la funzione di probabilità
individuata dalle (18) e (19) è unica.
• In definitiva, se la serie è ergodica, la matrice delle probabilità,
condizionate a passo 1, descrive completamente il comportamento
statistico della serie, in quando da essa può essere calcolata la gerarchia di
qualsiasi ordine.
210
STATO DI UNA SERIE DI MARKOV
• Quanto precede può essere esteso agevolmente al caso di sorgente di
Markov di ordine M attraverso l’introduzione del concetto di stato.
• Per definizione lo stato della sorgente S[k] all’istante tk è rappresentato
dalle determinazioni degli M termini precedenti:
∆
S [k ] = (x [k − 1], x [k − 2 ],..., x [k − M ])
• Pertanto il numero di stati possibili è pari a LM, ovvero pari al numero di
combinazioni di M termini consecutivi delle L possibili determinazioni. Lo
stato della serie di Markov potrà assumere valori sull’insieme
{
S = s1 , s2 , ... , s
LM
}
211
i cui elementi sono i punti di uno spazio prodotto LxLxLx…xL (M volte).
• Da ciò ne consegue che una volta noto lo stato all’istante tk+1, risulta nota
anche la determinazione assunta dalla serie nell’istante tk.
• Inoltre, per come è definito una volta note le proprietà statistiche dello
stato S[k+1] da esse possono essere dedotte (tramite operazioni di somma)
le proprietà statistiche delle v. a. X[k], …, X[k-M+1].
• L’impiego dello stato, nello studio di una sorgente di Markov è motivato
dal seguente teorema:
212
Teorema.
Data una serie di Markov discreta di ordine M, la serie (discreta)
degli stati è una serie di Markov semplice
Dim.
Dalla definizione di stato della serie di Markov ne consegue che:
Pr {S [ k ] = sk S [ k − 1] = sk −1 ,..., S [1] = s1} =
= Pr { X [ k − 1] = xk −1 , X [ k − 2] = xk −2 ,..., X [ k − M ] = xk −M X [ k − 2] = xk −2 ,..., X [1] = x1} =
= Pr { X [ k − 1] = xk −1 X [ k − 2] = xk −2 ,..., X [1] = x1} ⋅
(20)
⋅ Pr { X [ k − 2] = xk −2 ,..., X [ k − M ] = xk −M X [ k − 2] = xk −2 ,..., X [1] = x1} =
= Pr { X [ k − 1] = xk −1 X [ k − 2] = xk −2 ,..., X [ k − M − 1] = xk −M −1} =
= Pr { X [ k − 1] = xk −1 S [ k − 1] = sk −1}
in quanto la probabilità condizionata di una v. a. rispetto a sé stessa e altre v. a.
è pari a 1 e la serie è di Markov di ordine M.
Analogamente si ha:
213
Pr
{S [ k ] = s S [ k −1] = s } =
k
k −1
= Pr { X [ k − 1] = xk −1 , X [ k − 2] = xk −2 ,..., X [ k − M ] = xk − M X [ k − 2] = xk −2 ,..., X [ k − M − 1] = xk − M −1} =
= Pr { X [ k − 1] = xk −1 X [ k − 2] = xk −2 ,..., X [ k − M − 1] = xk −M −1}×
× Pr { X [ k − 2] = xk −2 ,..., X [ k − M ] = xk −M X [ k − 2] = xk −2 ,..., X [ k − M − 1] = xk −M −1} =
= Pr { X [ k −1] = xk −1 X [ k − 2] = xk −2 ,..., X [ k − M −1] = xk −M −1} =
= Pr { X [ k −1] = xk −1 S [ k −1] = sk −1}
(21)
• dall’eguaglianza tra la (20) e la (21) ne discende che la serie degli stati è di
Markov semplice. C. d. d.
214
• In virtù del precedente teorema per l’analisi del comportamento statistico
della serie degli stati sono immediatamente applicabili i risultati derivanti
in precedenza per le serie di Markov semplici.
• A tale scopo giova osservare che una serie di Markov stazionaria di ordine
M con il cosiddetto diagramma di stato.
• Il diagramma di stato è un grafo orientato i cui nodi rappresentano i
possibili stati della serie e gli archi le emissioni dei successivi termini della
serie che si verificano nelle transizioni da uno stato all’altro. Gli archi
sono etichettati con i valori delle probabilità condizionate di uno stato
rispetto al suo predecessore, ovvero del termine della serie emesso in
funzione dello stato di partenza. Ad esempio, con riferimento alla fig.1
215
P(0/S0)
P(1/S0)
S0=
(0,0)
P(0/S4)
P(0/S1)
S1=
(1,0)
P(1/S1)
S4=
(0,1)
P(1/S4)
S3=
(1,1)
P(0/S3)
P(1/S3)
216
Si consideri una serie di Markov di ordine M=2 che possa assumere
determinazioni su un alfabeto binario {0, 1}. In tal caso gli stati possibili
saranno:
S0 ≡ (0, 0)
S1 ≡ (0, 1)
S 2 ≡ (1, 0)
S3 ≡ (1, 1)
• Nella costruzione del diagramma di stato, occorrerà considerare che, per
come è definito lo stato, solo alcune transizioni sono possibili. In
particolare, supponendo S[k]=s0, lo stato S[k+1] all’istante k+1 varrà
ancora s0 se la sorgente avrà emesso il simbolo 0 e varrà s2 se la sorgente
avrà emesso il simbolo 1. Si noti che la relazione (19) di normalizzazione
217
delle probabilità condizionate si traduce nella probabilità che la somma dei
pesi dei rami uscenti da un nodo sia pari a 1.
218