Sezione 4.1: Teorema del campionamento Su  Capitolo 4: Campionamento, quantizzazione ed elaborazione numerica Sezione 4.3: Trasformata di Fourier di sequenze 

4.2  Quantizzazione e codifica binaria

Affrontiamo ora questo aspetto strettamente collegato a quello del campionamento, e dovuto al fatto che i valori dei campioni x(nTc) sono grandezze a precisione infinita: per renderli idonei ad essere memorizzati o trasmessi in forma di sequenze numeriche, devono essere prima quantizzati dal dispositivo Q(), e poi espressi (o codificati) mediante un numero finito di M bit.
figure f4.9d.png
Prima di effettuare il processo di restituzione[85] [85] Il dispositivo che implementa la restituzione è indicato come Digital to Analog Converter o dac. analogica, occorre quindi ripristinare il valore relativo ad ogni singolo campione (a partire dalla sua codifica binaria) per mezzo del generatore di livelli[86] [86] Anche in questo caso non entriamo nei dettagli di tale dispositivo, dicendo solo che una possibile soluzione prevede un sommatore realizzato mediante un amplificatore operazionale, scegliendo resistenze di pesatura con valori legati alle potenze di due, vedi ad es. http://www.elemania.altervista.org/adda/architetture/arc1.html mostrato in fig. 4.12↓, e quindi generare[87] [87] A tale scopo il DAC necessita di un segnale di temporizzazione a velocità fc, sincronizzato con quello usato per campionare. Questo segnale può essere trasmesso separatamente, o essere ri-generato localmente a partire dalla stima della velocità alla quale sono ricevuti i valori x(nTc). un nuovo segnale xq(t) con cui alimentare il filtro di restituzione.
Prima di proseguire facciamo notare due aspetti, entrambi legati al fatto che xq  ≠ x. Il primo, evidenziato fin dal § 1.2↑, rimarca che all’aumentare di M, aumenta la corrispondente velocità binaria fb  = fcM bit/sec, mentre si riduce allo stesso tempo l’entità della distorsione prodotta dal quantizzatore: scrivendo infatti xq  = x + εq viene reso evidente come ai campioni originari sia ora sovrapposto un segnale di errore. Il secondo è che tale errore può contenere componenti frequenziali assenti dal segnale di origine, a causa della natura non lineare (§ 7.3↓) del processo di quantizzazione.
Campionamento, quantizzazione e restituzione nel mondo reale
Figura 4.12 Campionamento, quantizzazione e restituzione nel mondo reale

4.2.1  Quantizzazione uniforme

soglie di decisione
Approfondiamo ora l’analisi del dispositivo di quantizzazione[88]  [88] Anche qui, non entriamo nei dettagli realizzativi. Per una panoramica delle soluzioni possibili, vedi ad es. http://sms.unipv.it/misure/ME/Conversione_A-D_Slides.pdf, che suddivide l’intervallo dei valori che può assumere l’ingresso x, indicato come dinamica Δx, in un numero L finito di valori (o livelli), individuando così L  − 1 intervalli, che possono essere tutti di uguale ampiezza Δq = (Δx)/(L − 1) come in figura (quantizzazione uniforme), oppure di ampiezza differente (vedi § 4.2.2↓).
Per ogni coppia di livelli è quindi individuata una soglia di decisione posta ad un valore intermedio tra quello dei livelli contigui, in modo da associare a tutti i valori di ingresso x compresi tra due soglie (ovvero che ricadono nel k  − esimo intervallo Ik), il valore xkq = Q(x) corrispondente al valore del livello che si trova nel mezzo delle soglie,
Quantizzazione di v.a. uniforme
Figura 4.14 Quantizzazione di v.a. uniforme
realizzando così una corrispondenza tra valori di ingresso x e di uscita xq = Q(x) a scaletta[89] [89] In fig. 4.14↑ sono presenti un numero L di livelli dispari, a cui corrisponde ad una regola di quantizzazione basata sull’arrotondamento di x,   in modo che l’errore sia compreso tra ±(Δq)/(2), e la legge Q(x) viene detta mid-tread. Se al contrario L è pari, in prossimità dell’origine la legge Q(x) (detta ora mid-rise) si muove in verticale anziché in orizzontale, non esite un livello zero per l’uscita, e Q(x) si basa su di un troncamento; vedi ad es. http://www.tlc.polito.it/~perotti/it/ce/4-Campionamento.pdf, come mostrato a lato, dove è anche rappresentato il risultato della quantizzazione di una variabile aleatoria[90]  [90] Nel prosieguo di questa sezione sono usati i concetti definiti al capitolo 5↓, a cui si rimanda per le definizioni mancanti. continua con densità di probabilità uniforme, che si trasforma in una v.a. discreta.
Per proseguire con l’analisi della distorsione, poniamoci nella situazione fino ad ora descritta, ovvero di adottare un numero di livelli[91] [91] Con M bit si possono descrivere al più L =  2M diverse configurazioni binarie, e dunque per individuare uno tra L possibili oggetti occorrono M = log2L bit, in cui la notazione a indica il primo intero di valore  ≥ a. Scegliendo L come una potenza di due, si ottiene il risultato esatto: ad esempio, scegliendo L = 64, si ottiene M  = 6. L  = 2M pari ed equispaziati, a cui aggiungiamo l’ipotesi di stare quantizzando un processo stazionario ergodico con d.d.p. uniforme a media nulla, ovvero pari a pX(x) = (1)/(Δx)rectΔx(x).

