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) ha ampiezza con densità px(x)lineare crescente: nulla fino a x=−V, che sale con una retta fino al valore V1 in x=V, e nulla dopo. Se ne ricavino il valor medio mx e la potenza Mx. Si considera una quantizzazione generica con rappresentazione dei valori a 2 bit, cioè con tre soglie nell'intervallo [−vsat,vsat]: quale intervallo conviene? In generale, se y è l'uscita del quantizzatore, il valor medio dell'errore di quantizzazione è meq=my−mx=0: si ricavi my (suggerimento: si faccia il conto sui diversi intervalli di quantizzazione) e da esso la media di eq. 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 2 bit ottiene più o meno le stesse prestazioni previste dalla formula teorica (nonostante le ipotesi sull'errore non siano verificate). Sfida: poiché 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 1 dB. Qualcuno sostiene di esserci riuscito addirittura con un quantizzatore mid-tread (che cosa vuol dire in questo caso?).
La retta passa per (−V,0) e (V,V1), quindi px(x)=2V2x+V per ∣x∣≤V. Area: 21⋅2V⋅V1=1 ✓. Media e potenza:
mx=∫−VVx2V2x+Vdx=2V21[3x3+2Vx2]−VV=2V21⋅32V3=3V,Mx=∫−VVx22V2x+Vdx=2V21[4x4+3Vx3]−VV=2V21⋅32V4=3V2.
(la parte dispari dell'integranda si annulla sull'intervallo simmetrico); varianza σx2=Mx−mx2=3V2−9V2=92V2. Il segnale non ha media nulla. Da qui in poi V=1 (i risultati si moltiplicano per V o V2).
Quale intervallo: [−V,V]
La densità è nulla fuori da [−V,V]: con vsat=V non c'è saturazione e tutti i livelli sono usati; con vsat<V si saturerebbe, con vsat>V si sprecherebbe risoluzione. Non conviene centrare il segnale sottraendo la media (come si fa a volte): x−mx occuperebbe [−34V,32V], un intervallo più ampio.
Media e potenza dell'errore di un quantizzatore generico
Siano Ri le quattro regioni (tre soglie), Qi i livelli, e
pi=∫Ripxdx,μi=∫Rixpxdx.
Il valor medio dell'uscita si ottiene sommando sugli intervalli di quantizzazione (ogni x∈Ri diventa Qi):
my=i∑Qipi,meq=my−mx=i∑Qipi−mx.
La potenza dell'errore è la somma degli integrali sulle regioni:
Meq=i∑∫Ri(x−Qi)2pxdx=Mx−2i∑Qiμi+i∑Qi2pi.
Quantizzatore uniforme mid-riser a 2 bit
Δ=42V=2V; soglie −2V,0,2V; livelli −43V,−4V,4V,43V. Con p(x)=2x+1 (per V=1) e ∫2x+1dx=4(x+1)2:
p1=4(1/2)2=161,p2=41−1/4=163,p3=49/4−1=165,p4=44−9/4=167
(somma 1 ✓: i livelli più alti sono più probabili). Quindi
my=−43⋅161−41⋅163+41⋅165+43⋅167=64−3−3+5+21=165V,meq=165V−31V=−48V=0:
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) con p′=2V21 e p(Qi)=Δpi (il valore della retta nel punto medio è il valore medio sulla regione). Allora
∫Ri(x−Qi)2p(x)dx=p(Qi)∫−Δ/2Δ/2u2du+p′=0∫−Δ/2Δ/2u3du=pi12Δ2.
Il termine dispari si annulla: per una densità lineare in ogni regione la potenza dell'errore è esattamente∑ipi12Δ2=12Δ2. Qui Δ=2V:
Meq=12(V/2)2=48V2=0,0208V2
(regione per regione: 48piV2=0,0013,0,0039,0,0065,0,0091V2). Quindi la formula teorica 12Δ2, 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=MeqMx=V2/48V2/3=16⇒12,04dB.
(L'errore ha media −48V: se la si toglie, la varianza dell'errore è Meq−meq2=0,0204V2, di poco inferiore.)
Il quantizzatore migliore (Lloyd-Max)
Il quantizzatore ottimo (minima Meq per L fissato) soddisfa due condizioni che si impongono a vicenda:
le soglie sono i punti medi tra livelli adiacenti: vj=2Qj+Qj+1 (ogni campione va al livello più vicino);
ogni livello è il baricentro della propria regione: Qi=piμi=E[x∣x∈Ri].
Con i livelli ai baricentri ∑iQiμi=∑iQi2pi e Meq=Mx−∑iQi2pi; inoltre my=∑Qipi=∑μi=mx, quindi meq=0. Qui il baricentro di [a,b] è c=∫ab(x+1)dx∫abx(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=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.Meq=Mx−∑Qi2pi=0,01645V2,Λq=0,016451/3=20,26⇒13,07dB.Guadagno sull'uniforme: 13,07−12,04=1,03 dB (il "circa 1 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 0 (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≈0. 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,01645V2(13,07dB),
praticamente identico al Lloyd-Max: un mid-tread con 4 livelli (asimmetrico, perché la densità lo è) raggiunge lo stesso guadagno di circa 1 dB. Un mid-tread uniforme con passo 0,45V (livelli −0,45;0;0,45;0,9) dà già 12,65 dB, meglio del mid-riser uniforme (12,04 dB).