01AJY “Comunicazioni Elettriche”, TLC Esercitazione su Codifica di Sorgente Esercizio 1 Sia data una sorgente con alfabeto X di 8 simboli aventi le seguenti probabilità: { p1=p2=p3=1/4; p4=1/8; p5=1/16; p6=1/32; p7=p8=1/64 } Calcolare l’entropia di X Dare una codifica di Huffmann di X Valutare l’efficienza del codice Esercizio 2 Un sistema di trasmissione binario utilizza un alfabeto X di due simboli (1 0) che vengono emessi con probabilità rispettivamente pari a {0.2 ; 0.8}. La velocità di emissione di simboli di informazione dalla sorgente é pari a 8 Kbaud. Volendo utilizzare una codifica di Huffmann per la sorgente composta Xn , calcolare: la codifica di Huffmann per il codice composto X3 l’entropia, la lunghezza media e l’efficienza della codifica trovata al punto precedente il rapporto tra le efficienze di codifica per X e X3 l’effettiva velocità di trasmissione in digit/s all’uscita di un decodificatore che usi la codifica calcolata al punto precedente per X3. Esercizio 3 Sia data una sorgente di messaggi X={x1, x2, x3} con P(x1)=0.1, P(x2)=0.3, p(x3)=0.6 e si vuole ottenere una efficienza di codifica > 0.95. Utilizzando la codifica a lunghezza variabile (Huffmann), ricavare quale deve essere la lunghezza della sorgente composta per ottenere tale efficienza. SOLUZIONE ESERCIZIO 1 x p1 p2 p3 p4 p5 p6 p7 p8 1 1 1 1 1 1 1 1 , , , , , , , 4 4 4 8 16 32 64 64 8 simboli 1. Calcolare l’entropia di X M H X pi log 2 i 1 8 1 1 pi log 2 pi i 1 pi 1 1 1 1 1 log 2 4 3 log 2 8 log 2 16 log 2 32 log 2 64 2 8 16 32 4 64 p1 p2 p3 1 1 1 1 1 2 3 3 4 5 6 2 8 16 32 4 64 3 3 1 5 6 79 bit 2 8 4 32 32 32 simbolo H X 2.46875 bit simbolo p 7 p8 2. Dare un codifica di Huffman di X p1 0 4 p2 1 4 p3 8 p4 1 1 1 1 1 16 1 32 p6 1 64 p7 64 p8 1 p1 p2 p3 4 0 0 0 p5 p4 p5 2 2 2 3 4 00 01 10 110 1110 p6 5 11110 p7 6 111110 p8 6 111111 1 0 01 1 32 1 1 16 1 1 8 1 1 4 1 2 1 0 2 1 3. Calcolo dell’efficienza Dalla codifica: Simbolo Probabilità Lunghezza 1 p1 2 4 1 p2 2 4 1 p3 2 4 1 p4 3 8 1 p5 4 16 1 p6 5 32 1 p7 6 64 1 p8 6 64 Lunghezza media: 1 1 1 1 3 3 1 5 6 79 digit 1 n 2 3 3 4 5 6 2 8 16 32 64 2 8 4 32 32 32 simbolo 4 digit n 2.46875 simbolo 79 H X 32 1 79 n 32 ESERCIZIO 2 X 1 ; 0 0.2 simboli emessi dalla sorgente 0.8 velocità sorgente = 8 Kbaud, cioe’ (per definizione di “baud”) 8000 simboli al secondo Calcolare: La codifica di Huffman per il codice composto X 3 H X 3 , X 3 , nX 3 X X l’effettiva velocità di trasmissione in digit/sec all’uscita del codificatore per la codifica X 3 3 Codifica di Huffmann per il codice composto X 3 : i simboli sono dati dalle combinazioni di 3 simboli dell’insieme X 000 0.83 0.512 001 0.82 0.2 0.128 010 0.128 100 0.128 011 101 0.22 0.8 0.032 0.032 110 0.032 0.256 0.488 0.104 0.040 0.008 111 0.232 0.064 1. Dalla codifica di Huffman di X 3 , si ha Simbolo p1 p2 p3 p4 p5 Simboli in ingresso Probabilità Decodifica Lunghezza al decodificatore 000 0.512 0 1 001 0.128 100 3 010 0.128 101 3 100 0.128 110 3 011 0.032 11100 5 p6 101 0.032 11101 5 p7 110 0.032 11110 5 p8 111 0.008 11111 5 2. H X 3 è l' entropia di 3 simboli con entropia H X 1 1 H X 3 3 H X 0.2 log 2 0.8 log 2 3 0.2 0.8 per le proprietà di H(X) H X3 3 bit 0.2 log 10 5 0.8 log 10 1.25 2.16578 log 10 2 simb bit H X 3 2.16578 simb digit n X 3 1 0.512 3 0.128 3 5 0.032 3 5 0.008 2.18400 simb digit n X 3 2.18400 simb H X 3 2.16578 X3 0.99166 nX 3 2.184 3. Calcolo di X 3 X Dovremmo calcolare la codifica di Huffmann dell’insieme X 1 ; 0 , ma essendo il n° di simboli pari a 2 il segnale codificato è sempre 1 ; 0 , di conseguenza n X 1 , infatti 0 0.8 0 1 0.2 1 Lunghezza Probabilità 1 0.8 1 0.2 digit n X 0.8 1 0.2 1 1 simb X H X 0.721928 nX X 0.99166 1.374 X 0.721928 3 4. Calcolo della velocità effettiva 1 simboli velocità = velocità sorgente nsimboli sec nsimboli sorg codif simbolo codif 1 digit K digit 5.824 velocità = 8K baud 2.184 3 simb sec ESERCIZIO 3 Si abbia: X x1 , x 2 , x3 p 0.1 0.3 0.6 Utilizzando la codifica di Huffmann alla sorgente composta X k , si vuole X k 0.95 Calcolare la lunghezza della sorgente composta k SOLUZIONE 1° CASO: k=1 Codifica di Huffmann di X x3 0.6 x2 0.3 0 0 0.4 x1 0.1 1 Simbolo Probabilità Codifica Lunghezza x3 0.6 0 1 x2 0.3 10 2 x1 0.1 11 2 1 M H X pi log 2 i 1 3 1 1 pi log 2 pi i 1 pi 1 1 1 0.3 log 2 0.1 log 2 0.6 0.3 0.1 1 1 1 1 bit 0.6 log 0.3 log 0.1 log 1.29546 log 2 0.6 0.3 0.1 simb 0.6 log 2 bit H X 1.29546 simb digit n X 0.6 1 0.3 2 0.1 2 14 simb NO X H X 0.9253 0.95 richiesto nX Codifica di Huffmann di X 2 0 x3 x3 0.36 x3 x 2 0.18 0 x 2 x3 0.18 1 x2 x2 x1 x3 0.09 x3 x1 0.06 x2 x1 0.03 x1 x2 0.03 x1 x1 0.01 1 0.36 0 0 0.64 0 0.06 0 0.12 1 0.16 0 0.07 0 0.04 1 1 1 0.28 1 1 Dalla codifica di Huffmann di X 2 Simbolo Probabilità Codifica Lunghezza x3 x3 0.36 0 1 x3 x 2 0.18 100 3 x 2 x3 0.18 101 3 x2 x2 0.09 1110 4 x1 x3 0.06 1100 4 x3 x1 0.06 1101 4 x2 x1 x1 x2 x1 x1 0.03 0.03 0.01 11110 111110 111111 5 6 6 bit H X 2 2 H X 2.59092 simb n X 2 1 0.36 3 0.18 2 4 0.09 4 0.06 2 5 0.03 6 0.03 6 0.01 digit 0.36 1.08 0.36 0.48 0.15 0.18 0.06 2.6700 simb digit n X 2 2.6700 simb X 2 H X2 2.59092 0.9704 0.95 OK nX 2 2.6700 La lunghezza della sorgente composta è k=2