4.2.1.1  SNR di quantizzazione

La distorsione in cui si incorre a seguito del processo di quantizzazione è tanto minore quanto maggiore risulta il valore del rapporto segnale-rumore SNRq  = PxPϵ, ovvero il rapporto tra la potenza del segnale da quantizzare Px, e quella Pε dell’errore εq = xq  − x.
La fig. 4.15↑, mostra un possibile andamento temporale per x(t), assieme alla sua versione quantizzata xq(t), ed al corrispondente errore εq(t), per il quale si fa l’ulteriore ipotesi che anch’esso sia un processo ergodico a media nulla, descritto da una d.d.p. uniforme p(ε) = (1)/(Δq)rectΔq(ε) in cui come anticipato Δq = (Δx)/(L − 1), e che sia anche statisticamente indipendente[92] [92] Questa ipotesi, come anche quella delle v.a. uniformi, sono manifestamente non vere in generale, ma permettono di giungere ad un risultato abbastanza semplice, e che può essere molto utile nel dimensionamento dei progetti. da x(t).
quantizzazione per segnali a distribuzione di ampiezza uniforme
Figura 4.15 Processo di quantizzazione per segnali a distribuzione di ampiezza uniforme
In queste ipotesi, la potenza Px è pari alla varianza della v.a. x, e risulta (vedi § 5.2.3↓)[93] [93] Assumendo che il processo sia ergodico, la potenza (media temporale) eguaglia la corrispondente media di insieme, ovvero il momento di secondo ordine m(2)x, che a sua volta è pari alla varianza σ2x , essendo mx = 0.
Px  = σ2x  = (Δ2x)/(12)
mentre per quanto riguarda la potenza del segnale di errore εq(t) il risultato è lo stesso, ma espresso nei termini di Δq, ovvero
Pϵ  = σ2ϵ  = (Δ2q)/(12) = (1)/(12)(Δx)/(L − 1)2
Siamo dunque in grado di valutare l’SNR di quantizzazione come
SNRq = (Px)/(Pϵ) = (Δ2x)/(12)12(L  − 1)/(Δx)2  = (L − 1)2L2
in cui evidentemente l’ultima approssimazione ha validità nel caso in cui L≫1. Il risultato mostra che l’SNRq cresce in modo quadratico con l’aumentare dei livelli, ovvero se L raddoppia, SNRq quadruplica. Ricorrendo alla notazione in decibel[94]  [94] Una discussione relativa alla misura delle grandezze in decibel, è fornita al § 7.1↓. Qui ci limitiamo ad usare i dB come misura relativa di un rapporto, ossia
SNRq(dB) = 10log10(  Px)/(Pϵ) = 10log10  Px − 10log10  Pϵ = Px[dBV2]  −  Pϵ[dBV2]
in cui le grandezze espresse in dBV2 rappresentano potenze di segnale di tensione, in unità logaritmiche.
per l’SNR, otteniamo il risultato SNRq(L)|dB = 10log10L2  = 20log10L e, ricordando che L  = 2M, si ottiene
(8.25) SNRq(M)|dB = M⋅20log102≃6⋅M dB
dato che log102≃0.3. Pertanto è possibile concludere che la qualità del quantizzatore uniforme, espressa da SNRq[dB], aumenta linearmente con il numero M di bit/campione, con un incremento di 6 dB per ogni bit utilizzato in più.
Consideriamo ora cosa accade se il segnale in ingresso x ha una dinamica minore di quanto previsto: in tal caso σ2x si riduce, mentre σ2ϵ  = (1)/(12)(Δx)/(L − 1)2 non cambia, e dunque SNRq peggiora, come se avessimo ridotto i livelli. Ma la tecnica illustrata di seguito, è capace di mantenere un SNRq elevato anche con bassi livelli di segnale.

