Salta al contenuto
Note per Studenti Esercizio - Huffman, codice di Shannon, funzione deterministica di una sorgente e informazione mutua di un canale (secondo compitino del 9 gennaio 2026, es. 196)

Esercizio - Huffman, codice di Shannon, funzione deterministica di una sorgente e informazione mutua di un canale (secondo compitino del 9 gennaio 2026, es. 196)

Esame
In questa pagina 6

Testo (secondo compitino del 9 gennaio 2026, esercizio 196). Una sorgente genera simboli sns_n con periodo di simbolo Ts=1T_s=1 ms e alfabeto A={1,2,3,4,5,6}\mathcal A=\{1,2,3,4,5,6\}, indipendenti ed identicamente distribuiti, con probabilità ps(1)=0,05, ps(2)=0,05, ps(3)=0,12, ps(4)=0,18, ps(5)=0,21, ps(6)=0,39.p_s(1)=0{,}05,\ p_s(2)=0{,}05,\ p_s(3)=0{,}12,\ p_s(4)=0{,}18,\ p_s(5)=0{,}21,\ p_s(6)=0{,}39.

  1. Calcolare la lunghezza media delle parole del codice di sorgente binario ottimo per i simboli della sorgente. Scrivere le parole di codice relative ai simboli 11 e 22.
  2. Utilizzando ora un codice binario di Shannon calcolare la lunghezza media delle parole di codice.
  3. Si definisce ora zn=1z_n=1 se sn≤3s_n\le3 e zn=snz_n=s_n se sn>3s_n>3. Calcolare il limite inferiore secondo il teorema di Shannon alla lunghezza delle parole di un codice binario per znz_n.
  4. Calcolare H(zn∣sn)H(z_n|s_n), motivando la risposta.
  5. Calcolare la mutua informazione di un canale con ingresso e uscita simboli con alfabeto A\mathcal A, simboli in ingresso equiprobabili e diagramma di transizione di canale così rappresentato: i simboli 1,2,3,41,2,3,4 vanno ciascuno in se stesso con probabilità 11 (collegamenti diritti); il simbolo 55 va in 55 con probabilità 0,80{,}8 e in 66 con probabilità 0,20{,}2; il simbolo 66 va in 66 con probabilità 0,80{,}8 e in 55 con probabilità 0,20{,}2.

