Codici di Shannon, Huffman ed Elias e codifica aritmetica
In questa pagina 9
Il teorema di Shannon (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 →) dice che esiste un codice a prefisso con lunghezza media tra e . In questa nota si costruiscono tre codici concreti: Shannon, il codice ottimo di Huffman, e Elias (da cui la codifica aritmetica).
Versione per Ing. Elettronica: Codici di Shannon-Fano e di HuffmanIn un codice ottimo le parole più probabili non sono più lunghe di quelle meno probabili e le due parole più lunghe differiscono solo per l'ultimo simbolo. Shannon-Fano costruisce l'albero dall'alto dividendo ripetutamente i simboli in due gruppi di probabilità quasi uguali; Huffman lo costruisce dal basso unendo ogni volta i due simboli meno probabili ed è sempre ottimo tra i codici a prefisso. La lunghezza media $L_y$ è la somma delle probabilità dei nodi uniti, l'efficienza è $\eta=\frac{H}{L_y}$.Codici di Shannon-Fano e di Huffman →. Versione per Ing. delle Telecomunicazioni: Codifica di sorgenteLa codifica di sorgente senza perdita assegna ai simboli (o a parole di $N$ simboli) parole di codice di lunghezza variabile, corte per i simboli probabili, con una mappa invertibile. Un codice a prefisso è sempre decodificabile; Kraft-McMillan: se il codice è decodificabile $\sum M^{-l_i}\le1$ e viceversa esiste un codice a prefisso con quelle lunghezze. Shannon: $L\ge\frac{H}{\log_2M}$ e esiste un codice con $L<\frac{H}{\log_2M}+1$ (lunghezze $\lceil\log_M\frac1p\rceil$). Shannon-Fano divide dall'alto, Huffman unisce dal basso i due meno probabili ed è ottimo; raggruppare simboli e la codifica aritmetica si avvicinano al limite.Codifica di sorgente →. Entropia: 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 →.
Codice di Shannon(-Fano)
Definizione. Per una sorgente con parole di probabilità , il codice di Shannon ha lunghezze
La lunghezza è l'informazione dell'evento arrotondata per eccesso. Si è già dimostrato che soddisfa Kraft-McMillan (quindi esiste un codice a prefisso con queste lunghezze) e che Le parole si ricavano dalle lunghezze: si ordinano per lunghezza crescente e si assegna a ciascuna le prime cifre binarie del numero , oppure si disegna l'albero e si sceglie per ogni lunghezza un nodo non discendente di quelli già scelti. Sono possibili più assegnazioni equivalenti (scambiando e si ottiene un altro codice con le stesse lunghezze).
Se le probabilità sono potenze di (), esatto e : il codice di Shannon è ottimo.
Esempio. , : , , . Un codice a prefisso è , , , (scambiando e in qualche nodo dell'albero si ottengono altri codici a prefisso con le stesse lunghezze). Lunghezza media bit .
Esempio con probabilità non diadiche. . Informazioni bit, quindi e Kraft: ✓. Parole: . Entropia bit, quindi ✓, efficienza .
Il codice di Shannon non è ottimo in generale (nell'esempio si vedrà Huffman con bit), perché arrotonda ogni simbolo separatamente.
Codici ottimi
Definizione. Un codice di sorgente è ottimo se ha la lunghezza media minima tra i codici a prefisso per quella sorgente.
Due proprietà di un codice a prefisso ottimo guidano la costruzione.
Teorema 1. In un codice a prefisso ottimo le parole di probabilità più bassa hanno lunghezza maggiore o uguale: se allora .
Dimostrazione (per assurdo). Se fosse e in un codice ottimo, si scambiano le parole: , . Il nuovo codice è ancora a prefisso e la variazione della lunghezza media è perché il primo fattore è negativo e il secondo positivo: la lunghezza media scende, e il codice di partenza non era ottimo. Assurdo.
Teorema 2. Nel dizionario di un codice a prefisso ottimo ci sono almeno due parole di lunghezza massima e che differiscono solo nell'ultimo simbolo.
Dimostrazione (per assurdo). Si prende una parola di lunghezza massima e il suo "fratello", cioè la sequenza che differisce da solo nell'ultimo simbolo (in un codice binario: e con lo stesso inizio). Se il fratello non fosse una parola di codice, nessuna parola del codice potrebbe stare sotto di lui (sarebbe più lunga di ) né sopra di lui (sarebbe prefisso di e il codice non sarebbe a prefisso). Allora si potrebbe accorciare togliendo l'ultimo simbolo: il codice resterebbe a prefisso e la lunghezza media scenderebbe, contro l'ipotesi di ottimalità. Quindi il fratello è una parola di codice, e ha anch'esso lunghezza .
I due teoremi dicono che la coppia di simboli meno probabili può essere messa come "fratelli" in fondo all'albero: è il passo della procedura di Huffman.
Procedura di Huffman (codice binario)
Dati i simboli con probabilità :
- Ordinare le probabilità in ordine decrescente.
- Unire i due simboli di probabilità più bassa in un unico simbolo "nodo" di probabilità la somma; ai due rami che partono dal nodo si assegnano le etichette e (una per ramo).
- Ripetere da 1 sulla lista ridotta (un elemento in meno), finché resta un solo nodo (la radice, probabilità ).
- Leggere le parole di codice sui rami, dalla radice a ciascuna foglia.
Il codice dipende dalle scelte (quale ramo è , come si ordinano probabilità uguali) ma la lunghezza media è sempre la stessa, ed è la minima. Controllo utile: è anche la somma delle probabilità dei nodi interni (compresa la radice ), perché ogni passaggio dall'albero aggiunge bit a tutte le parole sotto quel nodo.
Esempio 1 ( simboli). per (il simbolo ha ).
- Passo 1: si uniscono e in un nodo da .
- Passo 2: ora ci sono ; si uniscono i due in un nodo da .
- Passo 3: si uniscono e nella radice. Con al ramo di probabilità maggiore a ogni unione: , , , . Lunghezza media bit; controllo con i nodi: ✓. L'entropia è bit, quindi , contro il codice a lunghezza fissa con bit ().
Esempio 2 ( simboli). per . Ordinati: .
- Si uniscono i due più bassi e : nodo .
- Lista : si uniscono e : nodo .
- Lista : i due più bassi sono e : nodo .
- Rimangono e : radice. Un codice risultante: , , , , (lunghezze per ). Controllo con i nodi: ✓. L'entropia è bit ( ✓). Con il codice di Shannon le lunghezze sarebbero e bit: peggiore.
Esempio 3 (sorgente con ). Si uniscono e (nodo ), poi e (nodo ), poi e . Codice: , , , (lunghezze ). bit; nodi: ✓. Rispetto al codice di Shannon ( bit) l'ultimo simbolo perde un bit: ha bit anziché .
Grafico interattivo: Albero di Huffman per le probabilità 0,51; 0,27; 0,13; 0,09: i rami 0 e 1 partono dai nodi con probabilità 1, 0,49, 0,22; le foglie sono le parole a₁ → 0, a₂ → 10, a₃ → 110, a₄ → 111
Ottimalità. Per i teoremi precedenti il codice ottimo ha i due simboli meno probabili come fratelli di lunghezza massima, e il problema si riduce a un codice con un simbolo in meno e probabilità (il nodo unito). Ripetendo, si ottiene che la procedura di Huffman produce un codice ottimo. Per alfabeti -ari si uniscono a ogni passo gli nodi meno probabili (aggiungendo all'inizio simboli fittizi di probabilità zero, in modo che il numero di simboli sia ).
Codice di Elias e codifica aritmetica
Il codice di Elias non richiede di ordinare né di costruire un albero: usa la retta reale.
Costruzione. Si fissa un ordine dei simboli (per esempio quello naturale). Si divide l'intervallo in sottointervalli contigui di ampiezze . Per ogni simbolo si prende il punto medio del suo intervallo. La parola di codice è formata dalle prime cifre dopo la virgola dello sviluppo binario di , con
Perché funziona. Scrivere con cifre significa troncarlo, e il troncamento è e dista da meno di (infatti ). Il punto troncato e il segmento stanno quindi dentro l'intervallo di (che si estende per a destra e a sinistra di ). Intervalli diversi sono disgiunti, quindi nessuna parola è prefisso di un'altra: il codice è a prefisso.
Esempio ( in binario ). Un numero binario vale : è , .
Esempio (, ordine naturale).
| Simbolo | Intervallo | Punto medio | in binario | Parola | |
|---|---|---|---|---|---|
Conversione di : ; (resta ); ; quindi e le prime due cifre sono . Il codice è a prefisso ().
Lunghezza media bit (una cifra in più del codice di Shannon).
Grafico interattivo: Codice di Elias per le probabilità 0,51; 0,27; 0,13; 0,09: l'intervallo [0, 1) è diviso in quattro segmenti di ampiezza pari alle probabilità e di ciascuno si prende il punto medio (0,255; 0,645; 0,845; 0,955), di cui si scrivono in binario le prime cifre
Prestazioni. e : il codice è subottimo di almeno bit per parola rispetto al limite di Shannon. Ha però un vantaggio: poiché il codice dipende solo dall'intervallo e dalle probabilità, si presta a un meccanismo adattativo. Nella codifica aritmetica il codificatore e il decodificatore tengono entrambi una stima delle probabilità e la aggiornano a ogni simbolo; l'intervallo di partenza viene suddiviso con le probabilità correnti, così non serve conoscere in anticipo la statistica della sorgente né trasmettere un dizionario.
Confronto sull'esempio
| Codice | Lunghezze | [bit] | |
|---|---|---|---|
| Huffman (ottimo) | |||
| Shannon | |||
| Elias |
con bit: i limiti di Shannon sono ( per Elias supera ma non ). Il codice ottimo è il migliore, Shannon è a meno di bit, Elias spreca bit.
Dalla sorgente al modulatore: periodo di simbolo
Un esercizio tipico concatena i blocchi. La sorgente emette un simbolo ogni ms con le probabilità sopra.
- Codificatore di sorgente (Huffman, bit per simbolo): escono kbit/s, quindi un bit ogni ms.
- Codificatore di canale con rate (per esempio , ): ogni bit di informazione ne escono , quindi il bit-rate sul canale è bit/s e il tempo di bit dopo il codice è ms.
- Modulatore 16-QAM ( bit per simbolo): ms (570 simboli/s).
(Con arrotondamenti intermedi sui tempi di bit si trova ms; il valore senza arrotondamenti è ms.) In formula, per ogni simbolo della sorgente escono bit dal codificatore di sorgente, bit dal codificatore di canale e simboli dal modulatore (Modulazione digitale - trasmettitore, bit map e canale AWGNIl trasmettitore digitale ha due blocchi: la bit map raggruppa $\log_2M$ bit in un simbolo $a_m\in{1,\dots,M}$ (periodo $T=T_b\log_2M$) e il modulatore associa a ogni simbolo una forma d'onda $s_{a_m}(t)$, così $s_{Tx}(t)=\sum_ms_{a_m}(t-mT)$; l'insieme delle $M$ forme d'onda è la segnalazione. Il canale ideale lascia il segnale com'è, il canale AWGN lo scala di $A$ e somma il rumore bianco gaussiano $w(t)$, il canale multipath somma echi ritardati: i suoi due effetti sono la deformazione delle forme d'onda ($s'm$) e l'interferenza intersimbolica. Il ricevitore ha un demodulatore digitale che decide $\hat a_m$ e una bit demap.Modulazione digitale - trasmettitore, bit map e canale AWGN →; per il rate del codice Controllo d'errore - ARQ, FEC e codici a blocco sul canale binario simmetricoPer proteggere i bit dagli errori si può chiedere la ritrasmissione (ARQ, serve il canale di ritorno), aggiungere ridondanza per correggere (FEC) o unire le due cose (HARQ). Un codice a blocco $(n,k)$ trasforma $k$ bit in una parola di $n>k$ bit scelta tra $2^k$ parole su $2^n$ sequenze; modulatore, canale e demodulatore equivalgono a un canale binario simmetrico senza memoria con probabilità d'errore sul bit $P{bit}$. Per $P_{bit}<\frac12$ il decodificatore ML sceglie la parola a minima distanza di Hamming; con distanza minima $d_{min}$ si correggono sempre $t=\lfloor\frac{d_{min}-1}{2}\rfloor$ errori e se ne rivelano sempre $d_{min}-1$. Il tasso è $R=\frac kn$ e la probabilità d'errore di parola è limitata da $P(\text{più di }t\text{ errori})$. L'ARQ ha efficienza $S_{SW}$, $S_{GBN}$, $S_{SR}$ in funzione di $t_P$, $t_A$, $\tau_P$ e $p$.Controllo d'errore - ARQ, FEC e codici a blocco sul canale binario simmetrico →), quindi
Errori comuni
- Costruire Huffman unendo i nodi più probabili, o non riordinare dopo ogni unione.
- Scambiare le etichette in modo incoerente: va bene qualunque scelta, ma una per ramo, e bisogna leggere dalla radice alla foglia.
- Dimenticare che dipende dalle probabilità dei simboli, non dal numero di rami: due codici con le stesse lunghezze ordinate hanno la stessa .
- Dire che il codice di Shannon è ottimo: solo con probabilità potenze di .
- Prendere per Elias senza il (è la lunghezza di Shannon).
- Troncare il punto medio in modo sbagliato nella conversione in binario (moltiplicare per e prendere la parte intera a ogni passo).
- Nell'esercizio di catena, invertire il rapporto : il codice di canale aggiunge bit, quindi i bit sul canale sono più frequenti ().
Domande d'esame
- Si costruisca il codice di Huffman per e se ne calcoli la lunghezza media. Unioni , , radice; parole ; bit.
- Per la stessa sorgente si calcolino le lunghezze medie dei codici di Shannon e di Elias e i limiti di Shannon. Shannon bit; Elias bit bit; limiti .
- Si dimostri che in un codice a prefisso ottimo le parole meno probabili non sono più corte. Scambio delle parole: se e : assurdo con l'ottimalità.
Esercizi svolti
- Esercizio - sensori di temperatura, codice di Huffman, porta seriale e informazione mutua (esercizi del corso, cap. 5, es. 56): Huffman per quattro valori e numero di sensori su una porta seriale.
- Esercizio - Huffman, codice di Shannon, funzione deterministica di una sorgente e informazione mutua di un canale (secondo compitino del 9 gennaio 2026, es. 196): Huffman con pareggio, codice di Shannon e limite per una sorgente accorpata.
- Esercizio - entropia condizionata, Huffman per due sorgenti e informazione mutua (compito del 25 giugno 2024, es. 178): Huffman per due densità e per le coppie .
- Esercizio - due sorgenti indipendenti, codice di Shannon, Huffman e informazione mutua con un prodotto (compito del 24 gennaio 2025, es. 189): Huffman e Shannon per a quattro simboli.
- Esercizio - codice di Elias, Huffman sulla coppia di sorgenti e informazione mutua (compito del 22 gennaio 2019, es. 92): codice di Elias per tre simboli e Huffman per le coppie.
- Esercizio - canale binario non simmetrico, informazione mutua, Huffman ed Elias sulle coppie e canale a cancellazione (compito del 10 febbraio 2021, es. 123): Huffman ed Elias per le coppie di uscite binarie.
- Esercizio - Huffman, Elias ed entropia con probabilità dipendenti dalla matricola (secondo compitino dell'8 gennaio 2021, es. 118): Huffman, Shannon ed Elias con probabilità dipendenti da un parametro.
- Esercizio - canale binario con rumore aleatorio, capacità e Huffman sulle triplette (secondo compitino dell'11 gennaio 2019, es. 90): Huffman per otto triplette e confronto con l'entropia.
- Esercizio - Kraft-McMillan, Huffman, due canali binari alternati e codice di Hamming (15,11) (compito del 13 febbraio 2026, es. 201): Huffman a otto livelli con probabilità in trentaduesimi.
- Esercizio - Kraft-McMillan, Huffman, Hamming (7,4) e attenuazione massima con 16-QAM (secondo compitino del 12 gennaio 2024, es. 170): Huffman a otto livelli con .
Versione ripasso
Shannon(-Fano) (Codici di Shannon-Fano e di HuffmanIn un codice ottimo le parole più probabili non sono più lunghe di quelle meno probabili e le due parole più lunghe differiscono solo per l'ultimo simbolo. Shannon-Fano costruisce l'albero dall'alto dividendo ripetutamente i simboli in due gruppi di probabilità quasi uguali; Huffman lo costruisce dal basso unendo ogni volta i due simboli meno probabili ed è sempre ottimo tra i codici a prefisso. La lunghezza media $L_y$ è la somma delle probabilità dei nodi uniti, l'efficienza è $\eta=\frac{H}{L_y}$.Codici di Shannon-Fano e di Huffman →, Codifica di sorgenteLa codifica di sorgente senza perdita assegna ai simboli (o a parole di $N$ simboli) parole di codice di lunghezza variabile, corte per i simboli probabili, con una mappa invertibile. Un codice a prefisso è sempre decodificabile; Kraft-McMillan: se il codice è decodificabile $\sum M^{-l_i}\le1$ e viceversa esiste un codice a prefisso con quelle lunghezze. Shannon: $L\ge\frac{H}{\log_2M}$ e esiste un codice con $L<\frac{H}{\log_2M}+1$ (lunghezze $\lceil\log_M\frac1p\rceil$). Shannon-Fano divide dall'alto, Huffman unisce dal basso i due meno probabili ed è ottimo; raggruppare simboli e la codifica aritmetica si avvicinano al limite.Codifica di sorgente →)
- ; binario: informazione arrotondata per eccesso, . Soddisfa Kraft, .
- Parole dalle lunghezze: ordinate crescenti, prime cifre di , o scelta di nodi sull'albero.
- Ottimo solo se : dà , .
- : informazioni , , Kraft , parole , ; , .
Codici ottimi
- Ottimo: minima tra i prefissi.
- Teorema 1: . Se no, scambiando le parole : assurdo.
- Teorema 2: almeno due parole di lunghezza massima che differiscono solo nell'ultimo simbolo. Se il fratello di una parola più lunga non fosse parola, la si accorcerebbe e scenderebbe.
Huffman (binario)
- (1) ordina decrescente; (2) unisci i due meno probabili in un nodo con la somma (rami e ); (3) ripeti; (4) leggi dalla radice alle foglie.
- Il codice non è unico (etichette, pareggi), sì. Controllo: somma delle probabilità dei nodi interni (radice compresa).
- : nodi ; ; ; , (lunghezza fissa ).
- : (con ), , (con ), ; , , , , ; ; ; Shannon darebbe .
- : nodi ; ; .
- Ottimalità: i due teoremi riducono il problema a uno con un simbolo in meno e probabilità . Per simboli si uniscono nodi (con simboli fittizi a probabilità ).
Elias e codifica aritmetica
- in intervalli di ampiezza (ordine fissato); punto medio; parola = prime cifre binarie di . A prefisso perché il troncamento dista meno di e resta nell'intervallo di .
- Conversione: raddoppiare e prendere la parte intera; , .
- Esempio: con danno ; .
- : subottimo. Si adatta (codifica aritmetica adattativa: codificatore e decodificatore aggiornano ).
Come si svolge un esercizio
- Verificare che le probabilità sommino a (altrimenti ricavare quella mancante).
- Huffman: elenco dei nodi a ogni passo, parole, con pesi, controllo con i nodi interni, confronto con () ed efficienza .
- Shannon: tabella , , controllo di Kraft, .
- Elias: tabella intervallo, punto medio, , cifre binarie; .
- Se un esercizio chiede "è un codice di Shannon?": confrontare le lunghezze con simbolo per simbolo.
Confronto su , , limiti :
- Huffman (); Shannon (); Elias (, oltre ma sotto ).
Catena sorgente modulatore
- ms, Huffman : kbit/s, ms.
- Rate : ms (rate bit/s); 16-QAM (4 bit per simbolo): ms (con arrotondamenti ).
Errori tipici
- Huffman unendo i nodi più probabili, o senza riordinare.
- Etichette incoerenti: una per ramo, lettura dalla radice.
- senza pesi, o contata come numero di rami.
- Shannon ritenuto ottimo (solo con probabilità diadiche).
- Elias senza il o con conversione binaria sbagliata.
- : il codice aggiunge bit, quindi .
Domande tipiche
- Huffman per : , .
- Shannon () ed Elias (), con limiti .
- Teorema 1: meno probabile non è più corto.
Esercizi svolti. Esercizio - sensori di temperatura, codice di Huffman, porta seriale e informazione mutua (esercizi del corso, cap. 5, es. 56); 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 - codice di Elias, Huffman sulla coppia di sorgenti e informazione mutua (compito del 22 gennaio 2019, es. 92); Esercizio - canale binario non simmetrico, informazione mutua, Huffman ed Elias sulle coppie e canale a cancellazione (compito del 10 febbraio 2021, es. 123).
Esercizi su questo argomento
- Esercizio - canale binario con rumore aleatorio, capacità e Huffman sulle triplette (secondo compitino dell'11 gennaio 2019, es. 90)
- Esercizio - canale binario non simmetrico, informazione mutua, Huffman ed Elias sulle coppie e canale a cancellazione (compito del 10 febbraio 2021, es. 123)
- Esercizio - codice di Elias, Huffman sulla coppia di sorgenti e informazione mutua (compito del 22 gennaio 2019, es. 92)
- Esercizio - due sorgenti indipendenti, codice di Shannon, Huffman e informazione mutua con un prodotto (compito del 24 gennaio 2025, es. 189)
- Esercizio - entropia condizionata, Huffman per due sorgenti e informazione mutua (compito del 25 giugno 2024, es. 178)
- Esercizio - entropia, Kraft-McMillan ternario, Huffman e capacità di due canali binari in cascata (secondo compitino del 14 gennaio 2025, es. 186)
- 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, Elias ed entropia con probabilità dipendenti dalla matricola (secondo compitino dell'8 gennaio 2021, es. 118)
- Esercizio - Kraft-McMillan, Huffman, due canali binari alternati e codice di Hamming (15,11) (compito del 13 febbraio 2026, es. 201)
- Esercizio - Kraft-McMillan, Huffman, Hamming (7,4) e attenuazione massima con 16-QAM (secondo compitino del 12 gennaio 2024, es. 170)
- Esercizio - quantizzatore a due livelli, canale a quattro uscite e codice di Huffman delle coppie (esame del 30 agosto 2024, es. 182)
- Esercizio - quantizzatore con densità a gradini, codice di Shannon e segnalazione quaternaria (esame dell'8 febbraio 2024, es. 176)
- Esercizio - quantizzatore con densità esponenziale a due lati, codice di Shannon, 64-QAM e Hamming (compito del 23 gennaio 2026, es. 198)
- Esercizio - quantizzatore per densità esponenziale limitata tra -1 e 1, codice di Shannon e Huffman (esame del 23 gennaio 2024, es. 173)
- Esercizio - sensori di temperatura, codice di Huffman, porta seriale e informazione mutua (esercizi del corso, cap. 5, es. 56)