4.2.2  Quantizzazione logaritmica e codifica PCM

La tecnica di cui al titolo nasce sia come risposta al problema appena evidenziato, ossia il peggioramento di SNRq in presenza di bassi segnali, sia in considerazione del fatto che in realtà il processo x non ha distribuzione di ampiezza uniforme come fino ad ora ipotizzato, rendendo il risultato (8.25↑) di ridotta utilità pratica. Ma svolgiamo prima una breve digressione su come, conoscendo con esattezza la pX(x) del processo da quantizzare, si possa giungere al miglior risultato.
Minimizzazione dell’errore di quantizzazione
Si può mostrare[95] [95] Vedi ad es. http://en.wikipedia.org/wiki/Quantization_(signal_processing) che per una pX(x) generica, il quantizzatore ottimo (che rende massimo SNRq) non suddivide la dinamica Δx in L − 1 intervalli di uguale estensione Δq = (Δx)/(L − 1), ma l’estensione Δq(k) varia ed è diversa per ogni intervallo Ik con k = 1, 2, ⋯L, adottando in particolare intervalli di estensione ridotta nelle regioni in cui i valori x sono più probabili, ovvero più frequenti, e dunque per il quali la pX(x) è più grande. In tal modo ai valori x più probabili corrisponde un errore di quantizzazione σ2q(k) = Δ2q(k)12 ridotto; viceversa, le regioni corrispondenti a valori di x più rari adottano intervalli di estensione Δq(k) più grande, e conseguentemente un σ2q(k) maggiore. Il risultato è quello variare il contributo alla Pϵ complessiva, riducendolo per i valori più frequenti, ed aumentandolo per quelli meno: infatti, Pϵ può essere valutata anche
figure f5.77.png
come un valore atteso, pesando i contributi σ2q(k) con le rispettive probabilità:
Pϵ  = Ek{σ2q(k)} = Lk  = 1pkσ2q(k)
in cui pk  = IkpX(x)dx è la probabilità che x ∈ Ik. Il modo ottimo di disporre le soglie (θk  − 1, θk) che delimitano Ik in modo da rendere minima Pϵ, è noto come algoritmo di Lloyd-Max[96] [96]  Il metodo è iterativo, ed inizia suddividendo l’intervallo Δx in modo uniforme. Per ogni iterazione:
  • si determinano i valori quantizzati xk (detti centroidi) come xk  = E{x ∈ Ik} = IkxpX(x ⁄ k)dx  = (IkxpX(x)dx)/(pk), in cui pk  = IkpX(x)dx. In tal modo, i valori xk si spostano (internamente a Ik) verso la regione in cui pX(x) ha un valore più elevato, ovvero dove la v.a. si addensa;
  • si ri-calcolano i confini di decisione θk come θk = (xk  + xk + 1)/(2), seguendo lo spostamento degli xk.