Teoria usata: Codici di Shannon, Huffman ed Elias e codifica aritmeticaIl codice di Shannon(-Fano) assegna alla parola $i$ lunghezza $l_i=\lceil-\log_{M_y}p_i\rceil$, soddisfa Kraft-McMillan e ha $H\le L_y<H+1$; è ottimo solo se le probabilità sono potenze di $\frac1{M_y}$. Il codice ottimo (lunghezza media minima) dà parole più lunghe ai simboli meno probabili e ha almeno due parole di lunghezza massima che differiscono solo nell'ultimo simbolo: lo costruisce la procedura di Huffman, che unisce a ogni passo i due nodi meno probabili. Il codice di Elias prende le prime $l_i=\lceil-\log_2p_i\rceil+1$ cifre del punto medio dell'intervallo di ampiezza $p_i$ in $[0,1)$: è a prefisso ma subottimo ($H+1\le L_y<H+2$), e si adatta alla codifica aritmetica adattativa.Codici di Shannon, Huffman ed Elias e codifica aritmetica → (punti 1 e 2), Codici a prefisso - Kraft-McMillan e limiti di Shannon sulla lunghezza mediaLa codifica di sorgente senza perdite associa a ogni parola emessa dalla sorgente una parola di codice binaria (o $M_y$-aria) di lunghezza variabile, in modo invertibile; la qualità si misura con la lunghezza media $L_y=\sum p_{\underline x}(\underline a),l(\underline a)$. In un codice a prefisso nessuna parola è l'inizio di un'altra, quindi la decodifica è istantanea. Kraft-McMillan: ogni codice decodificabile ha $\sum M_y^{-l_i}\le1$, e se interi $l_i$ la soddisfano esiste un codice a prefisso con quelle lunghezze. Shannon: $\frac{H(\underline x)}{\log_2M_y}\le L_y<\frac{H(\underline x)}{\log_2M_y}+1$ per il codice a prefisso ottimo, con $L_y=\frac{H}{\log_2M_y}$ solo se le probabilità sono potenze di $\frac1{M_y}$.Codici a prefisso - Kraft-McMillan e limiti di Shannon sulla lunghezza media → (punto 3), Entropia congiunta e condizionata e informazione mutuaPer due variabili aleatorie discrete $x,y$ l'entropia congiunta è $H(x,y)=E\left[\log_2\frac1{P_{x,y}(x,y)}\right]$ e vale $\max{H(x),H(y)}\le H(x,y)\le H(x)+H(y)$, con l'uguaglianza a destra se e solo se $x$ e $y$ sono indipendenti e $H(x,y)=H(x)$ se $y=f(x)$. L'entropia condizionata $H(x|y)=E_y[H(x|y=y)]$ soddisfa la regola della catena $H(x,y)=H(x|y)+H(y)=H(y|x)+H(x)$. L'informazione mutua $I(x;y)=H(x)+H(y)-H(x,y)=H(x)-H(x|y)=H(y)-H(y|x)$ è simmetrica, $0\le I\le\min{H(x),H(y)}$, nulla per variabili indipendenti.Entropia congiunta e condizionata e informazione mutua → (punti 4 e 5), Tasso d'informazione, capacità di canale e teorema di ShannonUna sorgente che emette un simbolo ogni $T$ secondi ha tasso d'informazione $R=\frac{H_s}T$ [bit/s] ($H_s$ entropia per simbolo); un canale ha tasso $R(g)=\frac{I_s(x;y)}T\le R(x)$. La capacità è il massimo del tasso del canale su tutte le statistiche d'ingresso, $C=\max_{p_x}\frac{I(x;y)}T$ per un canale senza memoria. Teorema di Shannon: se il tasso nominale della sorgente è $R\le C$ esiste un codice di canale con probabilità d'errore piccola a piacere, se $R>C$ no. Capacità: BSC $C=\frac1T[1-h(P_{bit})]$, canale a cancellazione $C=\frac{1-\alpha}T$, AWGN reale $C=\frac1{2T}\log_2\left(1+\frac{E_s}{\sigma^2}\right)$; canali in parallelo sommano le capacità.Tasso d'informazione, capacità di canale e teorema di Shannon →.

(1) Codice di Huffman

Probabilità ordinate: 0,39 (s6); 0,21 (s5); 0,18 (s4); 0,12 (s3); 0,05 (s1); 0,05 (s2)0{,}39\,(s_6);\ 0{,}21\,(s_5);\ 0{,}18\,(s_4);\ 0{,}12\,(s_3);\ 0{,}05\,(s_1);\ 0{,}05\,(s_2) (somma 11 ✓). A ogni passo si uniscono i due nodi meno probabili.

Passo Nodi disponibili Unione
1 0,39; 0,21; 0,18; 0,12; 0,05; 0,050{,}39;\ 0{,}21;\ 0{,}18;\ 0{,}12;\ 0{,}05;\ 0{,}05 s1+s2=0,10s_1+s_2=0{,}10 (nodo AA)
2 0,39; 0,21; 0,18; 0,12; 0,10 (A)0{,}39;\ 0{,}21;\ 0{,}18;\ 0{,}12;\ 0{,}10\,(A) s3+A=0,22s_3+A=0{,}22 (nodo BB)
3 0,39 (s6); 0,22 (B); 0,21; 0,180{,}39\,(s_6);\ 0{,}22\,(B);\ 0{,}21;\ 0{,}18 s5+s4=0,39s_5+s_4=0{,}39 (nodo CC)
4 0,39 (s6); 0,39 (C); 0,22 (B)0{,}39\,(s_6);\ 0{,}39\,(C);\ 0{,}22\,(B) B+C=0,61B+C=0{,}61 (nodo DD)
5 0,61 (D); 0,39 (s6)0{,}61\,(D);\ 0{,}39\,(s_6) radice =1=1

Al passo 4 c'è un pareggio (s6s_6 e CC valgono entrambi 0,390{,}39): si può unire BB con l'uno o con l'altro. Scegliendo CC si ottiene il codice sotto; scegliendo s6s_6 si otterrebbe un altro codice (con s6s_6 di 22 bit), ma con la stessa lunghezza media. Etichettando con 11 il ramo di s6s_6 alla radice, con 00 quello di DD, poi D→C=0, B=1D\to C=0,\ B=1, C→s5=0, s4=1C\to s_5=0,\ s_4=1, B→A=0, s3=1B\to A=0,\ s_3=1, A→s1=0, s2=1A\to s_1=0,\ s_2=1:

