Salta al contenuto
Note per Studenti Esercizio - quantizzatore a due livelli, canale a quattro uscite e codice di Huffman delle coppie (esame del 30 agosto 2024, es. 182)

Esercizio - quantizzatore a due livelli, canale a quattro uscite e codice di Huffman delle coppie (esame del 30 agosto 2024, es. 182)

Esame
In questa pagina 5

Testo (esame del 30 agosto 2024, esercizio 182). Una variabile aleatoria continua xx, uniforme tra −6-6 e 44, viene quantizzata con un quantizzatore uniforme a due livelli con valore di saturazione vsat=5,8v_{sat}=5{,}8. La variabile aleatoria y∈{1,2,3,4}y\in\{1,2,3,4\} è ottenuta all'uscita di un canale con matrice delle probabilità di transizione Q\mathbf Q (con elementi Qi,j=P[y=j∣x=i]Q_{i,j}=P[y=j\mid x=i]) Q=(0,10,20,30,40,250,250,250,25).\mathbf Q=\begin{pmatrix}0{,}1&0{,}2&0{,}3&0{,}4\\0{,}25&0{,}25&0{,}25&0{,}25\end{pmatrix}.

  1. (3p) Calcolare la probabilità di saturazione e l'entropia dei valori quantizzati di xx.
  2. (3p) Calcolare l'entropia di yy.
  3. (3p) Calcolare la lunghezza media delle parole del codice ottimo che codifica le coppie (x,y)(x,y).

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 →, 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 →, 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 →, 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 →, Probabilità per le telecomunicazioni - eventi e variabili aleatorie discreteGli eventi hanno probabilità tra 0 e 1 e P(x∪y) = P(x) + P(y) − P(x∩y). Una variabile aleatoria discreta ha un alfabeto A_x e una densità p_x(a) = P(x = a) con somma 1. Si definiscono probabilità condizionata, indipendenza (p_{x,y}(a,b) = p_x(a)p_y(b)), valore atteso E(x) = m_x, potenza M_x = E(x²), varianza σ_x² con M_x = m_x² + σ_x²; l'aspettazione è lineare e per variabili indipendenti E(xy) = E(x)E(y).Probabilità per le telecomunicazioni - eventi e variabili aleatorie discrete →.