Le iterazioni si arrestano quando non si riscontrano cambiamenti apprezzabili.
.
Nella quantizzazione del segnale vocale, anche se è arbitrario identificare con esattezza una pX(x), si verifica strumentalmente che quest’ultima è addensata nelle regioni con valori più piccoli. Per questo motivo, la legge di quantizzazione che si è adottata per ottenere gli 8 bit a campione utilizzati nel pcm[97] [97] La sigla pcm sta per Pulse Code Modulation, e trae origine dalla tecnica di quantizzazione di un segnale vocale di qualità telefonica (§ 9.1.2↓), anche se è stato poi adottato per indicare l’intera gerarchia di multiplazione plesiocrona (§ 19.3.1↓). Etimologicamente il termine deriva dall’onda pam (§ 6.9.3↓) in cui degli imPulsi sono Modulati in Ampiezza, mentre in questo caso le ampiezze degli impulsi sono Codificate. segue un andamento logaritmico[98] [98] L’andamento esatto della curva segue uno di due standard, denominati legge μ (per USA e Giappone) e legge A (per gli altri), lievemente diverse nella definizione, ma sostanzialmente equivalenti., e dimezza progressivamente la pendenza della caratteristica di ingresso-uscita del quantizzatore all’aumentare dei valori in ingresso.
quantizzatore logaritmico legge A
codifica lineare PCM legge A
s0000000wxyz s000wxyz
s0000001wxyz s001wxyz
s000001wxyza s010wxyz
s00001wxyzab s011wxyz
s0001wxyzabc s100wxyz
s001wxyzabcd s101wxyz
s01wxyzabcde s110wxyz
s1wxyzabcdef s111wxyz

Figura 4.16 Caratteristica i/o di un quantizzatore logaritmico e relativa tabella di codifica
La fig. 4.16↑ mostra un esempio di tale realizzazione (per i soli valori positivi), evidenziando come il risultato possa essere approssimato individuando (a partire dall’origine) regioni di valori di ingresso con una ampiezza che di volta in volta raddoppia, e suddividendo ogni regione in un uguale numero di intervalli equispaziati. La caratteristica non lineare è realizzabile per via completamente numerica: per prima cosa si realizza un campionamento uniforme con M = 12 bit a campione, a cui corrispondono L = 212  = 4096 livelli. Per ogni campione, il numero di bit pari a zero nella parte più significativa degli M individua la regione dei valori di ingresso, mentre i bit rimanenti sono shiftati a destra, per mantenere costante il numero di intervalli per regione, ottenendo in definitiva una rappresentazione in virgola mobile del valore del campione.
EsempioLa tabella a destra di fig. 4.16↑ esemplifica il processo di conversione pcm legge A, in cui a partire dalla quantizzazione uniforme a 12 bit, se ne ottengono gli 8 bit della codifica pcm, ripartiti in un bit di segno (s), tre di esponente, e quattro di mantissa (wxyz). Il bit più significativo dei 12 rappresenta il segno, e resta inalterato. Il numero di zeri più significativi dei 12 individua in quale delle 8 regioni[99] [99] Per motivi grafici, in figura sono mostrate solo 5 regioni, divise in 4 intervalli. cade il valore di ingresso, e tale regione è codificata mediante i 3 bit codice pcm che seguono quello di segno. Delle restanti cifre della codifica uniforma, se ne conservano solo le 4 più significative. Ad esempio, il valore 100000001010 diviene 1-000-1010 (come risulta dalla prima riga della tabella), mentre 000110011010 diventa 0-101-1001, come riporta la sesta riga.
I risultati del mapping illustrato possono essere inseriti in una rom come coppie di ingresso-uscita, utilizzando dunque 4096 posizioni di memoria da 8 bit ciascuna; al contrario presso il dac di restituzione, sono sufficienti 265 posizioni, di 12 bit ciascuna.
figure f5.78b.png
Nella figura a fianco viene mostrato l’andamento di SNRq al variare della potenza di segnale rispetto al massimo possibile, nei due casi del quantizzatore uniforme, oppure con compressione logaritmica. Come si può notare, l’effetto della quantizzazione logaritmica penalizza l’SNR per i segnali a piena dinamica, ma peggiora molto più lentamente al diminuire della stessa. Al cap. 12↓ l’argomento della codifica di sorgente audio viene ripreso, e debitamente approfondito.
Le prossime sezioni non tengono più conto delle questioni relative alla quantizzazione dei campioni, anche se nella realizzazione di dispositivi reali può rivestire interesse di progetto.
  Sezione 4.1: Teorema del campionamento Su  Capitolo 4: Campionamento, quantizzazione ed elaborazione numerica Sezione 4.3: Trasformata di Fourier di sequenze 
x Logo

Trasmissione dei Segnali e Sistemi di Telecomunicazione

http://infocom.uniroma1.it/alef/libro/

Un esperimento divenuto nel tempo un riferimento culturale. Scopri come effettuare il download, ricevere gli aggiornamenti, e contribuire!