Esercizio - quantizzatore per densità esponenziale limitata tra -1 e 1, codice di Shannon e Huffman (esame del 23 gennaio 2024, es. 173)
In questa pagina 5
Testo (esame del 23 gennaio 2024, esercizio 173). Una sorgente genera un campione ogni ms con densità di probabilità che ha potenza . I diversi campioni sono variabili aleatorie indipendenti. Ogni campione viene quantizzato con un quantizzatore uniforme da progettare e la sequenza di bit di ogni campione quantizzato entra in un codificatore di sorgente da progettare.
- (2p) Calcolare il valore di saturazione e il numero di livelli di quantizzazione del quantizzatore che fornisce un rapporto segnale-rumore di quantizzazione di almeno dB con il numero minimo di bit per campione.
- (2p) Calcolare la lunghezza media delle parole del codice di sorgente che utilizza la codifica di Shannon.
- (2p) Dire se esiste un (altro) codice di sorgente binario che codifica valori quantizzati e ha lunghezza media delle parole di codice di bit, motivando la risposta.
- (3p) Utilizzando ora un quantizzatore non uniforme al posto di quello uniforme, i valori quantizzati hanno probabilità , , , e . Calcolare il numero medio di bit al secondo che escono dal codificatore di sorgente che utilizza la codifica binaria ottima.
Teoria usata: Quantizzazione uniforme - saturazione, errore granulare e SNR di quantizzazioneUn quantizzatore uniforme a L = 2^b livelli e range [−v_sat, v_sat] ha passo Δ = 2v_sat/L. L'errore e = x − x^(q) è di saturazione fuori range (illimitato, da rendere raro con P_sat piccola) e granulare dentro (|e| ≤ Δ/2, uniforme con potenza Δ²/12). L'SNR di quantizzazione Λ_q = E[x²]/E[e²] vale in decibel 20log₁₀(σ_x/v_sat) + 4,77 + 6,02·b: ogni bit in più dà 6 dB. Per b minimo che garantisce una specifica: ⌈(specifica − c)/6,02⌉ con c = 20log₁₀(σ_x/v_sat) + 4,77.Quantizzazione uniforme - saturazione, errore granulare e SNR di quantizzazione →, 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 →, 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 →, Quantizzazione non uniforme, companding e conversione A-DIn un quantizzatore non uniforme gli intervalli I_i hanno larghezze diverse (stretti dove la densità è alta) e la potenza dell'errore è M_e = Σ M_{e_i} P(x ∈ I_i), con M_{e_i} = E[(x − a_qi)² | x ∈ I_i]. Si realizza con il companding (compressore μ(x), quantizzatore uniforme, espansore) o raggruppando gli intervalli di un quantizzatore uniforme fine. Nella conversione A-D con campionamento ogni T_s e b bit per campione, T_b = T_s/b e R_b = b/T_s bit/s. Esempio completo con densità esponenziale a due lati: v_sat, b, bit rate e periodo di simbolo della 16-QAM.Quantizzazione non uniforme, companding e conversione A-D →.
La densità. È una campana a punta (esponenziale a due lati) limitata a , con valore massimo in e ai bordi. La costante è un'approssimazione di (normalizzazione: ), quindi l'area vale ; la potenza data, , è l'approssimazione di .
Grafico interattivo: Densità p_X(a) = e^(−|a|/3)/1,7 su [−1, 1]: massimo 0,588 in a = 0, valore 0,42 ai bordi; fuori da [−1, 1] è nulla
(1) Quantizzatore uniforme
Saturazione. I campioni stanno in con certezza: e .
Numero di bit. Con potenza (media nulla per simmetria, quindi ) e : Si impone , cioè Con l'SNR sarebbe dB (non basta), con dB. I livelli sono , con passo , intervalli , , , e livelli , .
(2) Codice di Shannon
Probabilità dei livelli. Si integra la densità su ciascun intervallo (per simmetria bastano e ): Si arrotonda a (livelli esterni) e (livelli interni): somma .
Lunghezze. : per , bit; per , bit (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 →). Il codice di Shannon spreca: la lunghezza fissa ( bit) è già migliore (). Un codice di Huffman su queste probabilità () fonderebbe e e darebbe lunghezza a tutti i simboli, cioè bit, appena sopra l'entropia ( bit, punto 3).
(3) Un codice per valori con lunghezza media bit?
L'entropia di un campione quantizzato è I campioni sono indipendenti, quindi valori hanno entropia bit (l'entropia di variabili indipendenti è la somma). Per il teorema di Shannon sulla codifica di sorgente ogni codice binario univocamente decodificabile ha lunghezza media non inferiore all'entropia: per valori almeno bit. Il codice proposto, con bit in media, richiederebbe una media di bit per valore, meno dei bit di informazione che ogni valore contiene. Non esiste. (La soluzione del corso riporta bit con l'entropia arrotondata a .)
(4) Quantizzatore non uniforme e codice ottimo (Huffman)
Le probabilità sono (somma ). Il codice binario ottimo è quello di Huffman: si uniscono ripetutamente i due meno probabili.
- : restano ;
- : restano ;
- : restano ;
- .
Le parole risultanti (per esempio) sono (), (), (), (), (): lunghezze . Lunghezza media (Scegliendo diversamente il simbolo da unire a parità di probabilità, per esempio con la originale invece di quella fusa, si ottengono parole diverse ma la stessa lunghezza media .) Poiché esce un campione ogni ms, il numero medio di bit al secondo in uscita dal codificatore è Controllo: l'entropia di queste probabilità è bit, quindi e il minimo teorico sarebbe bit/s: Huffman è a dal limite.
(Tutti i risultati ricalcolati con Python: con dB, , , , , Huffman , , bit/s. Coincidono con le soluzioni del corso.)
Errori comuni
- Usare : il segnale non esce da , quindi basta .
- Fermarsi a senza arrotondare per eccesso, o dire perché "quasi basta".
- Nel punto 3, confrontare bit con (lunghezza fissa) invece che con : la risposta si ottiene con il teorema di Shannon.
- Calcolare i bit al secondo moltiplicando per ms invece di dividere: bit/s.
- Considerare il codice di Shannon ottimo: l'ottimo è Huffman.
Versione ripasso
Testo. su , potenza , un campione ogni ms, indipendenti. (1) e livelli per dB con minimo. (2) Lunghezza media del codice di Shannon. (3) Esiste un codice per valori con lunghezza media bit? (4) Con probabilità : bit/s del codice ottimo.
(Quantizzazione uniforme - saturazione, errore granulare e SNR di quantizzazioneUn quantizzatore uniforme a L = 2^b livelli e range [−v_sat, v_sat] ha passo Δ = 2v_sat/L. L'errore e = x − x^(q) è di saturazione fuori range (illimitato, da rendere raro con P_sat piccola) e granulare dentro (|e| ≤ Δ/2, uniforme con potenza Δ²/12). L'SNR di quantizzazione Λ_q = E[x²]/E[e²] vale in decibel 20log₁₀(σ_x/v_sat) + 4,77 + 6,02·b: ogni bit in più dà 6 dB. Per b minimo che garantisce una specifica: ⌈(specifica − c)/6,02⌉ con c = 20log₁₀(σ_x/v_sat) + 4,77.Quantizzazione uniforme - saturazione, errore granulare e SNR di quantizzazione →, 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 →)
- (1) Supporto : . ; (: dB), , , livelli .
- (2) , . Lunghezze e : bit.
- (3) bit; : per il teorema di Shannon la lunghezza media non può scendere sotto l'entropia, quindi non esiste (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 →).
- (4) Huffman: , , , ; lunghezze (); bit; bit/s (, minimo bit/s).
- Note: la lunghezza fissa ( bit) batte Shannon (); il è un'approssimazione di .
- Errori: ; non arrotondare ; confronto di bit con invece che con ; moltiplicare per ms invece di dividere; Shannon ritenuto ottimo.