Simbolo pp Parola Lunghezza
s6s_6 0,390{,}39 11 11
s5s_5 0,210{,}21 000000 33
s4s_4 0,180{,}18 001001 33
s3s_3 0,120{,}12 011011 33
s1s_1 0,050{,}05 01000100 44
s2s_2 0,050{,}05 01010101 44

Le parole dei simboli 11 e 22 sono 01000100 e 01010101 (le due parole più lunghe, che differiscono solo nell'ultimo bit, come deve essere in un codice ottimo). Lunghezza media e controllo con i nodi interni: Ly=0,39⋅1+(0,21+0,18+0,12)⋅3+(0,05+0,05)⋅4=0,39+1,53+0,40=2,32 bit,L_y=0{,}39\cdot1+(0{,}21+0{,}18+0{,}12)\cdot3+(0{,}05+0{,}05)\cdot4=0{,}39+1{,}53+0{,}40=2{,}32\ \text{bit}, 0,10+0,22+0,39+0,61+1=2,32 ✓.0{,}10+0{,}22+0{,}39+0{,}61+1=2{,}32\ \checkmark. Con l'altra scelta del pareggio le lunghezze sarebbero 4,4,3,2,2,24,4,3,2,2,2 per s1,s2,s3,s4,s5,s6s_1,s_2,s_3,s_4,s_5,s_6 e Ly=0,4+0,36+0,18⋅2+0,21⋅2+0,39⋅2=2,32L_y=0{,}4+0{,}36+0{,}18\cdot2+0{,}21\cdot2+0{,}39\cdot2=2{,}32 bit: la stessa. L'entropia è H(s)=2,247H(s)=2{,}247 bit, quindi 2,247≤2,32<3,2472{,}247\le2{,}32<3{,}247 ✓.

(2) Codice di Shannon

Le lunghezze sono li=⌈−log⁡2pi⌉l_i=\lceil-\log_2p_i\rceil:

Simbolo pp −log⁡2p-\log_2p l=⌈⋅⌉l=\lceil\cdot\rceil
s1s_1 0,050{,}05 4,3224{,}322 55
s2s_2 0,050{,}05 4,3224{,}322 55
s3s_3 0,120{,}12 3,0593{,}059 44
s4s_4 0,180{,}18 2,4742{,}474 33
s5s_5 0,210{,}21 2,2522{,}252 33
s6s_6 0,390{,}39 1,3591{,}359 22

Controllo di Kraft: 2⋅132+116+2⋅18+14=0,625≤12\cdot\frac1{32}+\frac1{16}+2\cdot\frac18+\frac14=0{,}625\le1 ✓. La lunghezza media è Ly=∑pili=0,05⋅5⋅2+0,12⋅4+0,18⋅3+0,21⋅3+0,39⋅2=0,50+0,48+0,54+0,63+0,78=2,93 bit.L_y=\sum p_il_i=0{,}05\cdot5\cdot2+0{,}12\cdot4+0{,}18\cdot3+0{,}21\cdot3+0{,}39\cdot2=0{,}50+0{,}48+0{,}54+0{,}63+0{,}78=2{,}93\ \text{bit}. Peggiore del codice ottimo (2,322{,}32), come ci si aspetta, ma dentro il limite H≤Ly<H+1=3,247H\le L_y<H+1=3{,}247.

(3) Limite di Shannon per znz_n

La variabile znz_n accorpa i simboli 1,2,31,2,3 nel valore 11 e lascia gli altri: ha alfabeto {1,4,5,6}\{1,4,5,6\} e probabilità pz(1)=ps(1)+ps(2)+ps(3)=0,05+0,05+0,12=0,22,pz(4)=0,18, pz(5)=0,21, pz(6)=0,39p_z(1)=p_s(1)+p_s(2)+p_s(3)=0{,}05+0{,}05+0{,}12=0{,}22,\quad p_z(4)=0{,}18,\ p_z(5)=0{,}21,\ p_z(6)=0{,}39 (somma 0,22+0,18+0,21+0,39=10{,}22+0{,}18+0{,}21+0{,}39=1 ✓). Per il teorema di Shannon la lunghezza media di un codice binario è almeno l'entropia (Codici a prefisso - Kraft-McMillan e limiti di Shannon sulla lunghezza mediaLa codifica di sorgente senza perdite associa a ogni parola emessa dalla sorgente una parola di codice binaria (o $M_y$-aria) di lunghezza variabile, in modo invertibile; la qualità si misura con la lunghezza media $L_y=\sum p_{\underline x}(\underline a),l(\underline a)$. In un codice a prefisso nessuna parola è l'inizio di un'altra, quindi la decodifica è istantanea. Kraft-McMillan: ogni codice decodificabile ha $\sum M_y^{-l_i}\le1$, e se interi $l_i$ la soddisfano esiste un codice a prefisso con quelle lunghezze. Shannon: $\frac{H(\underline x)}{\log_2M_y}\le L_y<\frac{H(\underline x)}{\log_2M_y}+1$ per il codice a prefisso ottimo, con $L_y=\frac{H}{\log_2M_y}$ solo se le probabilità sono potenze di $\frac1{M_y}$.Codici a prefisso - Kraft-McMillan e limiti di Shannon sulla lunghezza media →): H(z)=0,22log⁡210,22+0,18log⁡210,18+0,21log⁡210,21+0,39log⁡210,39=0,4806+0,4453+0,4728+0,5298=1,9285 bit.H(z)=0{,}22\log_2\tfrac1{0{,}22}+0{,}18\log_2\tfrac1{0{,}18}+0{,}21\log_2\tfrac1{0{,}21}+0{,}39\log_2\tfrac1{0{,}39}=0{,}4806+0{,}4453+0{,}4728+0{,}5298=1{,}9285\ \text{bit}. Il limite inferiore è 1,931{,}93 bit per simbolo znz_n (minore di H(s)=2,247H(s)=2{,}247: l'accorpamento fa perdere informazione).

