Salta al contenuto
Note per Studenti Esercizio - due sorgenti indipendenti, codice di Shannon, Huffman e informazione mutua con un prodotto (compito del 24 gennaio 2025, es. 189)

Esercizio - due sorgenti indipendenti, codice di Shannon, Huffman e informazione mutua con un prodotto (compito del 24 gennaio 2025, es. 189)

In questa pagina 6

Testo (compito del 24 gennaio 2025, esercizio 189). Si considerino due sorgenti che emettono simboli indipendenti XX e YY. Entrambe le sorgenti emettono simboli ogni 22 ms. La sorgente XX ha entropia 2,452{,}45 bit e tasso nominale 22 kbit/s. La sorgente YY ha alfabeto A={1,2,3,4}\mathcal A=\{1,2,3,4\} e probabilità P(Y=1)=0,08P(Y=1)=0{,}08, P(Y=2)=0,2P(Y=2)=0{,}2, P(Y=3)=0,23P(Y=3)=0{,}23, P(Y=4)=0,49P(Y=4)=0{,}49.

  1. Calcolare la cardinalità dell'alfabeto della sorgente XX.
  2. Dire se il codice di Shannon binario per la sorgente XX può avere parole di lunghezza media 44 bit, giustificando la risposta.
  3. Calcolare il codice binario ottimo per YY e la lunghezza media delle parole di codice.
  4. Si consideri ora una terza sorgente a simboli indipendenti dalle altre due Z∈{0,1}Z\in\{0,1\} con P(Z=0)=0,3P(Z=0)=0{,}3. Definito W=Z⋅YW=Z\cdot Y, calcolare l'informazione mutua tra YY e WW.
  5. Calcolare l'entropia dei vettori aleatori [X,Y,Z][X,Y,Z] e [Y,Z,W][Y,Z,W].

Teoria usata: 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 → (punto 1, tasso nominale), 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 2), 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 → (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), Entropia - informazione di un evento, disuguaglianza di Jensen e valore massimoL'informazione di un evento di probabilità $P$ è $i=\log_2\frac1P$ bit (zero per l'evento certo, additiva per eventi indipendenti). L'entropia di una variabile aleatoria discreta è l'informazione media, $H(x)=E[i_x(x)]=\sum_aP_x(a)\log_2\frac1{P_x(a)}$; vale $0\le H(x)\le\log_2M$ con $M$ cardinalità dell'alfabeto, e il massimo $\log_2M$ si raggiunge se e solo se i simboli sono equiprobabili (dimostrazione con la disuguaglianza di Jensen, perché il logaritmo è strettamente concavo).Entropia - informazione di un evento, disuguaglianza di Jensen e valore massimo →.

(1) Cardinalità dell'alfabeto di XX

Il tasso nominale di una sorgente è quello che si avrebbe se tutti i MM simboli fossero equiprobabili, log⁡2MTs\frac{\log_2M}{T_s} (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 →). Con Ts=2T_s=2 ms e tasso nominale 22 kbit/s: log⁡2M2⋅10−3 s=2⋅103 bit/s ⇒ log⁡2M=4 ⇒ M=24=16.\frac{\log_2M}{2\cdot10^{-3}\ \text{s}}=2\cdot10^3\ \text{bit/s}\ \Rightarrow\ \log_2M=4\ \Rightarrow\ M=2^4=16. Coerenza: l'entropia H(X)=2,45H(X)=2{,}45 bit non può superare log⁡2M=4\log_2M=4 ✓ (la soluzione del corso scrive T=2 μT=2\ \mus e 44 kbit/s per questo punto: è un refuso (con quei numeri non verrebbe 1616), ma il risultato finale riportato, M=16M=16, è quello giusto).

(2) Il codice di Shannon può avere lunghezza media 44 bit?

Il codice di Shannon binario ha lunghezze li=⌈−log⁡2pi⌉l_i=\lceil-\log_2p_i\rceil e per esso vale, dal teorema di Shannon (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 →), H(X)≤Ly<H(X)+1=2,45+1=3,45 bit.H(X)\le L_y<H(X)+1=2{,}45+1=3{,}45\ \text{bit}. La lunghezza media è strettamente minore di 3,453{,}45 bit, quindi non può essere 44 bit: la risposta è no.

(3) Codice ottimo per YY (Huffman)

