Comunicazioni Elettriche II Laurea Magistrale in Ingegneria Elettronica Università di Roma La Sapienza A.A. 27-28
Teoria dell informazione Esercitazione 6
Teorema della codifica di sorgente Si consideri una sorgente costituita da prove ripetute di una v.a. X con p(x) con ritmo pari a r prove/secondo Si definisce la velocità R della sorgente in bit/s! R = rh ( X ) Teorema: la sorgente può essere codificata con un codificatore di sorgente in un flusso di bit con velocità di trasmissione pari a R+ε per ogni ε> Il problema è quindi trovare codici che permettano di rendere ε piccolo: spesso si sceglie di adottare codici sub-ottimi ma più facilmente realizzabili
Codifica di sorgente Quali sono le proprietà necessarie e auspicabili per la codifica di sorgente? Necessaria: un codice deve essere univocamente decodificabile (non ci possono essere due simboli identificati dalla stessa parola di codice) Auspicabile: la lunghezza media di una parola di codice dovrebbe essere minimizzata in modo da minimizzare il bit rate necessario per trasferire i simboli di sorgente
Codifica di sorgente Classi di Codici Sorgente Codice Singolare Codice Non- Singolare, Non decodificabile univocamente Codice Non-Singolare, decodificabile univocamente, Non istantaneo Codice Non-Singolare, decodificabile univocamente, istantaneo 2 3 4 *non-singolare: ad ogni elementodella sorgente è associata una diversa stringa *decodificabile univocamente: unasuccessionedi stringhe nonforma una stringa *istantaneo: verifica la regoladel prefisso il prefissodi una stringa nonè esso stessouna stringa. Codifica Ottima: minimizza la lunghezzamedia L[bit] delcodice,rispettando ilvincoloh(x) L.
Codifica di Huffman Genera un codice non-singolare, decodificabile univocamente, ed istantaneo La codifica di Huffman è ottima! P= a a 8 a 6 a 3.3.3.5..25.4.6 a 4.8.5 a 7 a 2 a 5.5...2.7 esempio codice di a 7 () - ovvero
Esercizio : Codifica di Huffman Quali dei seguenti codici NON sono codici di Huffman? Motiva le risposte. a) {,, } b) {,,, } c) {, } a) È un possibile codice di Huffman per una sorgente ternaria tale che p(x): {/2, ¼, ¼}. b) NON è un codice di Huffman in quanto non è ottimo. Può infatti essere ridotto a {,,, }. c) NON è un codice di Huffman in quanto non è ottimo. Può infatti essere ridotto a {,}.
Esercizio 2: Codifica di Huffman. Si generi un codice binario di Huffman per la sorgente avente la seguente PMF: p(x):{/3, /5, /5, 2/5, 2/5} 2. Si mostri che il codice trovato è ottimo*, sia per la PMF al punto che nel caso di sorgente equiprobabile. q(x):{/5, /5, /5, /5, /5} *codice ottimo: minimizza la lunghezza media L [bit], rispettando il vincolo H(X) L.
Esercizio 2: Codifica di Huffman Un possibile codice di Huffman è il seguente: a /3 9/5 a 2 a 3 /5 /5 2/5 P = a 4 a 5 2/5 2/5 4/5 a a 2 a 3 a 4 H(p) = /3*log(3) + 2*/5*log(5) + 2*2/5*log(5/2) = 2.2323 bit L Huff = /3*2 + 2*/5*2 + 2*2/5*3 = 2.26 bit H(p) a 5 H(q) = log(5) = 2.329 bit L Huff = 3*/5*2 + 2*/5*3 = 2/5 bit $ L gen = " # = " &'" ( '" ) '" * '" + =, -./ $ $ $ Il valore di K più vicino alla codifica di Huffman è K=. K = L 456 = // = 2.2 bit < H(q), quindi tale codifica non è utilizzabile, la codifica di Huffman è ottima. $
Esercizio 3: Codifica, Entropia, ed Entropia relativa X è una sorgente a 5 possibili realizzazioni {, 2, 3, 4, 5} Considerate due possibili distribuzioni per X, tali che p(x): {/2, ¼, /8, /6, /6} q(x): {/2, /8, /8, /8, /8} Considerate due possibili codifiche, tali che C : {,,,, } C 2 : {,,,, } a) Calcolare H(p), H(q), D(p q), e D(q p). b) Verificare che la lunghezza media di C, rispetto a p(x), sia uguale a H(p) (C è ottimo per p(x)). Verificare che C 2 è ottimo per q(x). c) Assumendo di utilizzare C 2 quando la distribuzione è p(x), calcolare la lunghezza media del codice, e di quanto tale lunghezza eccede l entropia H(p). d) Calcolare l inefficienza nell utilizzo di C quando la distribuzione è q(x). N.B. l esercizio può essere svolto utilizzando Matlab, utilizzando le funzioni e gli script delle esercitazioni precedenti, e aggiungendo nuove funzionalità dove opportuno.