Salta al contenuto
Note per Studenti Quantizzazione e rumore di quantizzazione

Quantizzazione e rumore di quantizzazione

In questa pagina 7

La quantizzazione è il blocco che trasforma i campioni, numeri reali, in valori scelti in un insieme finito (Campionamento e conversione analogico-digitalePer trasmettere un segnale analogico $a(t)$ con un sistema digitale lo si trasforma in bit: filtro anti-aliasing, campionatore ($T_s=\frac1{F_s}$, $F_s\ge2B$), quantizzatore su $L=2^b$ livelli, mappa livello $\to$ $b$ bit, serializzatore. Il bit-rate nominale è $R_b=bF_s$. Campionare è reversibile (con un filtro interpolatore, in pratica un holder) se $F_s\ge2B$; quantizzare invece perde informazione in modo irreversibile. Al ricevitore si ripercorre la catena al contrario (D/A).Campionamento e conversione analogico-digitale → ne mostra il posto nella catena A/D). È l'unica operazione della conversione che perde informazione in modo irreversibile, quindi bisogna saper misurare quanto errore introduce e quanti bit servono per tenerlo sotto un valore dato.

1. Il quantizzatore

Definizione (quantizzatore). Un quantizzatore è una funzione Q:R→Aq={Q1,…,QL}Q:\mathbb R\to\mathcal A_q=\{Q_1,\dots,Q_L\} che a ogni campione a(nTs)a(nT_s) associa un livello aq(nTs)=Q(a(nTs))a_q(nT_s)=Q(a(nT_s)). Si divide R\mathbb R in LL regioni disgiunte R1,…,RL\mathcal R_1,\dots,\mathcal R_L separate da L−1L-1 soglie v2<⋯<vLv_2<\dots<v_L; il campione in Rj\mathcal R_j diventa QjQ_j. Si prende L=2bL=2^b con bb bit per campione.

Esempio. Le soglie v={−1,0,1}v=\{-1,0,1\} dividono R\mathbb R in quattro regioni (−∞,−1)(-\infty,-1), (−1,0)(-1,0), (0,1)(0,1), (1,+∞)(1,+\infty); con i livelli {−1,5,−0,5,0,5,1,5}\{-1{,}5,-0{,}5,0{,}5,1{,}5\} il campione 0,30{,}3 diventa 0,50{,}5 e il campione −4-4 diventa −1,5-1{,}5. Si lavora con L=4L=4, quindi b=2b=2 bit.

Definizione (quantizzatore uniforme e mid-riser). Il quantizzatore uniforme (PCM, pulse code modulation) ha tutte le regioni interne di ampiezza uguale Δ\Delta (il passo di quantizzazione). Si sceglie il range dinamico [−vsat,vsat][-v_{sat},v_{sat}] (vsatv_{sat} è la tensione di saturazione) e si divide in LL passi: Δ=2vsatL=2vsat2b,vsat=2b−1Δ.\boxed{\Delta=\frac{2v_{sat}}{L}=\frac{2v_{sat}}{2^b}},\qquad v_{sat}=2^{b-1}\Delta. Nel tipo mid-riser ("la scala sale in zero") le soglie sono i multipli di Δ\Delta (che sono i multipli pari di Δ2\frac\Delta2) e i livelli sono i punti centrali delle regioni, cioè i multipli dispari di Δ2\frac\Delta2: Qj=±Δ2, ±3Δ2, …, ±(L−1)Δ2,soglie 0,±Δ,±2Δ,…,±(L2−1)Δ.Q_j=\pm\frac\Delta2,\ \pm\frac{3\Delta}2,\ \dots,\ \pm\frac{(L-1)\Delta}2,\qquad\text{soglie }0,\pm\Delta,\pm2\Delta,\dots,\pm\left(\tfrac L2-1\right)\Delta. Nel mid-tread invece il valore 00 è un livello e i livelli sono 0,±Δ,±2Δ,…0,\pm\Delta,\pm2\Delta,\dots. Negli esercizi si usa il mid-riser.