(4) H(zn∣sn)H(z_n|s_n)

znz_n è una funzione deterministica di sns_n: noto sns_n il valore di znz_n è fissato. Quindi per ogni bb la densità Pz∣s(⋅∣b)P_{z|s}(\cdot|b) ha un solo valore con probabilità 11 e H(z∣s=b)=0H(z|s=b)=0; mediando, H(zn∣sn)=∑bPs(b) H(z∣s=b)=0.H(z_n|s_n)=\sum_bP_s(b)\,H(z|s=b)=0. Equivalentemente, per la regola della catena, H(z∣s)=H(s,z)−H(s)=H(s)−H(s)=0H(z|s)=H(s,z)-H(s)=H(s)-H(s)=0 perché H(s,z)=H(s)H(s,z)=H(s) (Entropia congiunta e condizionata e informazione mutuaPer due variabili aleatorie discrete $x,y$ l'entropia congiunta è $H(x,y)=E\left[\log_2\frac1{P_{x,y}(x,y)}\right]$ e vale $\max{H(x),H(y)}\le H(x,y)\le H(x)+H(y)$, con l'uguaglianza a destra se e solo se $x$ e $y$ sono indipendenti e $H(x,y)=H(x)$ se $y=f(x)$. L'entropia condizionata $H(x|y)=E_y[H(x|y=y)]$ soddisfa la regola della catena $H(x,y)=H(x|y)+H(y)=H(y|x)+H(x)$. L'informazione mutua $I(x;y)=H(x)+H(y)-H(x,y)=H(x)-H(x|y)=H(y)-H(y|x)$ è simmetrica, $0\le I\le\min{H(x),H(y)}$, nulla per variabili indipendenti.Entropia congiunta e condizionata e informazione mutua →).

(5) Informazione mutua del canale