Notazione. Nella matrice Q\mathbf Q l'indice ii della riga è il valore quantizzato di xx (il canale ha come ingresso l'uscita del quantizzatore, che ha due livelli): la riga 11 corrisponde al livello più basso −2,9-2{,}9 e la riga 22 al livello più alto +2,9+2{,}9 (livelli in ordine crescente; è l'ordine usato dalla soluzione del corso). Ogni riga è una densità su yy e somma a 11 (0,1+0,2+0,3+0,40{,}1+0{,}2+0{,}3+0{,}4 e 4⋅0,254\cdot0{,}25).

Grafico interattivo: Densità di x, uniforme su [−6, 4] (altezza 1/10): il quantizzatore a due livelli ha range [−5,8; 5,8], e l'unico pezzetto di densità fuori range è [−6; −5,8], area colorata 0,02 = P_sat

(1) Probabilità di saturazione e entropia dei valori quantizzati

Probabilità di saturazione. Psat=P(x∉[−5,8, 5,8])P_{sat}=P(x\notin[-5{,}8,\,5{,}8]). La densità è 110\frac1{10} su [−6,4][-6,4] e 00 altrove. A destra il segnale non supera 4<5,84<5{,}8, quindi non c'è saturazione. A sinistra va in saturazione l'intervallo [−6,−5,8][-6,-5{,}8], di larghezza 0,20{,}2: Psat=∫−6−5,8110 da=0,210=0,02.P_{sat}=\int_{-6}^{-5{,}8}\frac1{10}\,da=\frac{0{,}2}{10}=0{,}02.

Entropia dei valori quantizzati. Con L=2L=2 livelli Δ=2vsatL=5,8\Delta=\frac{2v_{sat}}{L}=5{,}8, l'unica soglia è in 00 e i livelli sono ±Δ2=±2,9\pm\frac\Delta2=\pm2{,}9. Un campione va al livello −2,9-2{,}9 se x<0x<0 (compresa la saturazione) e a +2,9+2{,}9 se x>0x>0: P(xq=−2,9)=P(x<0)=610=0,6,P(xq=+2,9)=P(x>0)=410=0,4.P(x_q=-2{,}9)=P(x<0)=\frac{6}{10}=0{,}6,\qquad P(x_q=+2{,}9)=P(x>0)=\frac4{10}=0{,}4. L'entropia, in bit, è H(xq)=−0,6log⁡20,6−0,4log⁡20,4=0,6⋅0,737+0,4⋅1,322=0,442+0,529=0,971 bit.H(x_q)=-0{,}6\log_20{,}6-0{,}4\log_20{,}4=0{,}6\cdot0{,}737+0{,}4\cdot1{,}322=0{,}442+0{,}529=0{,}971\ \text{bit.}

(2) Entropia di yy

Per le probabilità totali sull'ingresso ii del canale, con P(i=1)=0,6P(i=1)=0{,}6 e P(i=2)=0,4P(i=2)=0{,}4: P(y=j)=0,6 Q1,j+0,4 Q2,j.P(y=j)=0{,}6\,Q_{1,j}+0{,}4\,Q_{2,j}.

jj 11 22 33 44
0,6 Q1,j0{,}6\,Q_{1,j} 0,060{,}06 0,120{,}12 0,180{,}18 0,240{,}24
0,4 Q2,j0{,}4\,Q_{2,j} 0,100{,}10 0,100{,}10 0,100{,}10 0,100{,}10
P(y=j)P(y=j) 0,160{,}16 0,220{,}22 0,280{,}28 0,340{,}34

La somma è 11. L'entropia è H(y)=−∑jP(y=j)log⁡2P(y=j)=0,16⋅2,644+0,22⋅2,184+0,28⋅1,837+0,34⋅1,556=0,423+0,480+0,514+0,529=1,947 bit.H(y)=-\sum_jP(y=j)\log_2P(y=j)=0{,}16\cdot2{,}644+0{,}22\cdot2{,}184+0{,}28\cdot1{,}837+0{,}34\cdot1{,}556=0{,}423+0{,}480+0{,}514+0{,}529=1{,}947\ \text{bit.}

(3) Codice ottimo (Huffman) per le coppie (xq,y)(x_q,y)

Le coppie (i,j)(i,j) hanno probabilità P(i,j)=P(i) Qi,jP(i,j)=P(i)\,Q_{i,j}, che sono i numeri della tabella sopra: riga 11: 0,06; 0,12; 0,18; 0,240{,}06;\ 0{,}12;\ 0{,}18;\ 0{,}24; riga 22: 0,100{,}10 per tutte e quattro. Ci sono 88 coppie, e xqx_q e yy sono dipendenti (le righe di Q\mathbf Q sono diverse): non si possono trattare come due sorgenti separate. Il codice ottimo è quello di Huffman applicato alle 88 probabilità (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 →): 0,24, 0,18, 0,12, 0,10, 0,10, 0,10, 0,10, 0,06.0{,}24,\ 0{,}18,\ 0{,}12,\ 0{,}10,\ 0{,}10,\ 0{,}10,\ 0{,}10,\ 0{,}06. Ad ogni passo si uniscono i due simboli meno probabili:

  1. 0,06+0,10=0,160{,}06+0{,}10=0{,}16 →\to 0,24; 0,18; 0,16; 0,12; 0,10; 0,10; 0,100{,}24;\ 0{,}18;\ 0{,}16;\ 0{,}12;\ 0{,}10;\ 0{,}10;\ 0{,}10;
  2. 0,10+0,10=0,200{,}10+0{,}10=0{,}20 →\to 0,24; 0,20; 0,18; 0,16; 0,12; 0,100{,}24;\ 0{,}20;\ 0{,}18;\ 0{,}16;\ 0{,}12;\ 0{,}10;
  3. 0,12+0,10=0,220{,}12+0{,}10=0{,}22 →\to 0,24; 0,22; 0,20; 0,18; 0,160{,}24;\ 0{,}22;\ 0{,}20;\ 0{,}18;\ 0{,}16;
  4. 0,18+0,16=0,340{,}18+0{,}16=0{,}34 →\to 0,34; 0,24; 0,22; 0,200{,}34;\ 0{,}24;\ 0{,}22;\ 0{,}20;
  5. 0,22+0,20=0,420{,}22+0{,}20=0{,}42 →\to 0,42; 0,34; 0,240{,}42;\ 0{,}34;\ 0{,}24;
  6. 0,34+0,24=0,580{,}34+0{,}24=0{,}58 →\to 0,58; 0,420{,}58;\ 0{,}42; infine 0,58+0,42=10{,}58+0{,}42=1.

Leggendo l'albero dalla radice (ramo 00 verso 0,580{,}58, ramo 11 verso 0,420{,}42) si ottiene, per esempio:

coppia probabilità parola lunghezza
(1,4)(1,4) 0,240{,}24 0000 22
(1,3)(1,3) 0,180{,}18 010010 33
(1,1)(1,1) 0,060{,}06 01100110 44
(2,j)(2,j) in 0,160{,}16 0,100{,}10 01110111 44
(1,2)(1,2) 0,120{,}12 100100 33
tre coppie (2,⋅)(2,\cdot) da 0,100{,}10 0,100{,}10 101, 110, 111101,\ 110,\ 111 33

La lunghezza media è la somma di probabilità per lunghezza: 2⋅0,24=0,482\cdot0{,}24=0{,}48; 3⋅0,18=0,543\cdot0{,}18=0{,}54; 3⋅0,12=0,363\cdot0{,}12=0{,}36; 3⋅(3⋅0,10)=0,903\cdot(3\cdot0{,}10)=0{,}90 (tre coppie da 0,100{,}10 con parola di 33 bit); 4⋅0,10=0,404\cdot0{,}10=0{,}40; 4⋅0,06=0,244\cdot0{,}06=0{,}24. Somma: Lˉ=0,48+0,54+0,36+0,90+0,40+0,24=2,92 bit per coppia.\bar L=0{,}48+0{,}54+0{,}36+0{,}90+0{,}40+0{,}24=2{,}92\ \text{bit per coppia.} Verifica con la teoria: l'entropia congiunta delle coppie è H(xq,y)=2,879H(x_q,y)=2{,}879 bit e il codice ottimo soddisfa H≤Lˉ<H+1H\le\bar L<H+1: 2,879≤2,92<3,8792{,}879\le2{,}92<3{,}879, e il codice è molto vicino al limite. (La soluzione del corso riporta lo stesso valore, 2,922{,}92 bit, con un altro codice di uguale lunghezza media.)

Se si numerano i livelli in modo diverso

Se invece la riga 11 di Q\mathbf Q fosse associata al livello positivo (probabilità 0,40{,}4), si avrebbe P(y)=(0,19; 0,23; 0,27; 0,31)P(y)=(0{,}19;\,0{,}23;\,0{,}27;\,0{,}31), H(y)=1,977H(y)=1{,}977 e il codice di Huffman delle coppie avrebbe Lˉ=2,96\bar L=2{,}96: l'assegnazione dei livelli alle righe conta, e il testo non la dichiara. Qui si segue quella della soluzione del corso (livelli in ordine crescente, prima riga ↔\leftrightarrow livello negativo, probabilità 0,60{,}6).

(Verifica con Python: Psat=0,02P_{sat}=0{,}02, H(xq)=0,9710H(x_q)=0{,}9710, P(y)=(0,16; 0,22; 0,28; 0,34)P(y)=(0{,}16;\,0{,}22;\,0{,}28;\,0{,}34), H(y)=1,9470H(y)=1{,}9470, Huffman Lˉ=2,92\bar L=2{,}92 ed H(xq,y)=2,8788H(x_q,y)=2{,}8788; per la numerazione opposta 1,97671{,}9767 e 2,962{,}96.)

Errori comuni

  • Calcolare PsatP_{sat} con due code: la densità finisce in 4<5,84<5{,}8, quindi la coda destra è nulla.
  • Assegnare a xqx_q probabilità 12,12\frac12,\frac12 perché i livelli sono due: l'intervallo [−6,0][-6,0] è più largo di [0,4][0,4].
  • Dare a yy la densità della riga di Q\mathbf Q senza pesare con P(i)P(i).
  • Codificare separatamente xqx_q e yy: sono dipendenti, il codice ottimo va costruito sulla congiunta.
  • Sbagliare l'ordine dei passi di Huffman: ad ogni passo si fondono sempre i due meno probabili.

Versione ripasso

Testo. xx uniforme su [−6,4][-6,4], quantizzatore a 22 livelli con vsat=5,8v_{sat}=5{,}8; y∈{1,2,3,4}y\in\{1,2,3,4\} uscita di un canale con Q=(0,10,20,30,40,250,250,250,25)\mathbf Q=\begin{pmatrix}0{,}1&0{,}2&0{,}3&0{,}4\\0{,}25&0{,}25&0{,}25&0{,}25\end{pmatrix}. (1) PsatP_{sat} ed entropia dei valori quantizzati. (2) H(y)H(y). (3) Lunghezza media del codice ottimo per le coppie (x,y)(x,y).

(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) Fuori range solo [−6,−5,8][-6,-5{,}8]: Psat=0,210=0,02P_{sat}=\frac{0{,}2}{10}=0{,}02 (a destra 4<5,84<5{,}8). Soglia in 00, livelli ±2,9\pm2{,}9: P(x<0)=0,6P(x<0)=0{,}6, P(x>0)=0,4P(x>0)=0{,}4; H=−0,6log⁡20,6−0,4log⁡20,4=0,971H=-0{,}6\log_20{,}6-0{,}4\log_20{,}4=0{,}971 bit.
  • (2) Riga 1↔1\leftrightarrow livello negativo (0,60{,}6): P(y=j)=0,6Q1,j+0,4Q2,j=(0,16; 0,22; 0,28; 0,34)P(y=j)=0{,}6Q_{1,j}+0{,}4Q_{2,j}=(0{,}16;\,0{,}22;\,0{,}28;\,0{,}34), H(y)=1,947H(y)=1{,}947 bit.
  • (3) Coppie P(i,j)=P(i)Qi,jP(i,j)=P(i)Q_{i,j}: 0,06; 0,12; 0,18; 0,240{,}06;\,0{,}12;\,0{,}18;\,0{,}24 e quattro da 0,100{,}10. Huffman: 0,06+0,100{,}06+0{,}10, 0,10+0,100{,}10+0{,}10, 0,12+0,100{,}12+0{,}10, 0,18+0,160{,}18+0{,}16, 0,22+0,200{,}22+0{,}20, 0,34+0,240{,}34+0{,}24; lunghezze 22 (0,240{,}24), 33 (0,180{,}18, 0,120{,}12, tre da 0,100{,}10), 44 (0,060{,}06, un 0,100{,}10). Lˉ=0,48+0,54+0,36+0,90+0,40+0,24=2,92\bar L=0{,}48+0{,}54+0{,}36+0{,}90+0{,}40+0{,}24=2{,}92 bit (H(xq,y)=2,879H(x_q,y)=2{,}879).
  • Attenzione: con la numerazione opposta (0,40{,}4 sulla riga 11) H(y)=1,977H(y)=1{,}977 e Lˉ=2,96\bar L=2{,}96. xqx_q e yy sono dipendenti: si codifica la congiunta.
  • Albero di Huffman: 0,06+0,10=0,160{,}06+0{,}10=0{,}16; 0,10+0,10=0,200{,}10+0{,}10=0{,}20; 0,12+0,10=0,220{,}12+0{,}10=0{,}22; 0,18+0,16=0,340{,}18+0{,}16=0{,}34; 0,22+0,20=0,420{,}22+0{,}20=0{,}42; 0,34+0,24=0,580{,}34+0{,}24=0{,}58. Codice: 00, 010, 0110, 0111, 100, 101, 110, 11100,\ 010,\ 0110,\ 0111,\ 100,\ 101,\ 110,\ 111 (prefisso). Tabella di yy: 0,6Q1,j+0,4Q2,j0{,}6Q_{1,j}+0{,}4Q_{2,j}.
  • Errori: due code in PsatP_{sat}; livelli equiprobabili; P(y)P(y) senza i pesi P(i)P(i); codici separati per xqx_q e yy.

Teoria collegata