Le due regioni esterne (sopra l'ultima soglia e sotto la prima) si estendono all'infinito: lì il quantizzatore satura, cioè restituisce sempre l'ultimo livello ±(L−1)Δ2=±(vsat−Δ2)\pm\frac{(L-1)\Delta}2=\pm\left(v_{sat}-\frac\Delta2\right).

Esempio. L=8L=8 (b=3b=3) e vsat=4v_{sat}=4 V: Δ=2⋅48=1\Delta=\frac{2\cdot4}{8}=1 V; livelli ±0,5, ±1,5, ±2,5, ±3,5\pm0{,}5,\ \pm1{,}5,\ \pm2{,}5,\ \pm3{,}5 V; soglie −3,−2,−1,0,1,2,3-3,-2,-1,0,1,2,3 V. L'ingresso 1,21{,}2 V cade tra le soglie 11 e 22 e diventa 1,51{,}5 V (errore +0,3+0{,}3 V); l'ingresso −5-5 V è oltre la soglia −3-3 V, quindi satura nel livello −3,5-3{,}5 V (errore +1,5+1{,}5 V). Non si trova mai il livello 00.

Grafico interattivo: Caratteristica del quantizzatore uniforme mid-riser con L = 8 livelli e v_sat = 4 V (Δ = 1 V): 8 gradini larghi 1 V con livelli ±0,5, ±1,5, ±2,5, ±3,5 V; oltre ±3 V l'uscita non cresce più (saturazione). La retta a_q = a sarebbe il caso ideale

2. L'errore di quantizzazione

Definizione (errore e rumore di quantizzazione). eq(nTs)=aq(nTs)−a(nTs)e_q(nT_s)=a_q(nT_s)-a(nT_s), quindi aq=a+eqa_q=a+e_q: all'uscita c'è il segnale più un "rumore" additivo, come se l'errore fosse introdotto dal canale.

Come funzione di aa, l'errore ha l'andamento a dente di sega: nella zona granulare (∣a∣≤vsat\lvert a\rvert\le v_{sat}) cade sempre in [−Δ2,Δ2]\left[-\frac\Delta2,\frac\Delta2\right], perché il livello è il punto di mezzo della regione; nella zona di saturazione cresce linearmente con la distanza da vsatv_{sat} e non ha limite.

Grafico interattivo: Errore e_q = a_q − a del quantizzatore mid-riser con Δ = 1 V e v_sat = 4 V: dente di sega di ampiezza ±0,5 V (errore granulare) per |a| < 4 V, poi una retta che cresce senza limite (errore di saturazione)

Per misurare quanto è grave si usa la potenza statistica dell'errore, calcolata con la densità pa(u)p_a(u) del campione. Si scompone l'asse reale nelle tre zone: Meq=E[eq2]=∫−∞−vsat(Q1−u)2pa(u) du⏟saturazione (a sinistra)+∫−vsatvsat(Q(u)−u)2pa(u) du⏟granulare+∫vsat+∞(QL−u)2pa(u) du⏟saturazione (a destra).M_{e_q}=E\left[e_q^2\right]=\underbrace{\int_{-\infty}^{-v_{sat}}\left(Q_1-u\right)^2p_a(u)\,du}_{\text{saturazione (a sinistra)}}+\underbrace{\int_{-v_{sat}}^{v_{sat}}\left(Q(u)-u\right)^2p_a(u)\,du}_{\text{granulare}}+\underbrace{\int_{v_{sat}}^{+\infty}\left(Q_L-u\right)^2p_a(u)\,du}_{\text{saturazione (a destra)}}. È un conto pesante: si semplifica con due ipotesi.

(A) La probabilità di saturazione è piccola. La probabilità di saturazione è Psat=P[∣a∣>vsat]=∫∣u∣>vsatpa(u) du.P_{sat}=P\left[\lvert a\rvert>v_{sat}\right]=\int_{\lvert u\rvert>v_{sat}}p_a(u)\,du. Se è piccola l'errore di saturazione pesa poco e lo si trascura. Alcuni casi (per il calcolo si usa la funzione QQ della gaussiana, Q(y)=12π∫y∞e−x2/2dxQ(y)=\frac1{\sqrt{2\pi}}\int_y^\infty e^{-x^2/2}dx, Distribuzione gaussiana (normale)N(μ, σ²) ha densità e^(−(x−μ)²/(2σ²)) / √(2πσ²), a campana centrata in μ con larghezza σ; media μ, varianza σ²; si standardizza con Z = (X − μ)/σ ~ N(0, 1) e si calcola P(X ≤ x) = Φ((x − μ)/σ), con Φ(−z) = 1 − Φ(z); aX + b è ancora gaussiana, N(aμ + b, a²σ²).Distribuzione gaussiana (normale) →, approfondita in Probabilità d'errore e funzione QPer due segnali di energie $E_1,E_2$ con coefficiente di correlazione $\rho=\frac{\langle s_1,s_2\rangle}{\sqrt{E_1E_2}}$ la distanza è $d_{12}=\sqrt{E_1+E_2-2\rho\sqrt{E_1E_2}}$ e, con rumore AWGN, simboli equiprobabili e criterio MD, $P[E]=Q\left(\frac{d_{12}}{2\sigma_I}\right)=Q\left(\sqrt{\frac{E_s(1-\rho)}{N_0}}\right)$ con $\sigma_I^2=\frac{N_0}2$ e $Q$ la coda della gaussiana. Il caso antipodale ($\rho=-1$) dà $Q\left(\sqrt{\frac{2E_s}{N_0}}\right)$, l'ortogonale ($\rho=0$) $Q\left(\sqrt{\frac{E_s}{N_0}}\right)$: 3 dB peggio. Con $M>2$ segnali si usano limiti: $\frac{N^*}M Q\left(\frac{d_{min}}{2\sigma_I}\right)\le P[E]\le(M-1)Q\left(\frac{d_{min}}{2\sigma_I}\right)$ (union bound); la probabilità dipende solo da $\frac{E_s}{N_0}$, cioè dall'SNR.Probabilità d'errore e funzione Q →):

densità del segnale PsatP_{sat}
gaussiana a media nulla, varianza σ2\sigma^2 2Q(vsatσ)2Q\left(\frac{v_{sat}}\sigma\right)
uniforme in [−A,A][-A,A] 00 se vsat≥Av_{sat}\ge A
laplaciana di parametro bLb_L, p(u)=12bLe−∣u∣/bLp(u)=\frac1{2b_L}e^{-\lvert u\rvert/b_L} e−vsat/bLe^{-v_{sat}/b_L}
esponenziale λe−λu\lambda e^{-\lambda u} (u≥0u\ge0, range [0,vsat][0,v_{sat}]) e−λvsate^{-\lambda v_{sat}}

Per la gaussiana il fattore 22 conta le due code, a destra e a sinistra.

Se il segnale è certamente limitato, ∣a∣≤A\lvert a\rvert\le A, si sceglie vsat=Av_{sat}=A e Psat=0P_{sat}=0 esattamente; altrimenti in pratica si richiede PsatP_{sat} molto piccola (un valore tipico è Psat≤10−5P_{sat}\le10^{-5}) e si sceglie vsatv_{sat} di conseguenza.

(B) LL è grande (il passo Δ\Delta è piccolo rispetto a come varia la densità). Dentro ogni regione pap_a è quasi costante, quindi l'errore granulare, che dentro una regione è uguale a "livello meno campione", è uniforme in [−Δ2,Δ2]\left[-\frac\Delta2,\frac\Delta2\right]: pe(x)=1Δrect⁡(xΔ)p_e(x)=\frac1\Delta\operatorname{rect}\left(\frac x\Delta\right). Ne seguono: E[eq]=0,Meq=1Δ∫−Δ/2Δ/2x2dx=1Δ⋅23(Δ2)3=Δ212.E[e_q]=0,\qquad M_{e_q}=\frac1\Delta\int_{-\Delta/2}^{\Delta/2}x^2dx=\frac1\Delta\cdot\frac23\left(\frac\Delta2\right)^3=\boxed{\frac{\Delta^2}{12}}. (l'integrale di x2x^2 è x33\frac{x^3}3, calcolato tra −Δ2-\frac\Delta2 e Δ2\frac\Delta2 dà 13⋅2⋅Δ38=Δ312\frac13\cdot2\cdot\frac{\Delta^3}8=\frac{\Delta^3}{12}, diviso Δ\Delta).

