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