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  nsimboli 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