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