Probabilità ordinate: 0,49 (Y4); 0,23 (Y3); 0,20 (Y2); 0,08 (Y1)0{,}49\,(Y_4);\ 0{,}23\,(Y_3);\ 0{,}20\,(Y_2);\ 0{,}08\,(Y_1) (somma 11 ✓).

Passo Nodi disponibili Unione
1 0,49; 0,23; 0,20; 0,080{,}49;\ 0{,}23;\ 0{,}20;\ 0{,}08 0,20+0,08=0,280{,}20+0{,}08=0{,}28
2 0,49; 0,28; 0,230{,}49;\ 0{,}28;\ 0{,}23 0,28+0,23=0,510{,}28+0{,}23=0{,}51
3 0,51; 0,490{,}51;\ 0{,}49 radice =1=1

Codice: Y4→0Y_4\to0, Y3→10Y_3\to10, Y1→110Y_1\to110, Y2→111Y_2\to111 (qui Y1Y_1 e Y2Y_2 sono i due meno probabili, e restano fratelli in fondo all'albero).

Simbolo PP Parola Lunghezza
Y4Y_4 0,490{,}49 00 11
Y3Y_3 0,230{,}23 1010 22
Y2Y_2 0,200{,}20 111111 33
Y1Y_1 0,080{,}08 110110 33

Ly=0,49⋅1+0,23⋅2+0,20⋅3+0,08⋅3=0,49+0,46+0,60+0,24=1,79 bit,L_y=0{,}49\cdot1+0{,}23\cdot2+0{,}20\cdot3+0{,}08\cdot3=0{,}49+0{,}46+0{,}60+0{,}24=1{,}79\ \text{bit}, controllo con i nodi interni: 0,28+0,51+1=1,790{,}28+0{,}51+1=1{,}79 ✓. L'entropia è H(Y)=1,7478H(Y)=1{,}7478 bit, quindi 1,748≤1,79<2,7481{,}748\le1{,}79<2{,}748 ✓ (efficienza η=0,976\eta=0{,}976). Per confronto il codice di Shannon avrebbe lunghezze ⌈−log⁡2p⌉=4,3,3,2\lceil-\log_2p\rceil=4,3,3,2 per Y1,Y2,Y3,Y4Y_1,Y_2,Y_3,Y_4 e Ly=0,08⋅4+0,2⋅3+0,23⋅3+0,49⋅2=2,59L_y=0{,}08\cdot4+0{,}2\cdot3+0{,}23\cdot3+0{,}49\cdot2=2{,}59 bit, molto peggiore.

(4) Informazione mutua tra YY e W=Z⋅YW=Z\cdot Y

Poiché Y∈{1,2,3,4}Y\in\{1,2,3,4\} non vale mai 00, il prodotto W=ZYW=ZY vale 00 se e solo se Z=0Z=0 e vale YY se Z=1Z=1. ZZ è indipendente da YY. Quindi:

  • P(W=0)=P(Z=0)=0,3P(W=0)=P(Z=0)=0{,}3;
  • per y=1,…,4y=1,\dots,4: P(W=y)=P(Z=1)P(Y=y)=0,7 P(Y=y)P(W=y)=P(Z=1)P(Y=y)=0{,}7\,P(Y=y), cioè P(W=1)=0,056P(W=1)=0{,}056, P(W=2)=0,14P(W=2)=0{,}14, P(W=3)=0,161P(W=3)=0{,}161, P(W=4)=0,343P(W=4)=0{,}343 (con 0,3+0,056+0,14+0,161+0,343=10{,}3+0{,}056+0{,}14+0{,}161+0{,}343=1 ✓).

Si usa I(Y;W)=H(W)−H(W∣Y)I(Y;W)=H(W)-H(W|Y) (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 →).

  1. H(W)H(W): H(W)=0,3log⁡210,3+0,056log⁡210,056+0,14log⁡210,14+0,161log⁡210,161+0,343log⁡210,343=0,5211+0,2329+0,3971+0,4242+0,5295=2,1048 bit.H(W)=0{,}3\log_2\tfrac1{0{,}3}+0{,}056\log_2\tfrac1{0{,}056}+0{,}14\log_2\tfrac1{0{,}14}+0{,}161\log_2\tfrac1{0{,}161}+0{,}343\log_2\tfrac1{0{,}343}=0{,}5211+0{,}2329+0{,}3971+0{,}4242+0{,}5295=2{,}1048\ \text{bit}.
  2. H(W∣Y)H(W|Y): dato Y=yY=y (con y≠0y\ne0), WW vale 00 con probabilità 0,30{,}3 e yy con probabilità 0,70{,}7 (dipende solo da ZZ, indipendente da YY): è una variabile binaria con entropia h(0,3)=0,3log⁡210,3+0,7log⁡210,7=0,5211+0,3602=0,8813h(0{,}3)=0{,}3\log_2\frac1{0{,}3}+0{,}7\log_2\frac1{0{,}7}=0{,}5211+0{,}3602=0{,}8813 bit, uguale per ogni yy. Mediando sui valori di YY (pesi che sommano a 11): H(W∣Y)=0,8813H(W|Y)=0{,}8813 bit =H(Z)=H(Z).
  3. Informazione mutua: I(Y;W)=2,1048−0,8813=1,2235 bit.I(Y;W)=2{,}1048-0{,}8813=1{,}2235\ \text{bit}.

Controllo con la formula simmetrica. WW è funzione di (Y,Z)(Y,Z), e ZZ è funzione di (Y,W)(Y,W) (Z=0Z=0 se W=0W=0, altrimenti Z=1Z=1): la coppia (Y,W)(Y,W) ha quindi la stessa entropia di (Y,Z)(Y,Z), che per indipendenza è H(Y,W)=H(Y)+H(Z)=1,7478+0,8813=2,6291H(Y,W)=H(Y)+H(Z)=1{,}7478+0{,}8813=2{,}6291. Allora I(Y;W)=H(Y)+H(W)−H(Y,W)=1,7478+2,1048−2,6291=1,2235I(Y;W)=H(Y)+H(W)-H(Y,W)=1{,}7478+2{,}1048-2{,}6291=1{,}2235 ✓.

(5) Entropie dei vettori [X,Y,Z][X,Y,Z] e [Y,Z,W][Y,Z,W]

(Verificato con Python: H(Y)=1,74784H(Y)=1{,}74784, H(Z)=0,88129H(Z)=0{,}88129, H(W)=2,10478H(W)=2{,}10478, I(Y;W)=1,22349I(Y;W)=1{,}22349 anche calcolata dalla tabella congiunta P(Y,W)P(Y,W), Huffman Ly=1,79L_y=1{,}79, Shannon Ly=2,59L_y=2{,}59, H([X,Y,Z])=5,0791H([X,Y,Z])=5{,}0791, H([Y,Z,W])=2,6291H([Y,Z,W])=2{,}6291.)

Errori comuni

  • Calcolare la cardinalità da 2H2^{H} (con H=2,45H=2{,}45 viene 5,55{,}5) invece che dal tasso nominale, che usa log⁡2M\log_2M.
  • Rispondere al punto 2 con "sì perché 4≥H4\ge H": il codice di Shannon ha Ly<H+1L_y<H+1, un limite superiore.
  • Scrivere H(W)=H(Y)+H(Z)H(W)=H(Y)+H(Z): WW non ha come valori le coppie, ma i prodotti, e il valore 00 ha probabilità 0,30{,}3 per ogni YY.
  • Scordare che W=0W=0 solo per Z=0Z=0 (perché Y≠0Y\ne0): è ciò che rende ZZ funzione di (Y,W)(Y,W).
  • Al punto 5, usare l'additività per [Y,Z,W][Y,Z,W]: WW non è indipendente da (Y,Z)(Y,Z), ne è funzione.

Versione ripasso

Testo. XX e YY indipendenti, Ts=2T_s=2 ms; H(X)=2,45H(X)=2{,}45 bit, tasso nominale 22 kbit/s; Y∈{1,2,3,4}Y\in\{1,2,3,4\} con 0,08;0,2;0,23;0,490{,}08;0{,}2;0{,}23;0{,}49. Cardinalità di XX; Shannon con L=4L=4?; Huffman per YY; Z∈{0,1}Z\in\{0,1\}, P(Z=0)=0,3P(Z=0)=0{,}3, W=ZYW=ZY: I(Y;W)I(Y;W); H([X,Y,Z])H([X,Y,Z]), H([Y,Z,W])H([Y,Z,W]).

Teoria collegata