Si assume inoltre che l'errore sia incorrelato con il segnale, E[eq a]=0E[e_q\,a]=0, e che campioni diversi dell'errore siano incorrelati, E[eq(nTs)eq(mTs)]=0E[e_q(nT_s)e_q(mT_s)]=0 per n≠mn\neq m: il rumore di quantizzazione è quindi bianco (spettro piatto). Sono ipotesi, non teoremi: funzionano bene per LL grande.

Esempio. Con Δ=1\Delta=1 V (esempio sopra) Meq=112=0,0833M_{e_q}=\frac1{12}=0{,}0833 V2^2, errore efficace 0,0833=0,289\sqrt{0{,}0833}=0{,}289 V, che è Δ12\frac{\Delta}{\sqrt{12}} e non Δ2\frac\Delta2 (l'errore massimo): la media del quadrato è minore del quadrato del massimo.

3. Il rapporto segnale-rumore di quantizzazione

Definizione (SNR di quantizzazione). Λq=E[a(nTs)2]E[eq(nTs)2]=MaMeq,[Λq]dB=10log⁡10Λq.\Lambda_q=\frac{E\left[a(nT_s)^2\right]}{E\left[e_q(nT_s)^2\right]}=\frac{M_a}{M_{e_q}},\qquad[\Lambda_q]_{dB}=10\log_{10}\Lambda_q. Con segnale a media nulla Ma=σa2M_a=\sigma_a^2 (varianza); in generale Ma=σa2+ma2M_a=\sigma_a^2+m_a^2. Più è alto, più il segnale quantizzato è fedele.

Esempio. Segnale con σa2=2\sigma_a^2=2 V2^2 e rumore Meq=0,002M_{e_q}=0{,}002 V2^2: Λq=1000\Lambda_q=1000, cioè 3030 dB.

Con (A) e (B) si sostituisce Meq=Δ212M_{e_q}=\frac{\Delta^2}{12} con Δ=2vsat2b\Delta=\frac{2v_{sat}}{2^b}, quindi Δ2=4vsat24b\Delta^2=\frac{4v_{sat}^2}{4^b}: Λq=σa2Δ2/12=12 σa2 4b4 vsat2=3 σa2vsat2 4b.\Lambda_q=\frac{\sigma_a^2}{\Delta^2/12}=\frac{12\,\sigma_a^2\,4^b}{4\,v_{sat}^2}=3\,\frac{\sigma_a^2}{v_{sat}^2}\,4^b. Prendendo 10log⁡1010\log_{10} (con 10log⁡103=4,7710\log_{10}3=4{,}77 e 10log⁡104=6,0210\log_{10}4=6{,}02): [Λq]dB=6,02 b+4,77−20log⁡10vsatσa\boxed{[\Lambda_q]_{dB}=6{,}02\,b+4{,}77-20\log_{10}\frac{v_{sat}}{\sigma_a}} Il rapporto vsatσa\frac{v_{sat}}{\sigma_a} si chiama load factor (fattore di carico del quantizzatore). Conseguenze:

  • ogni bit in più (il doppio dei livelli, Δ\Delta dimezzato, potenza dell'errore divisa per 4) dà +6,02+6{,}02 dB;
  • allargare il range peggiora l'SNR: con vsat=kσav_{sat}=k\sigma_a si perdono 20log⁡10k20\log_{10}k dB (9,59{,}5 dB per k=3k=3, 1212 dB per k=4k=4, 1414 dB per k=5k=5) perché a bb fisso il passo cresce.

Grafico interattivo: SNR di quantizzazione in dB in funzione dei bit b per un segnale gaussiano con v_sat = 4σ (P_sat = 6,3·10⁻⁵): 6,02·b + 4,77 − 12,04, una retta di pendenza 6 dB per bit

Esempio (tabella, segnale gaussiano, vsat=kσv_{sat}=k\sigma).

k=vsatσk=\frac{v_{sat}}\sigma Psat=2Q(k)P_{sat}=2Q(k) b=4b=4 b=8b=8 b=12b=12 b=16b=16
33 2,7⋅10−32{,}7\cdot10^{-3} 19,319{,}3 dB 43,443{,}4 67,567{,}5 91,591{,}5
3,723{,}72 2⋅10−42\cdot10^{-4} 17,417{,}4 41,541{,}5 65,665{,}6 89,789{,}7
44 6,3⋅10−56{,}3\cdot10^{-5} 16,816{,}8 40,940{,}9 65,065{,}0 89,089{,}0
55 5,7⋅10−75{,}7\cdot10^{-7} 14,914{,}9 39,039{,}0 63,063{,}0 87,187{,}1

Per esempio b=8b=8, k=4k=4: 6,02⋅8+4,77−12,04=40,896{,}02\cdot8+4{,}77-12{,}04=40{,}89 dB.

Verifica numerica. Per un gaussiano con σ=1\sigma=1, vsat=4v_{sat}=4, b=3b=3 l'integrazione numerica dell'errore (granulare più saturazione) dà Meq=0,0834M_{e_q}=0{,}0834 contro Δ212=0,0833\frac{\Delta^2}{12}=0{,}0833 (Δ=1\Delta=1): Λq=10,79\Lambda_q=10{,}79 dB, uguale alla formula; con b=8b=8 si trova 40,5540{,}55 dB contro 40,8940{,}89 dB della formula: già lì la saturazione toglie 0,30{,}3 dB.

4. Il compromesso su vsatv_{sat} e LL e la saturazione non trascurabile

  • Per ridurre PsatP_{sat} serve vsatv_{sat} grande (gaussiano: 3σ→2,7⋅10−33\sigma\to2{,}7\cdot10^{-3}, 4σ→6,3⋅10−54\sigma\to6{,}3\cdot10^{-5}).
  • Ma a bb fissato Δ=2vsat2b\Delta=\frac{2v_{sat}}{2^b} cresce con vsatv_{sat} e con esso l'errore granulare Δ212\frac{\Delta^2}{12}.
  • Se bb è molto grande, Δ212\frac{\Delta^2}{12} diventa minuscolo mentre l'errore di saturazione non dipende da bb (dipende da vsatv_{sat} e da pap_a): a un certo punto domina e l'SNR smette di crescere: la regola dei 66 dB per bit cade.

Quando la saturazione conta, si pesano le due zone, con PsatP_{sat} come probabilità di essere nella zona di saturazione: Meq≃(1−Psat)Δ212+Psat Msat,Msat=E[(∣a∣−vsat+Δ2)2 ∣ ∣a∣>vsat],M_{e_q}\simeq(1-P_{sat})\frac{\Delta^2}{12}+P_{sat}\,M_{sat},\qquad M_{sat}=E\left[\left(\lvert a\rvert-v_{sat}+\tfrac\Delta2\right)^2\,\Big|\,\lvert a\rvert>v_{sat}\right], dove l'ultimo livello è a distanza Δ2\frac\Delta2 dal bordo. Per un segnale gaussiano con vsat=kσv_{sat}=k\sigma e Δ\Delta piccolo il contributo di saturazione è PsatMsat=2σ2[(1+k2)Q(k)−kφ(k)]P_{sat}M_{sat}=2\sigma^2\left[(1+k^2)Q(k)-k\varphi(k)\right], con φ(k)=e−k2/22π\varphi(k)=\frac{e^{-k^2/2}}{\sqrt{2\pi}} (si ottiene integrando per parti ∫k∞(x−k)2φ(x)dx\int_k^\infty(x-k)^2\varphi(x)dx).

Esempio. Gaussiano a media nulla con σ2=0,01\sigma^2=0{,}01 V2^2 e vsat=0,4v_{sat}=0{,}4 V (=4σ=4\sigma, Psat=6,3⋅10−5P_{sat}=6{,}3\cdot10^{-5}); integrazione numerica:

LL Δ\Delta Δ212\frac{\Delta^2}{12} PsatMsatP_{sat}M_{sat} SNR solo granulare SNR totale
88 0,10{,}1 V 8,3⋅10−48{,}3\cdot10^{-4} 3,6⋅10−73{,}6\cdot10^{-7} 10,7910{,}79 dB 10,7910{,}79 dB
800800 0,0010{,}001 V 8,3⋅10−88{,}3\cdot10^{-8} 6,3⋅10−86{,}3\cdot10^{-8} 50,7950{,}79 dB 48,3448{,}34 dB

Con L=8L=8 la saturazione non conta; con L=800L=800 è quasi alla pari con l'errore granulare e toglie 2,52{,}5 dB. Per σ=2\sigma=2 V e vsat=8v_{sat}=8 V (4σ4\sigma) il tetto di SNR dovuto alla sola saturazione è 10log⁡10σ22σ2[(1+16)Q(4)−4φ(4)]=52,110\log_{10}\frac{\sigma^2}{2\sigma^2[(1+16)Q(4)-4\varphi(4)]}=52{,}1 dB: nessun numero di bit lo supera (Esercizio - quantizzazione di segnali uniformi e gaussiani).

5. Progetto di un quantizzatore

I dati tipici: la densità del segnale con il suo parametro, una probabilità di saturazione massima PsatP_{sat} e/o un SNR minimo.

  1. vsatv_{sat} dalla probabilità di saturazione (si inverte la tabella del §2):
    • gaussiano: 2Q(vsatσ)=Psat⇒vsat=σ Q−1(Psat2)2Q\left(\frac{v_{sat}}\sigma\right)=P_{sat}\Rightarrow v_{sat}=\sigma\,Q^{-1}\left(\frac{P_{sat}}2\right);
    • laplaciano: vsat=bLln⁡1Psatv_{sat}=b_L\ln\frac1{P_{sat}};
    • esponenziale (solo valori positivi): range [0,vsat][0,v_{sat}], vsat=1λln⁡1Psatv_{sat}=\frac1\lambda\ln\frac1{P_{sat}} e passo Δ=vsatL\Delta=\frac{v_{sat}}L (non ha senso sprecare metà dei livelli sui valori negativi che non esistono);
    • segnale limitato ∣a∣≤A\lvert a\rvert\le A: vsat=Av_{sat}=A e Psat=0P_{sat}=0.
  2. Bit dall'SNR richiesto: si inverte la formula, b≥ΛdB−4,77+20log⁡10(vsat/σa)6,02b\ge\frac{\Lambda_{dB}-4{,}77+20\log_{10}(v_{sat}/\sigma_a)}{6{,}02} e si arrotonda per eccesso all'intero (con meno bit l'SNR sarebbe sotto la soglia).
  3. Risultati: L=2bL=2^b, Δ=2vsatL\Delta=\frac{2v_{sat}}{L}, SNR effettivo (con bb intero è un po' maggiore del richiesto), bit-rate FsbF_sb.

Esempio (gaussiano). σ=0,5\sigma=0{,}5 V, Psat≤10−4P_{sat}\le10^{-4}, SNR ≥40\ge40 dB. Passo 1: Q−1(5⋅10−5)=3,891Q^{-1}(5\cdot10^{-5})=3{,}891, vsat=0,5⋅3,891=1,945v_{sat}=0{,}5\cdot3{,}891=1{,}945 V. Passo 2: 20log⁡101,9450,5=11,8020\log_{10}\frac{1{,}945}{0{,}5}=11{,}80 dB, b≥40−4,77+11,806,02=7,81⇒b=8b\ge\frac{40-4{,}77+11{,}80}{6{,}02}=7{,}81\Rightarrow b=8. Passo 3: L=256L=256, Δ=2⋅1,945256=0,0152\Delta=\frac{2\cdot1{,}945}{256}=0{,}0152 V, Λq=6,02⋅8+4,77−11,80=41,13\Lambda_q=6{,}02\cdot8+4{,}77-11{,}80=41{,}13 dB (calcolo esatto: 41,1441{,}14 dB). Con b=7b=7 sarebbe 35,135{,}1 dB, insufficiente.

Esempio (laplaciano). bL=1b_L=1 V (varianza 2bL2=22b_L^2=2 V2^2), Psat=2⋅10−4P_{sat}=2\cdot10^{-4}, SNR ≥60\ge60 dB. vsat=ln⁡5000=8,52v_{sat}=\ln5000=8{,}52 V; 20log⁡108,521,414=15,620\log_{10}\frac{8{,}52}{1{,}414}=15{,}6 dB; b≥60−4,77+15,66,02=11,77⇒b=12b\ge\frac{60-4{,}77+15{,}6}{6{,}02}=11{,}77\Rightarrow b=12, L=4096L=4096, Δ=2⋅8,524096=4,16\Delta=\frac{2\cdot8{,}52}{4096}=4{,}16 mV, Λq=61,4\Lambda_q=61{,}4 dB.

Segnali a media non nulla. Se E[a]=c≠0E[a]=c\neq0 un quantizzatore simmetrico spreca il range. Si trasmette a~(t)=a(t)−c\tilde a(t)=a(t)-c (si sottrae la media, e si riaggiunge al ricevitore): la potenza da coprire è Ma~=σa2≪MaM_{\tilde a}=\sigma_a^2\ll M_a. Nell'SNR conta la potenza del segnale che si vuole trasmettere: Ma=σa2+ma2M_a=\sigma_a^2+m_a^2 se si quantizza aa senza centrarlo, σa2\sigma_a^2 se si quantizza a~\tilde a. Per l'esponenziale Exp⁡(λ)\operatorname{Exp}(\lambda) la potenza statistica è Ma=2λ2M_a=\frac2{\lambda^2} (media 1λ\frac1\lambda, varianza 1λ2\frac1{\lambda^2}).

6. Quantizzatori non uniformi

Se la densità non è uniforme (voce: molti campioni vicino a zero e pochi grandi) conviene avere gradini piccoli dove i campioni cadono spesso e grandi dove sono rari. Il metodo classico è il compander (compressore + espansore): un blocco non lineare comprime la scala, un quantizzatore uniforme lavora sul segnale compresso e un blocco inverso espande al ricevitore. Equivale a una scala di livelli concentrati attorno allo zero. Si può anche scegliere soglie e livelli ottimi per la densità data (si veda l'approfondimento in Esercizio - progetto di un quantizzatore non uniforme).

Errori comuni

  • Δ=vsatL\Delta=\frac{v_{sat}}L (manca il 2 se il range è simmetrico [−vsat,vsat][-v_{sat},v_{sat}]; con [0,vsat][0,v_{sat}] è giusto).
  • Mettere il livello 00 nel mid-riser: i livelli sono ±Δ2,±3Δ2,…\pm\frac\Delta2,\pm\frac{3\Delta}2,\dots.
  • PsatP_{sat} con una coda sola per un segnale simmetrico: sono due code, 2Q(vsatσ)2Q\left(\frac{v_{sat}}\sigma\right), e in inversione Q−1(Psat2)Q^{-1}\left(\frac{P_{sat}}2\right).
  • Dimenticare di arrotondare bb per eccesso, e di dare poi l'SNR effettivo.
  • Usare la varianza al posto della potenza statistica per segnali a media non nulla.
  • Credere che l'SNR cresca di 66 dB per bit sempre: vale finché la saturazione è trascurabile.

Versione ripasso

Quantizzatore uniforme mid-riser

  • Livelli: L=2bL=2^b con bb bit per campione. Range [−vsat,vsat][-v_{sat},v_{sat}] e passo Δ=2vsat2b,vsat=2b−1Δ.\boxed{\Delta=\frac{2v_{sat}}{2^b}},\qquad v_{sat}=2^{b-1}\Delta.
  • Soglie nei multipli di Δ\Delta (0,±Δ,±2Δ,…0,\pm\Delta,\pm2\Delta,\dots); livelli nei multipli dispari di Δ2\frac\Delta2: ±Δ2, ±3Δ2, …, ±(L−1)Δ2\pm\frac\Delta2,\ \pm\frac{3\Delta}2,\ \dots,\ \pm\frac{(L-1)\Delta}2. Il livello 00 non esiste.
  • Oltre le soglie estreme il quantizzatore satura: restituisce sempre ±(vsat−Δ2)\pm\left(v_{sat}-\frac\Delta2\right).
  • Esempio: L=8L=8 e vsat=4v_{sat}=4 V danno Δ=1\Delta=1 V, livelli ±0,5,±1,5,±2,5,±3,5\pm0{,}5,\pm1{,}5,\pm2{,}5,\pm3{,}5 V. L'ingresso 1,21{,}2 V diventa 1,51{,}5 V (errore +0,3+0{,}3 V); l'ingresso −5-5 V satura a −3,5-3{,}5 V (errore +1,5+1{,}5 V).

Errore di quantizzazione

SNR di quantizzazione Λq=MaMeq,[Λq]dB=10log⁡10Λq,Ma=σa2+ma2.\Lambda_q=\frac{M_a}{M_{e_q}},\qquad[\Lambda_q]_{dB}=10\log_{10}\Lambda_q,\qquad M_a=\sigma_a^2+m_a^2.

  • Esempio: σa2=2\sigma_a^2=2 V2^2 e Meq=0,002M_{e_q}=0{,}002 V2^2 danno Λq=1000\Lambda_q=1000, cioè 3030 dB.
  • Con Meq=Δ212M_{e_q}=\frac{\Delta^2}{12} e Δ2=4vsat24b\Delta^2=\frac{4v_{sat}^2}{4^b}: Λq=3 σa2vsat2 4b,[Λq]dB=6,02 b+4,77−20log⁡10vsatσa\Lambda_q=3\,\frac{\sigma_a^2}{v_{sat}^2}\,4^b,\qquad\boxed{[\Lambda_q]_{dB}=6{,}02\,b+4{,}77-20\log_{10}\frac{v_{sat}}{\sigma_a}} (10log⁡103=4,7710\log_{10}3=4{,}77, 10log⁡104=6,0210\log_{10}4=6{,}02). Il rapporto vsatσa\frac{v_{sat}}{\sigma_a} è il load factor.
  • Ogni bit in più dà +6,02+6{,}02 dB. Allargare il range costa 20log⁡10k20\log_{10}k dB se vsat=k σav_{sat}=k\,\sigma_a: 9,59{,}5 dB per k=3k=3, 1212 dB per k=4k=4.
  • Esempio: gaussiano con vsat=4σv_{sat}=4\sigma e b=8b=8: 6,02⋅8+4,77−12,04=40,896{,}02\cdot8+4{,}77-12{,}04=40{,}89 dB. Verifica numerica con σ=1\sigma=1, vsat=4v_{sat}=4, b=3b=3: Meq=0,0834M_{e_q}=0{,}0834 (integrazione), Λq=10,79\Lambda_q=10{,}79 dB come nella formula.

Saturazione non trascurabile

  • Per ridurre PsatP_{sat} serve vsatv_{sat} grande (3σ3\sigma: Psat=2,7⋅10−3P_{sat}=2{,}7\cdot10^{-3}; 4σ4\sigma: 6,3⋅10−56{,}3\cdot10^{-5}), ma a bb fisso Δ\Delta cresce con vsatv_{sat}.
  • L'errore di saturazione non dipende da bb: per bb grande domina e l'SNR smette di crescere. Con vsat=4σv_{sat}=4\sigma il tetto è circa 5252 dB. Meq≃(1−Psat)Δ212+Psat Msat,Msat=E[(∣a∣−vsat+Δ2)2 ∣ ∣a∣>vsat].M_{e_q}\simeq(1-P_{sat})\frac{\Delta^2}{12}+P_{sat}\,M_{sat},\qquad M_{sat}=E\left[\left(|a|-v_{sat}+\tfrac\Delta2\right)^2\,\Big|\,|a|>v_{sat}\right].
  • Esempio: σ2=0,01\sigma^2=0{,}01 V2^2, vsat=0,4v_{sat}=0{,}4 V. Con L=8L=8 la saturazione non conta (Λq=10,79\Lambda_q=10{,}79 dB); con L=800L=800 toglie 2,52{,}5 dB (50,7950{,}79 dB contro 48,3448{,}34 dB) (Esercizio - quantizzazione di segnali uniformi e gaussiani).

Progetto di un quantizzatore

  1. Da PsatP_{sat} si ricava vsatv_{sat}: gaussiano vsat=σ Q−1(Psat2)v_{sat}=\sigma\,Q^{-1}\left(\frac{P_{sat}}2\right); laplaciano vsat=bLln⁡1Psatv_{sat}=b_L\ln\frac1{P_{sat}}; segnale limitato ∣a∣≤A|a|\le A: vsat=Av_{sat}=A.
  2. Dall'SNR richiesto: b≥ΛdB−4,77+20log⁡10(vsat/σa)6,02b\ge\frac{\Lambda_{dB}-4{,}77+20\log_{10}(v_{sat}/\sigma_a)}{6{,}02}, con arrotondamento per eccesso.
  3. Si ottengono L=2bL=2^b, Δ=2vsatL\Delta=\frac{2v_{sat}}{L}, l'SNR effettivo (maggiore del richiesto) e il bit-rate FsbF_sb.
  • Esempio gaussiano: σ=0,5\sigma=0{,}5 V, Psat≤10−4P_{sat}\le10^{-4}, SNR ≥40\ge40 dB. Q−1(5⋅10−5)=3,891Q^{-1}(5\cdot10^{-5})=3{,}891, quindi vsat=1,945v_{sat}=1{,}945 V. b≥40−4,77+11,806,02=7,81b\ge\frac{40-4{,}77+11{,}80}{6{,}02}=7{,}81, quindi b=8b=8, L=256L=256, Δ=0,0152\Delta=0{,}0152 V, Λq≃41,1\Lambda_q\simeq41{,}1 dB. Con b=7b=7 si avrebbe 35,135{,}1 dB: insufficiente.
  • Esempio laplaciano: bL=1b_L=1 V, Psat=2⋅10−4P_{sat}=2\cdot10^{-4}, SNR ≥60\ge60 dB. vsat=ln⁡5000=8,52v_{sat}=\ln5000=8{,}52 V, b≥11,77b\ge11{,}77, quindi b=12b=12, L=4096L=4096, Δ=4,16\Delta=4{,}16 mV, Λq≃61,4\Lambda_q\simeq61{,}4 dB.

Casi particolari

  • Media non nulla cc: si quantizza a~=a−c\tilde a=a-c e si riaggiunge cc al ricevitore. Conta la potenza da coprire, σa2\sigma_a^2, non Ma=σa2+ma2M_a=\sigma_a^2+m_a^2 se si quantizza aa senza centrarlo.
  • Quantizzatori non uniformi (voce): compander, cioè compressore non lineare, quantizzatore uniforme, espansore inverso. Gradini piccoli dove i campioni sono frequenti (Esercizio - progetto di un quantizzatore non uniforme).

Errori tipici:

  • Δ=vsatL\Delta=\frac{v_{sat}}L: manca il 22 con range simmetrico [−vsat,vsat][-v_{sat},v_{sat}].
  • Mettere il livello 00 nel mid-riser.
  • Contare una sola coda di PsatP_{sat} per un segnale simmetrico: sono due, 2Q(vsatσ)2Q\left(\frac{v_{sat}}\sigma\right).
  • Arrotondare bb per difetto invece che per eccesso, e non dare poi l'SNR effettivo.
  • Usare la varianza al posto della potenza statistica per segnali a media non nulla.
  • Credere che l'SNR cresca di 66 dB per bit sempre: vale solo se la saturazione è trascurabile.

Per il campionamento a monte: Campionamento e conversione analogico-digitalePer trasmettere un segnale analogico $a(t)$ con un sistema digitale lo si trasforma in bit: filtro anti-aliasing, campionatore ($T_s=\frac1{F_s}$, $F_s\ge2B$), quantizzatore su $L=2^b$ livelli, mappa livello $\to$ $b$ bit, serializzatore. Il bit-rate nominale è $R_b=bF_s$. Campionare è reversibile (con un filtro interpolatore, in pratica un holder) se $F_s\ge2B$; quantizzare invece perde informazione in modo irreversibile. Al ricevitore si ripercorre la catena al contrario (D/A).Campionamento e conversione analogico-digitale →.

Esercizi su questo argomento

Lezioni in cui compare

Teoria collegata