Esercizio - Huffman, codice di Shannon, funzione deterministica di una sorgente e informazione mutua di un canale (secondo compitino del 9 gennaio 2026, es. 196)
In questa pagina 6
Testo (secondo compitino del 9 gennaio 2026, esercizio 196). Una sorgente genera simboli con periodo di simbolo ms e alfabeto , indipendenti ed identicamente distribuiti, con probabilità
- 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 e .
- Utilizzando ora un codice binario di Shannon calcolare la lunghezza media delle parole di codice.
- Si definisce ora se e se . Calcolare il limite inferiore secondo il teorema di Shannon alla lunghezza delle parole di un codice binario per .
- Calcolare , motivando la risposta.
- Calcolare la mutua informazione di un canale con ingresso e uscita simboli con alfabeto , simboli in ingresso equiprobabili e diagramma di transizione di canale così rappresentato: i simboli vanno ciascuno in se stesso con probabilità (collegamenti diritti); il simbolo va in con probabilità e in con probabilità ; il simbolo va in con probabilità e in con probabilità .
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: (somma ✓). A ogni passo si uniscono i due nodi meno probabili.
| Passo | Nodi disponibili | Unione |
|---|---|---|
| 1 | (nodo ) | |
| 2 | (nodo ) | |
| 3 | (nodo ) | |
| 4 | (nodo ) | |
| 5 | radice |
Al passo 4 c'è un pareggio ( e valgono entrambi ): si può unire con l'uno o con l'altro. Scegliendo si ottiene il codice sotto; scegliendo si otterrebbe un altro codice (con di bit), ma con la stessa lunghezza media. Etichettando con il ramo di alla radice, con quello di , poi , , , :
| Simbolo | Parola | Lunghezza | |
|---|---|---|---|
Le parole dei simboli e sono e (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: Con l'altra scelta del pareggio le lunghezze sarebbero per e bit: la stessa. L'entropia è bit, quindi ✓.
(2) Codice di Shannon
Le lunghezze sono :
| Simbolo | |||
|---|---|---|---|
Controllo di Kraft: ✓. La lunghezza media è Peggiore del codice ottimo (), come ci si aspetta, ma dentro il limite .
(3) Limite di Shannon per
La variabile accorpa i simboli nel valore e lascia gli altri: ha alfabeto e probabilità (somma ✓). 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 →): Il limite inferiore è bit per simbolo (minore di : l'accorpamento fa perdere informazione).
(4)
è una funzione deterministica di : noto il valore di è fissato. Quindi per ogni la densità ha un solo valore con probabilità e ; mediando, Equivalentemente, per la regola della catena, perché (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 con uniforme: .
- Uscita. Per : . Per : (arriva da con e da con ), e allo stesso modo . L'uscita è uniforme su simboli:
- . Per l'uscita è deterministica: . Per e l'uscita vale uno dei due simboli con probabilità e : bit. La media sui sei ingressi equiprobabili:
- Informazione mutua.
Osservazione. L'ingresso uniforme non è l'ingresso ottimo: massimizzando numericamente su tutte le densità d'ingresso (algoritmo di Blahut-Arimoto) si ottiene la capacità bit per uso, con per ciascuno dei simboli e per i simboli e : 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 ( contro ) è piccola. La domanda chiede però solo con ingresso equiprobabile.
(Verificato con Python: Huffman con tutti e due i pareggi, Shannon , , , . 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 è , che è uguale.
- Per il codice di Shannon, usare o l'arrotondamento al più vicino invece di .
- Per , mettere nel limite inferiore l'entropia di invece di quella di .
- Dire che o : per una funzione deterministica è nulla.
- Nel punto 5, calcolare con una media semplice senza pesare con le probabilità d'ingresso.
Versione ripasso
Testo. Sorgente iid con , ms. Huffman e parole di ; Shannon; limite per ( se , altrimenti ); ; di un canale con ideali e scambiati con prob. , ingresso uniforme.
- (1) (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 →) Unioni: , , , , radice (pareggio senza effetto su ). Parole: , , , , , . bit (nodi ).
- (2) Shannon ; .
- (3) (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 →) , bit.
- (4) funzione di : (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) : uniforme, ; ; bit (capacità con ingresso non uniforme).
- Dettagli (1). Tabella: , , , (pareggio con , indifferente), radice. ; .
- Dettagli (2). arrotondati per eccesso a ; Kraft ; .
- Dettagli (3). accorpa : ; bit, minore di .
- Dettagli (5). per ogni (anche : ); ; . Capacità (massimo numerico): con sui simboli - e su .
- Errori: nel codice di Shannon; al posto di ; media non pesata in .