Salta al contenuto
Note per Studenti Esercizio - progetto di un quantizzatore non uniforme

Esercizio - progetto di un quantizzatore non uniforme

Questa pagina non ha ancora la versione ripasso: qui sotto c'è il testo completo.

In questa pagina 6

Testo (approfondimento facoltativo del corso). Un segnale aleatorio x(t)x(t) ha ampiezza con densità px(x)p_x(x) lineare crescente: nulla fino a x=−Vx=-V, che sale con una retta fino al valore 1V\frac1V in x=Vx=V, e nulla dopo. Se ne ricavino il valor medio mxm_x e la potenza MxM_x. Si considera una quantizzazione generica con rappresentazione dei valori a 22 bit, cioè con tre soglie nell'intervallo [−vsat,vsat][-v_{sat},v_{sat}]: quale intervallo conviene? In generale, se yy è l'uscita del quantizzatore, il valor medio dell'errore di quantizzazione è meq=my−mx≠0m_{e_q}=m_y-m_x\neq0: si ricavi mym_y (suggerimento: si faccia il conto sui diversi intervalli di quantizzazione) e da esso la media di eqe_q. Con procedura analoga si ricavi la potenza dell'errore di quantizzazione (conviene scriverla in modo letterale, così è più generale). Si verifichi che un quantizzatore uniforme mid-riser a 22 bit ottiene più o meno le stesse prestazioni previste dalla formula teorica (nonostante le ipotesi sull'errore non siano verificate). Sfida: poiché x(t)x(t) non ha distribuzione uniforme, il quantizzatore uniforme non è la scelta migliore possibile: si riesce a fare di meglio? Si dovrebbe migliorare di circa 11 dB. Qualcuno sostiene di esserci riuscito addirittura con un quantizzatore mid-tread (che cosa vuol dire in questo caso?).

Teoria usata: Quantizzazione e rumore di quantizzazioneIl quantizzatore mappa ogni campione reale su uno dei $L=2^b$ livelli. Il quantizzatore uniforme mid-riser ha passo $\Delta=\frac{2v_{sat}}{L}$, soglie multiple di $\Delta$ e livelli multipli dispari di $\frac\Delta2$. L'errore $e_q=a_q-a$ è granulare (in $[-\frac\Delta2,\frac\Delta2]$, circa uniforme, potenza $\frac{\Delta^2}{12}$) o di saturazione (fuori da $[-v_{sat},v_{sat}]$, trascurabile se $P_{sat}$ è piccola). L'SNR è $\Lambda_q=\frac{M_a}{M_{e_q}}$ e, con saturazione trascurabile, $[\Lambda_q]{dB}=6{,}02,b+4{,}77-20\log{10}\frac{v_{sat}}{\sigma_a}$: $+6$ dB per ogni bit.Quantizzazione e rumore di quantizzazione →, Valore attesoIl valore atteso E[X] = Σ x p_X(x) è la media dei valori di X pesata con le loro probabilità (esiste se la serie converge assolutamente); per una funzione g vale E[g(X)] = Σ g(x) p_X(x) senza trovare la legge di g(X), ed E è lineare: E[aX + bY + c] = aE[X] + bE[Y] + c.Valore atteso →, Varianza e momentiI momenti E[X^k] e i momenti centrati E[(X − μ)^k] descrivono la forma di una legge; la varianza Var(X) = E[(X − μ)²] = E[X²] − E[X]² misura quanto X si disperde attorno alla media, vale Var(aX + b) = a² Var(X) e Var(X) = 0 solo se X è costante.Varianza e momenti →.

Densità, media e potenza

La retta passa per (−V,0)(-V,0) e (V,1V)\left(V,\frac1V\right), quindi px(x)=x+V2V2p_x(x)=\frac{x+V}{2V^2} per ∣x∣≤V\lvert x\rvert\le V. Area: 12⋅2V⋅1V=1\frac12\cdot2V\cdot\frac1V=1 ✓. Media e potenza: mx=∫−VVx x+V2V2dx=12V2[x33+Vx22]−VV=12V2⋅2V33=V3,m_x=\int_{-V}^Vx\,\frac{x+V}{2V^2}dx=\frac1{2V^2}\left[\frac{x^3}3+\frac{Vx^2}2\right]_{-V}^{V}=\frac1{2V^2}\cdot\frac{2V^3}3=\frac V3, Mx=∫−VVx2x+V2V2dx=12V2[x44+Vx33]−VV=12V2⋅2V43=V23.M_x=\int_{-V}^Vx^2\frac{x+V}{2V^2}dx=\frac1{2V^2}\left[\frac{x^4}4+\frac{Vx^3}3\right]_{-V}^{V}=\frac1{2V^2}\cdot\frac{2V^4}3=\frac{V^2}3. (la parte dispari dell'integranda si annulla sull'intervallo simmetrico); varianza σx2=Mx−mx2=V23−V29=2V29\sigma_x^2=M_x-m_x^2=\frac{V^2}3-\frac{V^2}9=\frac{2V^2}9. Il segnale non ha media nulla. Da qui in poi V=1V=1 (i risultati si moltiplicano per VV o V2V^2).

Quale intervallo: [−V,V][-V,V]

La densità è nulla fuori da [−V,V][-V,V]: con vsat=Vv_{sat}=V non c'è saturazione e tutti i livelli sono usati; con vsat<Vv_{sat}<V si saturerebbe, con vsat>Vv_{sat}>V si sprecherebbe risoluzione. Non conviene centrare il segnale sottraendo la media (come si fa a volte): x−mxx-m_x occuperebbe [−43V,23V]\left[-\frac43V,\frac23V\right], un intervallo più ampio.

Media e potenza dell'errore di un quantizzatore generico

Siano Ri\mathcal R_i le quattro regioni (tre soglie), QiQ_i i livelli, e pi=∫Ripx dx,μi=∫Rix px dx.p_i=\int_{\mathcal R_i}p_x\,dx,\qquad\mu_i=\int_{\mathcal R_i}x\,p_x\,dx. Il valor medio dell'uscita si ottiene sommando sugli intervalli di quantizzazione (ogni x∈Rix\in\mathcal R_i diventa QiQ_i): my=∑iQipi,meq=my−mx=∑iQipi−mx.m_y=\sum_iQ_ip_i,\qquad m_{e_q}=m_y-m_x=\sum_iQ_ip_i-m_x. La potenza dell'errore è la somma degli integrali sulle regioni: Meq=∑i∫Ri(x−Qi)2px dx=Mx−2∑iQiμi+∑iQi2pi.M_{e_q}=\sum_i\int_{\mathcal R_i}(x-Q_i)^2p_x\,dx=M_x-2\sum_iQ_i\mu_i+\sum_iQ_i^2p_i.

Quantizzatore uniforme mid-riser a 22 bit

Δ=2V4=V2\Delta=\frac{2V}4=\frac V2; soglie −V2,0,V2-\frac V2,0,\frac V2; livelli −3V4,−V4,V4,3V4-\frac{3V}4,-\frac V4,\frac V4,\frac{3V}4. Con p(x)=x+12p(x)=\frac{x+1}2 (per V=1V=1) e ∫x+12dx=(x+1)24\int\frac{x+1}2dx=\frac{(x+1)^2}4: p1=(1/2)24=116,p2=1−1/44=316,p3=9/4−14=516,p4=4−9/44=716p_1=\frac{(1/2)^2}4=\frac1{16},\quad p_2=\frac{1-1/4}4=\frac3{16},\quad p_3=\frac{9/4-1}4=\frac5{16},\quad p_4=\frac{4-9/4}4=\frac7{16} (somma 11 ✓: i livelli più alti sono più probabili). Quindi my=−34⋅116−14⋅316+14⋅516+34⋅716=−3−3+5+2164=516V,meq=516V−13V=−V48≠0:m_y=-\frac34\cdot\frac1{16}-\frac14\cdot\frac3{16}+\frac14\cdot\frac5{16}+\frac34\cdot\frac7{16}=\frac{-3-3+5+21}{64}=\frac5{16}V,\qquad m_{e_q}=\frac5{16}V-\frac13V=-\frac V{48}\neq0: l'errore ha una media non nulla (il quantizzatore, simmetrico, "sposta" leggermente verso il basso).

Potenza dell'errore. In ogni regione la densità è lineare, p(x)=p(Qi)+p′ (x−Qi)p(x)=p(Q_i)+p'\,(x-Q_i) con p′=12V2p'=\frac1{2V^2} e p(Qi)=piΔp(Q_i)=\frac{p_i}\Delta (il valore della retta nel punto medio è il valore medio sulla regione). Allora ∫Ri(x−Qi)2p(x) dx=p(Qi)∫−Δ/2Δ/2u2du+p′∫−Δ/2Δ/2u3du⏟=0=piΔ212.\int_{\mathcal R_i}(x-Q_i)^2p(x)\,dx=p(Q_i)\int_{-\Delta/2}^{\Delta/2}u^2du+p'\underbrace{\int_{-\Delta/2}^{\Delta/2}u^3du}_{=0}=p_i\frac{\Delta^2}{12}. Il termine dispari si annulla: per una densità lineare in ogni regione la potenza dell'errore è esattamente ∑ipiΔ212=Δ212\sum_ip_i\frac{\Delta^2}{12}=\frac{\Delta^2}{12}. Qui Δ=V2\Delta=\frac V2: Meq=(V/2)212=V248=0,0208 V2M_{e_q}=\frac{(V/2)^2}{12}=\frac{V^2}{48}=0{,}0208\,V^2 (regione per regione: pi48V2=0,0013, 0,0039, 0,0065, 0,0091 V2\frac{p_i}{48}V^2=0{,}0013,\ 0{,}0039,\ 0{,}0065,\ 0{,}0091\,V^2). Quindi la formula teorica Δ212\frac{\Delta^2}{12}, ricavata per errore uniforme e passo piccolo, qui è esatta, e conferma la robustezza dell'analisi: vale in buona approssimazione anche quando i gradini sono larghi. L'SNR è Λq=MxMeq=V2/3V2/48=16 ⇒ 12,04 dB.\Lambda_q=\frac{M_x}{M_{e_q}}=\frac{V^2/3}{V^2/48}=16\ \Rightarrow\ 12{,}04\ \text{dB}. (L'errore ha media −V48-\frac V{48}: se la si toglie, la varianza dell'errore è Meq−meq2=0,0204 V2M_{e_q}-m_{e_q}^2=0{,}0204\,V^2, di poco inferiore.)

Il quantizzatore migliore (Lloyd-Max)

Il quantizzatore ottimo (minima MeqM_{e_q} per LL fissato) soddisfa due condizioni che si impongono a vicenda:

  1. le soglie sono i punti medi tra livelli adiacenti: vj=Qj+Qj+12v_j=\frac{Q_j+Q_{j+1}}2 (ogni campione va al livello più vicino);
  2. ogni livello è il baricentro della propria regione: Qi=μipi=E[x∣x∈Ri]Q_i=\frac{\mu_i}{p_i}=E[x\mid x\in\mathcal R_i].

Con i livelli ai baricentri ∑iQiμi=∑iQi2pi\sum_iQ_i\mu_i=\sum_iQ_i^2p_i e Meq=Mx−∑iQi2piM_{e_q}=M_x-\sum_iQ_i^2p_i; inoltre my=∑Qipi=∑μi=mxm_y=\sum Q_ip_i=\sum\mu_i=m_x, quindi meq=0m_{e_q}=0. Qui il baricentro di [a,b][a,b] è c=∫abx(x+1)dx∫ab(x+1)dxc=\frac{\int_a^bx(x+1)dx}{\int_a^b(x+1)dx} e si risolve per iterazione: si parte dal quantizzatore uniforme, si calcolano i baricentri, poi le nuove soglie come punti medi, e si ripete fino a convergenza. Si trova (con V=1V=1) soglie −0,249, 0,216, 0,624;livelli −0,499, 0,002, 0,430, 0,819;pi=0,141; 0,228; 0,290; 0,340.\text{soglie }-0{,}249,\ 0{,}216,\ 0{,}624;\qquad\text{livelli }-0{,}499,\ 0{,}002,\ 0{,}430,\ 0{,}819;\qquad p_i=0{,}141;\ 0{,}228;\ 0{,}290;\ 0{,}340. Meq=Mx−∑Qi2pi=0,01645 V2,Λq=1/30,01645=20,26 ⇒ 13,07 dB.M_{e_q}=M_x-\sum Q_i^2p_i=0{,}01645\,V^2,\qquad\Lambda_q=\frac{1/3}{0{,}01645}=20{,}26\ \Rightarrow\ 13{,}07\ \text{dB}. Guadagno sull'uniforme: 13,07−12,04=1,0313{,}07-12{,}04=1{,}03 dB (il "circa 11 dB" del testo). I livelli ottimi si addensano dove c'è più probabilità (a destra) e il secondo livello cade praticamente nello zero.

Mid-tread. Un quantizzatore mid-tread ha un livello esattamente in 00 (la caratteristica ha un tratto piatto in zero). Il risultato precedente dice che qui è la scelta naturale: il quantizzatore ottimo ha già un livello a 0,002≈00{,}002\approx0. Imponendo il livello in zero e ottimizzando soglie e altri livelli si ottiene soglie −0,25, 0,214, 0,624;livelli −0,5, 0, 0,429, 0,818;Meq=0,01645 V2 (13,07 dB),\text{soglie }-0{,}25,\ 0{,}214,\ 0{,}624;\qquad\text{livelli }-0{,}5,\ 0,\ 0{,}429,\ 0{,}818;\qquad M_{e_q}=0{,}01645\,V^2\ (13{,}07\ \text{dB}), praticamente identico al Lloyd-Max: un mid-tread con 44 livelli (asimmetrico, perché la densità lo è) raggiunge lo stesso guadagno di circa 11 dB. Un mid-tread uniforme con passo 0,45V0{,}45V (livelli −0,45;0;0,45;0,9-0{,}45;0;0{,}45;0{,}9) dà già 12,6512{,}65 dB, meglio del mid-riser uniforme (12,0412{,}04 dB).

quantizzatore soglie /V/V livelli /V/V Meq/V2M_{e_q}/V^2 SNR
uniforme mid-riser −0,5; 0; 0,5-0{,}5;\ 0;\ 0{,}5 ±0,25; ±0,75\pm0{,}25;\ \pm0{,}75 148=0,0208\frac1{48}=0{,}0208 12,0412{,}04 dB
ottimo (Lloyd-Max) −0,249; 0,216; 0,624-0{,}249;\ 0{,}216;\ 0{,}624 −0,499; 0,002; 0,430; 0,819-0{,}499;\ 0{,}002;\ 0{,}430;\ 0{,}819 0,016450{,}01645 13,0713{,}07 dB
ottimo mid-tread −0,25; 0,214; 0,624-0{,}25;\ 0{,}214;\ 0{,}624 −0,5; 0; 0,429; 0,818-0{,}5;\ 0;\ 0{,}429;\ 0{,}818 0,016450{,}01645 13,0713{,}07 dB

Lezioni in cui compare

Teoria collegata