Si usa I(X;Y)=H(Y)−H(Y∣X)I(X;Y)=H(Y)-H(Y|X) con XX uniforme: PX(i)=16P_X(i)=\frac16.

  1. Uscita. Per j=1,…,4j=1,\dots,4: PY(j)=16⋅1=16P_Y(j)=\frac16\cdot1=\frac16. Per j=5j=5: PY(5)=16⋅0,8+16⋅0,2=16P_Y(5)=\frac16\cdot0{,}8+\frac16\cdot0{,}2=\frac16 (arriva da 55 con 0,80{,}8 e da 66 con 0,20{,}2), e allo stesso modo PY(6)=16P_Y(6)=\frac16. L'uscita è uniforme su 66 simboli: H(Y)=log⁡26=2,585 bit.H(Y)=\log_26=2{,}585\ \text{bit}.
  2. H(Y∣X)H(Y|X). Per X=i≤4X=i\le4 l'uscita è deterministica: H(Y∣X=i)=0H(Y|X=i)=0. Per X=5X=5 e X=6X=6 l'uscita vale uno dei due simboli con probabilità 0,80{,}8 e 0,20{,}2: H(Y∣X=5)=H(Y∣X=6)=h(0,2)=0,2log⁡25+0,8log⁡254=0,4644+0,2575=0,7219H(Y|X=5)=H(Y|X=6)=h(0{,}2)=0{,}2\log_25+0{,}8\log_2\frac54=0{,}4644+0{,}2575=0{,}7219 bit. La media sui sei ingressi equiprobabili: H(Y∣X)=46⋅0+26⋅0,7219=0,2406 bit.H(Y|X)=\frac46\cdot0+\frac26\cdot0{,}7219=0{,}2406\ \text{bit}.
  3. Informazione mutua. I(X;Y)=2,585−0,2406=2,344 bit per uso del canale.I(X;Y)=2{,}585-0{,}2406=2{,}344\ \text{bit per uso del canale}.

Osservazione. L'ingresso uniforme non è l'ingresso ottimo: massimizzando numericamente I(X;Y)I(X;Y) su tutte le densità d'ingresso (algoritmo di Blahut-Arimoto) si ottiene la capacità C=2,382C=2{,}382 bit per uso, con PX=0,192P_X=0{,}192 per ciascuno dei simboli 1,…,41,\dots,4 e 0,1160{,}116 per i simboli 55 e 66: conviene usare meno i due simboli che si confondono (Tasso d'informazione, capacità di canale e teorema di ShannonUna sorgente che emette un simbolo ogni $T$ secondi ha tasso d'informazione $R=\frac{H_s}T$ [bit/s] ($H_s$ entropia per simbolo); un canale ha tasso $R(g)=\frac{I_s(x;y)}T\le R(x)$. La capacità è il massimo del tasso del canale su tutte le statistiche d'ingresso, $C=\max_{p_x}\frac{I(x;y)}T$ per un canale senza memoria. Teorema di Shannon: se il tasso nominale della sorgente è $R\le C$ esiste un codice di canale con probabilità d'errore piccola a piacere, se $R>C$ no. Capacità: BSC $C=\frac1T[1-h(P_{bit})]$, canale a cancellazione $C=\frac{1-\alpha}T$, AWGN reale $C=\frac1{2T}\log_2\left(1+\frac{E_s}{\sigma^2}\right)$; canali in parallelo sommano le capacità.Tasso d'informazione, capacità di canale e teorema di Shannon →). La differenza (2,3822{,}382 contro 2,3442{,}344) è piccola. La domanda chiede però solo II con ingresso equiprobabile.

(Verificato con Python: Huffman Ly=2,32L_y=2{,}32 con tutti e due i pareggi, Shannon Ly=2,93L_y=2{,}93, H(z)=1,9285H(z)=1{,}9285, I=2,3443I=2{,}3443, C=2,3820C=2{,}3820. Il corso riporta gli stessi valori.)

Errori comuni

  • Al passo del pareggio in Huffman pensare che il codice sia sbagliato se non coincide con quello della soluzione: quello che conta è LyL_y, che è uguale.
  • Per il codice di Shannon, usare ⌊⋅⌋\lfloor\cdot\rfloor o l'arrotondamento al più vicino invece di ⌈⋅⌉\lceil\cdot\rceil.
  • Per znz_n, mettere nel limite inferiore l'entropia di sns_n invece di quella di znz_n.
  • Dire che H(z∣s)=H(z)H(z|s)=H(z) o H(s)H(s): per una funzione deterministica è nulla.
  • Nel punto 5, calcolare H(Y∣X)H(Y|X) con una media semplice senza pesare con le probabilità d'ingresso.

Versione ripasso

Testo. Sorgente iid con p=(0,05;0,05;0,12;0,18;0,21;0,39)p=(0{,}05;0{,}05;0{,}12;0{,}18;0{,}21;0{,}39), Ts=1T_s=1 ms. Huffman e parole di 1,21,2; Shannon; limite per znz_n (=1=1 se sn≤3s_n\le3, altrimenti sns_n); H(z∣s)H(z|s); II di un canale con 1-41\text{-}4 ideali e 5,65,6 scambiati con prob. 0,20{,}2, ingresso uniforme.

Teoria collegata