6 - SECONDO TEOREMA DI SHANNON PROBABILITA’ DI ERRORE E REGOLE DI DECISIONE Abbiamo utilizzato il concetto di entropia in due occasioni: - nella codifica di sorgente l’entropia fornisce, attraverso il primo teorema di Shannon , il limite minimo del numero di unità r-arie necessarie a codificare un simbolo di sorgente. - Nella generalizzazione del primo teorema di Shannon, l’entropia dell’ingresso condizionata dall’uscita fornisce l’equivocazione dell’ingresso sull’uscita, ossia il numero limite di bit necessari a codificare l’ingresso nota l’uscita. Inoltre l’informazione mutua del canale (H(X)-H(X|Y)>0 ) è inferiore ad H(X) salvo che per i canali senza rumore, in cui l’equivocazione è nulla e quindi l’informazione mutua coincide con H(X). Questo equivale a dire che nei canali con rumore (ossia in generale) non è possibile ricostruire perfettamente la sequenza dei simboli in ingresso conoscendo i simboli in usciota. Il secondo teorema di Shannon risolve teoricamente il problema dell’affidabilità della trasmissione su canale rumoroso, definendo le condizioni che permettono di trasmettere informazione nel canale con rumore con probabilità d’errore che può essere resa trascurabile a piacere. A questo scopo dobbiamo definire sia il termine di errore nella trasmissione che quello di probabilità d’errore introdotta nela canale di trasmissione. La probabilità complessiva d’errore dipende dalla regola di decisione adottata dal decodificatore in ricezione. Infatti consideriamo ad esempio un canale BSC con P=0.1 e P*=0.9 . La probabilità d’errore è 0.1 se il decodificatore decide che è stato inviato 0 quando riceve 0 e è stato inviato 1 quando riceve 1. Ma se il decodificatore adotta come regola di decodifica che è stato trasmesso 1 quando riceve 0 e viceversa, in questo caso la probabilità di errore è 0.9. Dunque la probabilità d’errore dipende anche dal modo (più o meno ragionevole) in cui il decodificatore decide di interpretare i dati in arrivo. Come esempio completo consideriamo un canale la cui matrice è 0.5 0.3 0.2 P 0.2 0.3 0.5 0.3 0.3 0.4 Vogliamo decidere, sulla base della ricezione di una delle tre uscite, quale ingresso è stato inviato. Definizione. Dato un canale con alfabeto di ingresso X x1 ,..., xr e alfabeto di uscita Y y1 ,..., y s , chiamiamo regola di decisione d ( y j ) xi ogni funzione che specifica un unico simbolo di ingresso per ogni simbolo di uscita. Poiché abbiamo r ingressi ed s uscite, avremo rs possibili decisioni. Si tratta di assumere quella decisione che minimizza la probabilità di errore del canale, probabilità che definiamo come s P( E ) P( E | y j ) P( y j ) (6.1) j 1 ossia la media delle probabilità d’errore condizionali data l’uscita yj. Poiché si tratta di una somma di termini non negativi, dobbiamo scegliere una regola di decisione d(yj) tale da minimizzare la probabilità condizionale P(E|yj), ossia dobbiamo assumere la regola di decisione d(yj)=xi* tale che P( xi* | y j ) P( xi | y j ) per ogni i=1,…,r . Ma per la regola di Bayes P ( y j | x i* ) P ( x i* ) P ( y j | x i ) P ( x i ) (6.2) e anche P ( x i* , y j ) P ( x i , y j ) . La (6.2) individua xi* per ogni yj. Poiché vogliamo trovare la decisione che minimizza la (6.1), possiamo riscrivere la formula come somma delle probabilità che si verifichino gli eventi congiunti (xi,yj) con ii* : ossia quando la regola di decisione, che ha fatto decodificare yj in xi* , ha fatto in modo che venisse trasmesso (sbagliando) un simbolo diverso da xi* una volta ricevuto yj: s s P( E ) P( E | y j ) P( y j ) P( y j | xi ) P( xi ) j 1 j 1 i i* Nel caso in cui le P(xi) siano costanti ed uguali ad 1 , abbiamo una regola di decisione r notevole detta regola di decisione a massima verosimiglianza e la (6.2) diviene (essendo P(xi)=cost ) P ( y j | x i* ) P ( y j | x i ) con probabilità d’errore (essendo P(xi)=1/r ) P( E ) 1 s P( y j | xi ) . r j 1 i i* (6.3) Questa espressione è importante perché è la somma degli elementi di matrice di canale con l’esclusione di un termine per ogni colonna (per la colonna j-ma è il termine corrispondente ad i* in cui si è codificato yj. Si potrebbe dimostrare anche che esiste una relazione fra la P(E) e l’equivocazione dell’ingresso rispetto all’uscita, e vale H ( X | Y ) H ( P( E )) P( E ) log( r 1) disuguaglianza di Fano (6.4) La disuguaglianza di Fano fornisce quindi un limite inferiore alla probabilità d'errore, completando il secondo teorema di Shannon che porrà le condizioni per una probabilità di errore piccola a piacere. CODIFICA DI CANALE Anche se adottiamo in decodifica le regole più opportune, la riduzione della probabilità di errore è legata al trattamento dell’informazione prima della trasmissione, il che influenza la suscettibilità al rumore durante la trasmissione. Il trattamento dell’informazione prima della trasmissione è detto codifica di canale o codifica a correzione d’errore, ed ha lo scopo di ridurre l’influenza del rumore e dei disturbi introdotti dal canale sull’informazione, e quindi la probabilità di errore in ricezione. Fig. 6.1 Lo schema più generale di trasmissione comprende la codifica di canale, distinta dalla codifica di sorgente e applicata appunto allo scopo di attenuare gli effetti del rumore. Dunque la codifica di sorgente è rivolta all’indietro perché codifica i segnali provenienti dalla sorgente, mentre la codifica di canale è rivolta in avanti perché è attiva sul canale allo scopo di ridurre il rumore. Abbiamo visto che nella codifica di sorgente è consigliabile raggiungere il limite minimo, nella codifica di canale sarà la ridondanza, ossia l’aggiunta di digit supplementari a quelli di informazione, ad abbassare la probabilità di errore. Questa modalità è regolata dal secondo teorema di Shannon, che stbilisce i limiti con cui la codifica di canale può correggere gli errori introdotti dal rumore. In ricezione si eseguiranno le operazioni inverse: la decodifica di canale è rivolta ai digit che arrivano dal canale, ossia all’indietro: la decodifica di sorgente invia i simboli all’utente ed è quindi rivolta in avanti. Portiamo avanti l’esempio del canale BSC per valutare la possibilità di inviare messaggi sicuri. Consideriamo un BSC in cui sia =0.5 , con probabilità di errore p=0.01 , ossia tale che in media il 99% dei bit trasmessi sia ricevuto correttamente pur in assenza di codifica di canale. Le ordinarie necessità richiedono però una probabilità di errore dell’ordine di 10-6 o 10-8. La prima cosa che si può provare è ripetere ciascun messaggio (0 oppure 1) n volte, ad esempio n=3. Questo è il cosiddetto codice a ripetizione. In questo caso l’uscita del canale sarà uno qualunque degli elementi di (BSC)3: Messaggi Uscite 000 000 100 010 001 111 110 101 011 111 Come già visto nel caso di (BSC)2 (v. (4.2a)) e sapendo che p(0 | 0) p(1 | 1) p * p(1 | 0) p(0 | 1) p 1 p * avremo per estensione che la probabilità di un errore su 3 binit è 3pp*, quella di due errori è 3p2p*, e la probabilità che tutti e tre i binit siano ricevuti sbagliati è p3. Infatti sappiamo che per (BSC)2 la matrice di canale è la (4.2.b) Quindi dovremo creare la p*P pP pP p * PBSC p*P pP pP p*P P che diventa una matrice 8x8 corrispondente a p(000 | 000) p(000 | 001) p(000 | 010) p(000 | 011) p(000 | 001) p(000 | 101) p(001 | 000) ... ... ... p(010 | 000) ... ... ... ... ... ... ... p(000 | 110) ossia p *2 P p* pP pp * P p2 P p* pP p *2 p2 pp * ... ... ... ... ... ... ... ... .. da cui, limitandosi alla prima riga p *3 p *2 p p *2 p p * p2 pp *2 p2 p * p2 p * p3 p *2 p p *3 p * p2 p *2 p p2 p * pp *2 p3 p2 p * ... ... ... ... ... ... ... ... ... ... ... ... p(000 | 111) Adottiamo allora in ricezione una regola di decisione a maggioranza: ossia si decide per 000 o per 111 se la maggioranza dei digit della terna è 0 oppure 1. La probabilità d’errore con questa regola è quella che prevede due o tre binit in errore, ossia p( E ) 3 p 2 p * p 3 3.10 4 visto che p=0.01. Quindi con una semplice ripetizione con terne si è ridotta la probabilità d’errore di due ordini di grandezza. Se inviamo 5 binit per ogni 0 e 5 per ogni 1, sempre con decodifica a maggioranza, si arriva a calcolare che la probabilità di avere 5,4 o 3 errori diviene p(E)=10-5 . Se i binit ripetuti diventano 7,9,11 con la stessa regola di decisione a maggioranza, le probabilità di errore diventano 4 10 7 ,10 8 ,5 10 10 . Quando abbiamo la trasmissione diretta di 0 ed 1, abbiamo 1 bit di informazione per simbolo trasmesso. Nel caso di ripetizione tripla abbiamo 1 bit ogni 3 simboli trasmessi, e così via, ossia una velocità di trasmissione relativa di 1/3 bit/binit,….,1/11 bit/binit. Ponendo in grafico queste valutazioni, si osserva che la velocità di trasmissione dell’informazione (tasso di informazione) e la sicurezza della trasmissione vanno in modo inverso: (R= tasso di informazione , bit/messaggio 1 messaggio = 1 npla = k bit ) Fig. 6.2 Diminuzione della probabilità di errore con il tasso di informazione Ma il secondo teorema di Shannon dimostra che non è necessario ridurre indefinitamente il tasso di trasmissione per ridurre a piacere la probabilità d’errore. Nel caso binario, supponiamo che ciascun messaggio sia costituito da k bit di informazione, per un totale di M=2k messaggi da trasmettere. Allora possiamo codificare gli M messaggi in 2k n-ple, con n>k, introducendo in ciascun messaggio una ridondanza n-k. Come visto dalla teoria della distorsione e (3.6), in questo caso il tasso di informazione è R=k/n . Secondo il secondo teorema di Shannon, non è necessario che R tenda a zero perché la trasmissione si affidabile. Se C è la capacità di canale, basta che sia R<C per rendere la probabilità d’errore comunque piccola. Dunque questo è un teorema d’esistenza, nel senso che afferma l’esistenza di possibili codifiche, con velocità di trasmissione non trascurabili purchè inferiori a C, per cui è possibile rendere la probabilità d’errore piccola a piacere. SECONDO TEOREMA DI SHANNON O DELLA CODIFICA DI CANALE Consideriamo un canale con r simboli dì ingresso e s simboli di uscita, con capacità di canale C. Sia un numero arbitrariamente piccolo e M=rn(C-) , R=C- . k Si osserva che R n k , M r nR r n , e se r=2 M 2 k . n Per n sufficientemente grande è possibile scegliere un gruppo di M parole del codice per rappresentare M messaggi equiprobabili, fra i possibili rn simboli di ingresso della estensione n-ma del canale, in modo tale da rendere la probabilità di errore nella decodifica minore di . Inversamente, se questa probabilità è minore di deve aversi R=C- . L’idea del secondo teorema di Shannon è quella di scegliere M n-ple fra le possibili rn, in modo che k/n=C- ossia in modo che il tasso di informazione sia minore della capacità di canale. In questo modo è possibile rendere la probabilità di errore comunque piccola. In tal modo è possibile evitare la crescita indefinita di n per rendere la probabilità d’errore piccola a piacere. A questo scopo il tasso di informazione non deve essere reso basso indefinitamente: è sufficiente che sia minore di C. Nel caso r=2 si avrà M 2k Quindi log M k log 2 da cui log M k C . n n Dimostriamo il teorema in questo caso e per un canale BSC. (6.5) Supponiamo che la probabilità d’errore del canale sia pari a p. Di conseguenza se trasmettiamo una certa n-pla, cioè uno degli M messaggi, la n-pla avrà una distanza di Hamming (v. 3.5 e 3.5a) dH dalla parola trasmessa che varrà in media ( n p ), numero medio di errori per messaggio. Possiamo immaginare che la n-pla ricevuta si trovi nella sfera dello spazio delle n-ple avente per centro la n-pla trasmessa e per raggio ( n p ). Ma affinchè la probabilità d’errore in decodifica possa essere piccola a piacere, è necessario che queste sfere centrate nelle n-ple trasmesse siano fra loro disgiunte in modo che mai una n-pla ricevuta sia associabile a due diverse n-ple trasmesse. Ci dobbiamo allora chiedere: qual è il numero massimo M di n-ple che si possono trasmettere, ossia il massimo M nello spazio delle n-ple in modo che le sfere di raggio ( n p ) e centro nelle M parole del codice siano fra loro disgiunte? Si dimostra che questo numero è dato da M=2n(C-) (6.5a) con arbitrariamente piccolo. Se infatti ( n p ) è il numero medio di errori introdotti dal BSC in ogni n-pla trasmessa, allora il numero medio di sequenze che distano ( n p ) dalla medesima n-pla sarà pari al numero Cn,np di combinazioni semplici di n oggetti presi ( n p ) alla volta. Questo è il numero medio di n-ple che con alta probabilità risulterà in ricezione per ogni npla trasmessa. Quindi la condizione che due sfere qualsiasi centrate nelle n-ple trasmesse non siano sovrapposte è che il numero M dei messaggi (n-ple) trasmissibili sia al massimo uguale al rapporto fra tutte le uscite altamente probabili e le uscite corrispondenti ad un messaggio (Cn,np ). Sappiamo che nel caso BSC il numero di uscite altamente probabili è 2nH(Y) (essendo r=2 e H log 2 r per la 2.1a) , dove nH(Y) è l’entropia dell’estensione n-ma dell’uscita del canale. Questa grandezza è a sua volta legata a P(Y) e quindi anche a p. In definitiva si avrà quindi M Per la valutazione di 2 nH (Y ) . C n ,np C n,np n! [( np)!(n np)!] applichiamo al fattoriale l’approssimazione di Stirling per cui n! n n e n (2n)1 / 2 ottenendo facilmente per sostituzione C n.np p np (1 p) n (1 p ) [2n( p(1 p))]1 / 2 Se poniamo il denominatore uguale ad 1 (si ha p p 2 1 che per n grande è sempre 2n vero) , aumentando in questo modo il numero di n-ple considerate ricevibili per ogni n-pla trasmessa) sia ricava (essendo N=2logN ): Cn,np 2 np log p 2 n(1 p ) log(1 p ) Da cui Cn,np 2 n( p log p(1 p ) log(1 p )) 2 nH ( p ) dove H(p) è l’entropia del BSC. In conclusione, il valore massimo di M affinchè la trasmissione sia affidabile in modo che le sfere corrispondenti ai messaggi inviati non siano mai sovrapposte sarà M 2 nH (Y ) / 2 nH ( p ) 2 n ( H (Y ) H ( p )) (6.6) Quindi la information rate R si può esprimere come R log M H (Y ) H ( p). n (6.7) Questo significa che la information rate coincide con l’informazione mutua del canale BSC, ha come valorre massimo la capacità C del canale BSC che vale 1-H(p), dove 1 è il valore massimo dell’entropia dell’uscita, raggiunto quando gli ingressi 0 ed 1 sono equiprobabili. Dunque è possibile prendere R vicina a piacere a C, purchè inferiore. Fissato allora >0 piccolo a piacere, possiamo porre R=C- e quindi avere dalla (6.6) M 2 n (C ) , con sfere disgiunte tali da assicurare una probabilità di errore inferiore ad . Viceversa, se la probabilità è minore di , per la (6.6) si deve avere M 2 n (C ) e quindi R=C- . Questo mostra la validità del secondo teorema di Shannon, ossia del fatto che in linea di principio esiste una codifica con probabilità d’errore comunque piccola, inferiore ad un certo , che consente un tasso di informazione R=C- . La dimostrazione generale del secondo teorema di Shannon è molto complessa. Ne accenniamo le linee generali. Dobbiamo trasmettere M 2 k messaggi, ciascuno associato ad una n-pla con n>k. Per far questo scegliamo a caso la n-pla , la parola di codice da associare a ciascuno degli M messaggi (codifica di Shannon). Nel caso binario, se 2 n sono le n-ple possibili, si avranno in tutto 2nM codici, tanti quante sono le disposizioni con ripetizione di 2 n oggetti presi M alla volta. Allora, se tutti i codici sono equiprobabili, la probabilità di sceglierne uno sarà 1 2 nM 2 nM . Trasmettitore e ricevitore conoscono il codice a la matrice di canale. Il messaggio da trasmettere avrà probabilità 1 2 k 2 nR . M Supponiamo di inviare nel canale questo messaggio, una particolare n-pla x n W . Al ricevitore arriva una n-pla yn che può essere qualsiasi data la possibilità di errore causata dal passaggio nel canale. Il ricevitore dichiara che è stata trasmessa la parola x *n W * , che diciamo “congiuntamente tipica con yn ” : ossia, fissato >0, le due n-ple appartengono entrambe ad un insieme individuato dall’entropia H(Xn;Yn) dell’evento congiunto (Xn,Yn) ed uguale . Se a questo insieme non appartiene nessuna altra W’, si dà per trasmessa W*. Ma se non c’è nessuna W* o ce n’è più di una, il ricevitore decide che si è verificato l’errore E, ossia che W*W trasmesso. Viene allora calcolata la probabilità P(E)=P(W*W). La valutazione viene effettuata calcolando la media di P(E) su tutte le M n-ple e su tutti i possibili 2nM codici. A questo punto si trova che a patto che sia R=C- e che n sia abbastanza grande, la probabilità che W* sia diverso da W è piccola a piacere: P(E)<2 . Si dimostra cioè che esistono codifiche degli M=2k messaggi in altrettante delle 2n n-ple che, mantenendo un tasso di informazione R purchè inferiore a C, per n abbastanza grande hanno una probabilità di errore in decodifica che tende a zero. Poiché si è mediato su tutti i 2nM codici, si giunge solo ad un teorema di esistenza. Sfruttando la diseguaglianza di Fano (6.4) si dimostra anche il teorema inverso, ossia che se una codifica degli M messaggi nelle 2n n-ple ha una probabilità d’errore che tende a zero (ossia è inferiore ad un prefissato >0) al crescere di n, allora deve avere un tasso di informazione minore della capacità di canale, R=C- . Sulla spinta del secondo teorema di Shannon molti studiosi hanno studiato metodi di codifica, alcuni dei quali giungono a probabilità d’errore con tasso di informazione molto vicino a C. ______________________ Un esempio. R=k/n, p(E)=p 1 degli M=2k messaggi sarà una n-pla che porta k bit (es. 000, k=1, n=3). Ogni messaggio avrà distanza dH dalla parola trasmessa, in media dH=np=3p Ad esempio: -parola trasmessa (k=1) 0 -messaggio 000 p dipende dal canale -confronto 0 con ognuno degli n=3 bit (0,0,0) Dato n=3, quale M minimizza l’errore ? Nello spazio R3 creo delle sferette di raggio 3p, ognuna centrata sulla n-pla (3pla) trasmessa, e faccio in modo che non si compenetrino: ogni 3-pla ricevuta deve appartenere ad una sola sferetta. Le 3-ple sono in numero C3,3p . .