Codifica numerica del segnale audio/Capitolo 2
![]() |
Questo testo è completo. | ![]() |
◄ | Capitolo 1 | Capitolo 3 | ► |
2
RAPPRESENTAZIONE
NUMERICA DEI SEGNALI
Un segnale analogico per poter essere trasmesso numericamente deve essere sottoposto innanzitutto ad una conversione analogico/digitale (A/D). La rappresentazione numerica ottenuta, può poi essere sottoposta a codifica, al fine di renderla più idonea alla trasmissione. A destinazione, il flusso numerico corrispondente al segnale viene riconvertito in forma analogica tramite un’eventuale decodifica ed una conversione digitale/analogica (D/A). Per quanto riguarda la codifica, si distingue tra codifica di sorgente (che ha lo scopo di comprimere il flusso numerico ottenuto dalla conversione), codifica di canale (che ha lo scopo di rendere tale flusso idoneo ad essere trasmesso su di un canale tipicamente affetto da errori) e codifica di linea (che trasforma il flusso numerico in opportuni segnali elettrici). In questo ambito si parlerà esclusivamente di codifica di sorgente. Affinché le operazioni di conversione e codifica mantengano l’informazione del segnale, è necessario comprenderne l’effetto, al fine di definire una loro implementazione ottimale. Per fornire una visione d’insieme, nel seguito si anticipano brevemente la funzione e gli effetti delle singole trasformazioni, rimandando per un’analisi più dettagliata ai paragrafi successivi.
La conversione A/D avviene concettualmente tramite due fasi di campionamento e quantizzazione (fig. 2.1). Il campionamento trasforma un segnale continuo in una serie di impulsi (campioni) equispaziati nel tempo di ampiezza pari a quella del segnale. La rappresentazione in frequenza di un segnale campionato è dato dalla ripetizione dello spettro del segnale continuo nell'intorno di multipli della frequenza di campionamento. In ricezione, è possibile riottenere il segnale continuo dai suoi campioni eliminando tali repliche, tramite un opportuno filtraggio passa basso (interpolazione). Affinché l’interpolazione sia possibile, è necessario che le repliche non si sovrappongano allo spettro del segnale continuo e ciò è garantito se la frequenza di campionamento è pari almeno al doppio della banda del segnale. La frequenza di campionamento, dunque, viene definita in funzione della banda del segnale. Per segnali non a banda limitata, è necessario che anche l’ingresso, come l’uscita, sia sottoposto ad un filtraggio passa basso (anti-aliasing), con una frequenza di taglio pari alla metà della frequenza di campionamento.
Fig. 2.1 - Struttura del canale audio numerico.
La quantizzazione permette la rappresentazione numerica dell’ampiezza dei campioni, sostituendo l’informazione sull'ampiezza del segnale con quella relativa all'appartenenza dell’ampiezza stessa a sottointervalli, detti quanti, definiti entro determinati estremi, detti estremi di saturazione. Associando a ciascun quanto un codice numerico, si ottiene la conversione A/D del segnale. In ricostruzione, in corrispondenza di ciascun quanto viene generato un segnale con ampiezza che, tipicamente, è paria al valor medio del quanto stesso. Con la quantizzazione il segnale in ingresso viene irrimediabilmente distorto, dato che si associa ad un intervallo di valori della grandezza in ingresso un unico valore di uscita, imponendo, così, che i campioni assumano ampiezze discrete. Ciò può essere visto come una compressione tramite riduzione di entropia della sorgente. Dal punto di vista degli effetti sul segnale, la quantizzazione è interpretabile come la somma all'ingresso di un segnale di rumore, detto rumore di quantizzazione, dato dalla differenza tra l’ingresso e l’uscita. Il livello del rumore dipende da quanto grossolana è l’approssimazione ottenuta con la quantizzazione che, a sua volta, dipende dal numero di livelli di quantizzazione e quindi dal numero di bit richiesto per una etichettatura univoca dei codici. Il numero di bit utilizzati nella codifica, dunque, è legato alla degradazione imposta al segnale e quindi al rapporto segnale rumore voluto.
Fissata in funzione della banda del segnale la frequenza di campionamento e quindi il numero di campioni al secondo f s, e fissato il numero di bit per campione R in funzione del rapporto segnale/rumore desiderato, rimane fissata la velocità f b del flusso numerico prodotto dai sistemi di conversione A/D e D/A
(2.1) |
Analizzando la banda necessaria per trasmettere numericamente un segnale si nota che tale codifica risulta essere estremamente inefficiente. La banda, infatti, risulta di un ordine di grandezza superiore a quella richiesta per la trasmissione analogica del segnale. D’altra parte, l’informazione presente in tale flusso numerico risulta essere estremamente ridondante e quindi comprimibile. Per qualsiasi segnale che non sia rumore bianco, infatti, i campioni non risultano indipendenti per il fatto di essere frutto dalla stessa sorgente e quindi frutto di una qualche legge di generazione {ridondanza). Inoltre, non considerando le caratteristiche della destinazione, non si fa nessuna analisi sulla “utilità” dei campioni stessi {irrilevanza). In particolare, le principali cause di ridondanza (fig. 2.2) possono essere ricondotte a:
- disuniformità della distribuzione delle ampiezze: dato che, tipicamente, la distribuzione delle ampiezze del segnale non è uniforme, è possibile ridurre la precisione del quantizzatore (e quindi il numero dei livelli) per gli intervalli di minor interesse;
Fig. 2.2 - Tecniche di compressione e relative codifiche.
- variabilità della distribuzione delle ampiezze: la dinamica del segnale varia considerevolmente nel tempo, per cui è conveniente adottare estremi di quantizzazione che non siano costanti, ma si adattino alla dinamica corrente;
- correlazione tra campioni: l’ampiezza di un campione non è indipendente dalla serie dei campioni che lo hanno preceduto, in quanto tutti generati dalla stessa sorgente, per cui non è conveniente codificarli isolatamente;
- disuniformità della distribuzione dell’energia in frequenza: lo spettro del segnale non è uniforme, per cui è possibile adottare caratteristiche di quantizzazione differenti per ciascuna porzione dello spettro;
- fenomeni di mascheramento dell’udito: dato che la sensibilità dell’orecchio è influenzata dalle caratteristiche del suono, è possibile adottare tecniche di quantizzazione che permettano di mascherare tramite il segnale il rumore di quantizzazione.
Le tecniche di codifica in grado di eliminare tali ridondanze si possono classificare in tre gruppi, a seconda delle informazioni utilizzate per comprimere il segnale; si distingue tra:
- codifica di forma d’onda: tale codifica sfrutta solamente l’informazione dell’andamento in funzione del tempo del segnale da codificare. Non facendo (solitamente) riferimento al tipo di sorgente o destinazione, essa risulta applicabile ad un qualsiasi tipo di segnale;
- codifica per modelli: la codifica non è relativa ai campioni del segnale, ma ai parametri di un modello della sorgente in grado di generarli;
- codifica nel dominio della frequenza: la codifica avviene dopo una trasformazione del segnale in un dominio differente da quello del tempo, tipicamente in frequenza.
Per quanto riguarda la codifica di forma d’onda, non potendo ridurre la frequenza di campionamento, è necessario comprimere il segnale riducendo il numero dei bit per campione e quindi riducendo opportunamente il numero dei livelli del quantizzatore (fig. 2.3). Una prima classificazione delle tecniche di codifica di forma d’onda può essere fatta a seconda che esse lavorino su singoli campioni (codifica di forma d’onda senza memoria) o su blocchi di essi (codifica di forma d’onda con memoria). La codifica di forma d’onda senza memoria può avvenire solamente tramite quantizzazione non uniforme. In tal caso, fissati gli estremi di quantizzazione, il numero dei livelli del quantizzatore (e quindi il numero di bit della codifica) viene ridotto adottando “dove possibile” passi di quantizzazione maggiori rispetto alla quantizzazione uniforme. Il passo di quantizzazione rimane, comunque, fisso nel tempo. Per quanto riguarda la codifica di forma d’onda con memoria, essa opera sugli estremi di saturazione del quantizzatore. Si distingue tra:
- quantizzazione adattativa : pur adottando una quantizzazione uniforme, si riducono gli estremi di quantizzazione (e quindi il numero dei livelli del quantizzatore) rendendoli contemporaneamente variabili nel tempo in funzione della dinamica corrente del segnale. In tal modo per segnali di ampiezza modesta si utilizzano passi di quantizzazione della stessa ampiezza di quelli adottati con una quantizzazione uniforme, ma, al crescere dell’ampiezza del segnale, crescono in ampiezza mantenendo costante sia il numero di livelli che il rapporto segnale rumore;
- quantizzazione differenziale : invece del segnale viene codificata una grandezza da esso derivata (tipicamente la differenza tra il segnale ed una sua stima) caratterizzata da una dinamica inferiore rispetto a quella dal segnale stesso. A parità di passo di quantizzazione è così possibile ridurre gli estremi di quantizzazione, riducendo il numero dei livelli del quantizzatore.
La stima del segnale (predizione) necessaria per la quantizzazione differenziale apre la strada alla codifica per modelli. Infatti, la predizione comporta automaticamente l’identificazione di un modello della sorgente in modo tale che, disponendo di un blocco di campioni, sia possibile stimarne la legge di generazione. Ricavata, però, tale legge si dispone di un modello della sorgente. Potrebbe, quindi, risultare conveniente trasmettere i parametri che identificano il modello, piuttosto che codificare la sua uscita. Per capire quanto vantaggiosa potrebbe essere tale tecnica, si pensi, ad esempio, al problema della codifica di segnali sinusoidali. In tal caso, una singola trasmissione dei parametri che identificano il generatore (ampiezza, frequenza e fase iniziale) eliminerebbe la necessità di trasmettere l’infinita serie dei campioni della sua uscita.
Per quanto riguarda la codifica nel dominio della frequenza, essa è motivata dal fatto che analizzare il segnale in un dominio differente da quello del tempo permette di eliminare della ridondanza/irrilevanza difficilmente evidenziabile altrimenti. In particolare i fenomeni che si vogliono sfruttare sono la disuniformità dello spettro del segnale e gli effetti di mascheramento da parte dell’udito. In entrambi i casi, la compressione avviene analizzando il segnale in distinti intervalli di frequenza ed eseguendo per ciascuna banda la quantizzazione più opportuna. In particolare si tenta di ridurre il numero dei livelli del quantizzatore in funzione dell’energia contenuta nelle singole bande, sia tramite una quantizzazione adattativa, sia aumentando l’ampiezza dei Fig. 2.3 - Riduzione del numero dei livelli del quantizzatore nelle differenti tecniche di codifica.
quanti in quelle bande nelle quali il rumore di quantizzazione risulterebbe mascherato dal segnale. Si hanno essenzialmente due tecniche di codifica in frequenza. La prima codifica, suddivide a blocchi lo spettro del segnale per mezzo di un banco di filtri passa banda. Dopo tale filtraggio, con le tecniche tipiche dei codificatori di forma d’onda, viene codificato il flusso continuo emesso da ciascun filtro (codifica per sottobande). La seconda codifica, suddivide in blocchi il flusso numerico, sottoponendo poi ciascun blocco ad una trasformazione per ottenere una rappresentazione continua in frequenza. I coefficienti ottenuti costituiscono la codifica del segnale (codifica per trasformate). Anche se l’implementazione risulta considerevolmente differente, queste due tecniche di codifica sono sostanzialmente equivalenti.
Nel seguito viene fornita un’analisi più dettagliata delle tecniche più diffuse per ciascuna delle codifiche descritte.
Dato un segnale continuo, la sua rappresentazione numerica avviene mediante un processo di conversione Analogico/Digitale (A/D). La trasformazione inversa da digitale a continuo è detta conversione Digitale/Analogico (D/A). Essa consiste nel generare per ciascun codice il segnale analogico corrispondente. La conversione A/D : si compone concettualmente di due fasi: un campionamento, che trasforma il segnale continuo in una serie di impulsi, ed una quantizzazione, che impone agli impulsi di assumere ampiezze in un insieme finito di valori. Gli impulsi generati dal campionamento si ottengono valutando il segnale in istanti non contigui di tempo. Tipicamente tali istanti sono equispaziati ed il tempo che intercorre tra due campioni adiacenti è detto periodo di campionamento (T). Il reciproco del periodo di campionamento è detta frequenza di campionamento (fs). La quantizzazione dei campioni su n livelli si ottiene fissando innanzitutto i valori massimo ed minimo del segnale d’uscita (estremi di saturazione) e poi suddividendo il campo delle ampiezze tra di essi comprese in n intervalli (quanti). La quantizzazione avviene poi associando ad un campione il livello corrispondente al valore medio dell’intervallo nel quale è compreso la sua ampiezza. Identificando ciascun livello con parole binarie di lunghezza pari a R = log 2 (n) bit, si ottiene la codifica numerica voluta. Tale codifica è chiamata Pulse Code Modulation (PCM) lineare.
Per studiare le alterazioni subite dal segnale a seguito della conversione A/D e D/A, iniziamo ad analizzare gli effetti del campionamento. Come già detto, il campionamento periodico di un segnale continuo x c (t), fornisce una sequenza numerica x(n) costituita dai valori assunti dalla funzione a multipli del periodo di campionamento
(2.2) |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/37/Codifica_numerica_del_segnale_audio_%28page_63_crop%29.jpg/450px-Codifica_numerica_del_segnale_audio_%28page_63_crop%29.jpg)
II problema che si vuole affrontare è quello di determinare sotto quali condizioni tale trasformazione è reversibile, cioè, sotto quali condizioni è possibile ricostruire il segnale continuo dai suoi campioni. Si consideri una funzione continua xc(t) con una rappresentazione in frequenza Xc(Ω). Innanzitutto, è conveniente modellizzare il processo di campionamento come il risultato del prodotto del segnale xc(t) con una funzione campionatrice s(t) (fig. 2.4), costituita da un treno di δ posizionate negli istanti di campionamento
(2.3) |
Il risultato xs(t) di tale prodotto è un segnale PAM (Pulse Amplitude Modulation), costituito da un treno di impulsi, ciascuno dei quali ha ampiezza pari al valore che il segnale assume per t = nT
(2.4) |
(2.5) |
Per comprendere gli effetti del campionamento è vantaggioso passare ad una rappresentazione del segnale campionato nel dominio della frequenza. Dato che il segnale campionato è dato dal prodotto di due segnali, il suo spettro è ottenibile dalla convoluzione delle loro trasformate. Per il calcolo della trasformata S(f) della funzione di campionamento, conviene sviluppare la serie periodica di δ(t) in serie di Fourier. I coefficienti dello sviluppo sono pari a
(2.6) |
per cui la rappresentazione nel tempo del treno di delta è dato da
(2.7) |
Calcolando la trasformata, si ha che la trasformata della costante 1/T è una δ(f), mentre la sommatoria di esponenziali porta a repliche della δ(f) traslate in frequenza, cioè
(2.8) |
La rappresentazione in frequenza della funzione campionatrice, quindi, risulta essere ancora un treno di delta. Effettuando la convoluzione con lo spettro X c (£2) del segnale continuo, si ottiene la rappresentazione in frequenza X s (£l) del segnale campionato. Dato che la convoluzione di un segnale con la delta fornisce il segnale stesso, la convoluzione del segnale con un treno di delta fornisce una serie di sue repliche
(2.9) |
(2.10) |
Per il filtro passa basso di ricostruzione, infine, la frequenza di taglio viene fissata alla metà della frequenza di campionamento (frequenza di Nyquist). Nel caso di segnali limitati in banda, quindi, è possibile ricostruire segnale perfettamente identico all'originale, per cui il segnale xc(t) può essere univocamente determinato dal segnale xs(t).
Il filtro di ricostruzione è anche detto di interpolazione. Infatti, la istruzione può essere interpretata nel dominio del tempo come un’interpolazione tra campioni adiacenti (fig. 2.5). Per capire quale tipo di interpolazione venga utilizzata è necessario esprimere nel dominio del tempo l’effetto del prodotto in frequenza tra lo spettro del segnale campionato e la funzione di ferimento del filtro. Se si considera un filtro passa basso ideale, la funzione di trasferimento del filtro è data da
(2.11) |
con una risposta impulsiva pari a
(2.12) |
Il segnale ricostruito xr(t), dunque, si ottiene trasformando il prodotto dei due spettri in frequenza nella convoluzione nel dominio del tempo delle
loro antitrasformate Fig. 2.5 - Ricostruzione di un segnale tramite interpolazione dei suoi campioni.
(2.13) |
Analizzando questa relazione si nota che la hr(nT) vale 1 per n=0 ed è nulla per n≠0. L’ampiezza della xr(t) nei punti di campionamento, quindi, coincide con l’ampiezza dei campioni, mentre negli altri punti è ottenuta con una interpolazione tramite una funzione sinc(t).
È possibile dimostrare l’invertibilità del campionamento ideale anche procedendo in maniera differente. Si consideri la ripetizione periodica dello spettro di un segnale continuo a banda ΩB limitata, con repliche poste a multipli pari della ΩB
(2.14) |
Essendo la Xp(Ω) una funzione periodica, essa può essere sviluppata in serie di Fourier. Per un segnale funzione del tempo si ha
(2.15) |
Nel nostro caso t=Ω e T/2=ΩB. Inoltre, in un periodo la Xp(Ω) è descritta dalla Xc(Ω), per cui i coefficienti e lo sviluppo in serie si ottengono
(2.16) |
Considerando l’antitrasformata della Xc(Ω) (ricordando che questa è nulla al di fuori di ΩB)
(2.17) |
e sostituendo alla Xc(Ω) il suo sviluppo in serie, si ottiene
(2.18) |
Il calcolo dell’integrale fornisce
(2.19) |
quindi
(2.20) |
(2.21) |
I coefficienti della serie dello spettro periodicizzato, quindi, sono dati da campioni scalati del segnale. Rovesciando il discorso, il segnale campionato ha una rappresentazione in frequenza data dalla periodicizzazione del suo spettro.
Per segnali a banda limitata, dunque, affinché il campionamento sia invertibile è sufficiente rispettare il teorema di Nyquist. Se ciò non avviene le repliche dovute al campionamento si sovrappongono allo spettro del segnale originario (aliasing), impedendone una successiva separazione. In pratica, nessun segnale è limitato in banda. La principale causa è la presenza inevitabile del rumore: in tal caso l’aliasing somma al segnale infinite repliche dello spettro del rumore, degradandone la qualità. Inoltre, accade che sullo stesso mezzo possano viaggiare oltre al segnale di interesse, altri segnali multiplexati in frequenza tramite modulazione (es.: filodiffusione): campionando con una frequenza legata al solo segnale non modulato, la separazione in frequenza viene distrutta a causa delle repliche del segnale modulato generate su tutto lo spettro. Per poter fissare la frequenza di campionamento, quindi, è necessario limitare forzatamente il segnale prima del suo campionamento. Ciò si ottiene tramite un filtro passa basso (anti-aliasing) con frequenza di taglio pari alla metà della frequenza di campionamento. Si pone l’accento sul fatto che, anche se le caratteristiche del filtro anti-aliasing sono analoghe a quelle del filtro di interpolazione le sue funzioni sono completamente differenti.
Nel caso di segnale telefonico, il campionamento impone che la banda del segnale venga limitata a 3.4 kHz e la frequenza di campionamento è fissata a 8 kHz. Per un segnale audio HiFi, avente banda di 20 kHz, la frequenza di campionamento è di 44.1 kHz nel Compact Disk (CD) e di 48 kHz nel Digital Audio Tape (DAT) per garantire un certo intervallo di transizione ai filtri anti aliasing e di ricostruzione. Nel caso delle trasmissioni radio (Digital Audio Broadcasting: DAB) la frequenza di campionamento è di 32 kHz per una banda di 15 kHz.
Nella trattazione precedente si è considerato un campionamento ideale, ottenuto tramite un treno di 8. In realtà, è necessario tener presente il funzionamento a tenuta (hold) dei convertitori D/A che fa si che l’uscita non sia composta da impulsi, ma il livello di ciascun campione è mantenuto costante all'interno dell’intervallo di campionamento, per essere modificato all'arrivo del campione successivo (fig. 2.6). Analiticamente ciò è ottenibile eseguendo la convoluzione dei campioni ideali con una rect(t):
(2.22) |
In frequenza ciò si riflette nel prodotto dello spettro del segnale campionato con la trasformata della rect(t), che è una sinc(f)
(2.23) |
In definitiva, lo spettro di un segnale ottenuto dal convertitore D/A è dato dalla ripetizione periodica dello spettro del segnale originario, come per il campionamento ideale, ma con la differenza che l’ampiezza non è costante, ma decresce in frequenza con un inviluppo dato da una sinc(f).
Nella presente trattazione sia il filtro anti-aliasing che quello di interpolazione sono stati considerati ideali. L’utilizzo di filtri con funzione di trasferimento non ideale (distorsioni in banda, attenuazione finita fuori banda, ecc.) porta a degradazioni delle prestazioni, che, però, non vengono qui ulteriormente approfondite.
Un campione x(n) del segnale è una misura dell’ampiezza del segnale stesso che può assumere qualsiasi valore nell'intervallo (-∞, +∞) ed è, quindi, esprimibile come numero reale. Al fine di permettere la rappresentazione del Fig. 2.6 - Forma d’onda e spettri per sample & hold.
segnale campionato tramite parole binarie con precisione finita, il segnale analogico deve essere sottoposto a quantizzazione. Il più semplice algoritmo di quantizzazione è la quantizzazione uniforme. Con tale quantizzazione è necessario, innanzitutto, fissare dei livelli minimi e massimi di ampiezze
Fig. 2.7 - Quantizzazione uniforme.
ammissibili della grandezza d’ingresso. Per segnali a valor medio nullo, tale intervallo è tipicamente simmetrico rispetto allo zero, per cui le ampiezze ammissibili sono quelle contenute tra due estremi +/- V, detti estremi di saturazione. L’intervallo della ampiezze all'interno degli estremi di saturazione è poi suddiviso in sotto intervalli δxi, detti quanti (fig. 2.7).
La quantizzazione consiste nell'individuare il quanto entro il quale cade l’ampiezza del campione d’ingresso e nel sostituire all'informazione dell’ampiezza del campione stesso l’indice di tale quanto, opportunamente codificato. Tale numero può essere poi trasmesso o memorizzato per permettere la ricostruzione del segnale. Utilizzando una codifica binaria di lunghezza fissa, con un numero di livelli pari a n = 2R, l’ampiezza del quanto è pari a Δ = 2V/n ed il codice prodotto è formato da interi rappresentabili su R bit. A tutti i valori di ampiezza al di fuori degli estremi di saturazione viene associato il codice dell’ultimo quanto utile.
In fase di ricostruzione del segnale a partire dai suoi campioni quantizzati, è necessario associare un’ampiezza a ciascun quanto. Tale ampiezza è normalmente scelta pari al valor medio del quanto stesso. Dato che ad intervalli di ampiezze dell’ingresso si fa coincidere un solo valore dell’uscita, la quantizzazione rappresenta una compressione con riduzione di entropia della sorgente e la distorsione che ne deriva è irreversibile. Se applicata all'uscita di un Fig. 2.8 - Errore di quantizzazione.
campionatore ideale, dalla sequenza ottenuta dalla quantizzazione non è quindi possibile riottenere la sequenza x(n) generata dal campionamento, per cui non è possibile ricostruire esattamente il segnale xc(t).
Guardandola nel suo complesso, la quantizzazione è schematizzabile come una trasformazione non lineare che mappa intervalli di ampiezza costante δxi del segnale in ingresso in un insieme finito di ampiezze. In un quantizzatore uniforme, queste risultano tra loro equispaziate e la distanza tra due ampiezze di uscita adiacenti coincide con l’ampiezza Δ del quanto d’ingresso. La legge di corrispondenza f(x) tra il valor medio dei quanti d’ingresso e la corrispondente ampiezza d’uscita è detta caratteristica di quantizzazione. Nel caso di quantizzazione uniforme, la caratteristica è costituita dalla bisettrice del primo e terzo quadrante (fig. 2.7).
La distorsione introdotta dalla quantizzazione è modellizzabile con la somma del segnale d’ingresso con un secondo segnale, detto rumore di quantizzazione, dato dalla differenza tra l’ingresso e l’uscita. Se si paragona la quantizzazione alla trasformazione di un numero reale in un intero, l’errore di quantizzazione rappresenta l’analogo dell’errore di arrotondamento. La potenza del rumore di quantizzazione è il parametro che fissa il limite massimo del rapporto segnale/rumore ottenibile in decodifica (fig. 2.8). Nel seguito si vogliono individuare i parametri che influenzano l’entità del rumore di quantizzazione, per fissarne l’ampiezza in funzione delle caratteristiche del segnale.
Abbandonando, per generalità, l’ipotesi di caratteristica lineare, è possibile, innanzitutto, calcolare la dimensione dell’intervallo di ampiezze i-esimo del segnale continuo d’ingresso δxi che corrisponde ad un quanto costante Δ d’uscita. Approssimando la caratteristica in ciascun intervallo con la sua tangente nel punto medio xi si ottiene
(2.24) |
In ciascun intervallo è poi possibile calcolare Terrore quadratico medio tra il segnale e la sua versione quantizzata (cioè l’energia dell’errore di quantizzazione), in funzione della distribuzione di probabilità p(x) delle ampiezze del segnale
(2.25) |
Se il numero di livelli è elevato, la probabilità all'interno del quanto si può ritenere costante e pari a quella del valor medio p(xi), per cui
(2.26) |
intervalli infinitesimi dx, la P(xi) è esprimibile come p(x) dx e l'errore quadratico totale è pari a
(2.27) |
Il primo termine dell’espressione dell’errore tiene conto della distorsione del segnale dovuto alla quantizzazione (rumore granulare di quantizzazione o, brevemente, rumore di quantizzazione), mentre il secondo termine riguarda la distorsione dovuta alla saturazione (rumore di sovraccarico).
Considerando il solo rumore di sovraccarico, la sua potenza
(2.28) |
dipende dal valore della V. Questo deve essere fissato in funzione della distribuzione di probabilità delle ampiezze del segnale p(x) in modo tale che il rumore introdotto dalla saturazione possa essere considerato trascurabile secondo qualche criterio. Se si considera, ad esempio, un segnale sinusoidale , e considerata uniforme la distribuzione di probabilità dell’argomento , la distribuzione di probabilità della x è pari a [Pap84]
(2.29) |
La potenza del rumore di saturazione è, quindi, pari a
(2.30) |
Con la sostituzione
(2.31) |
si ottiene
(2.32) |
cioè
(2.33) |
Nota la potenza del rumore di sovraccarico e noto che per un segnale sinusoidale , è possibile calcolare il rapporto segnale/rumore per tale componente, che, espresso in dB, è dato da
(2.34) |
Il rapporto segnale rumore viene generalmente espresso in funzione del
valore normalizzato di xeff rispetto al livello di pieno carico sinusoidale xeffP
(2.35) |
dove xeffP è definito come il valore efficace della sinusoide che ha come valore di picco la tensione di saturazione V, cioè . Ovviamente, nel caso di segnali sinusoidali il rapporto S/N va all'infinito per A ≤ V, per cui la scelta più ovvia per il limite di saturazione è V ≥ A.
Passando a segnali non deterministici, una distribuzione di particolare interesse è quella gaussiana
(2.36) |
dove β = 1 / (2 σx2) = 1 /(2 xeff2), in quanto corrispondente alla distribuzione a breve termine (intervalli di circa 10 ms) delle ampiezze per il segnale telefonico [Jay84]. L’espressione per l’errore di sovraccarico che si ottiene nel caso di distribuzione gaussiana è data da
(2.37) |
Procedendo al calcolo dei singoli integrali si ottiene
(2.38) |
per cui
(2.39) |
distribuzione delle ampiezze a lungo termine (intervalli dell’ordine del secondo) è data dalla distribuzione gamma [Jay84], che ha densità di probabilità
(2.40) |
Un’ulteriore utile approssimazione di questa distribuzione è quella esponenziale (o di Laplace), che ha densità di probabilità
(2.41) |
dove . In tal caso il calcolo dell’errore di sovraccarico fornisce
(2.41) |
Analizzando l’andamento del rumore di sovraccarico per queste tre distribuzioni (fig. 2.9), si nota come l’effetto della saturazione sia tanto maggiore quanto maggiore è il fattore di cresta del segnale, cioè del rapporto tra valore di picco e valore efficace (il valore di picco è definito come il valore del segnale che non viene superato con probabilità del 99 %). Confrontando, ad esempio, un segnale con distribuzione gaussiana (la cui distribuzione decresce proporzionalmente a e-x2) con un segnale con distribuzione esponenziale (la cui distribuzione decresce proporzionalmente a e-x), si nota come, a parità di valore efficace, il secondo risenta maggiormente degli effetti della saturazione a causa della maggiore estensione delle code della funzione densità di probabilità.
Riassumendo, fissato il limite di saturazione, la potenza della relativa
componente dell’errore di quantizzazione dipende dalla funzione densità di Fig. 2.9 - Rapporto S/N di sovraccarico per differenti distribuzioni.
probabilità del segnale. Nel caso di segnale telefonico gli estremi V del quantizzatore sono standardizzati a 3.14 dBmO [ITUTG.711].
Se i limiti del quantizzatore sono stati scelti opportunamente, la componente del rumore dovuta al sovraccarico si può ritenere trascurabile, per cui il rumore di quantizzazione è dato dalla sola componente granulare. È intuitivo pensare che, dato che il rumore è funzione dello scostamento tra la funzione continua e la sua versione quantizzata e dato che questo scostamento dipende dall'ampiezza dell’intervallo di quantizzazione, il rumore di quantizzazione
dipenda dal numero dei livelli del quantizzatore, quindi dal numero di bit utilizzati per il codice. Infatti, data l’espressione della componente granulare
(2.43) |
e considerando il caso di quantizzazione uniforme e distribuzione di probabilità è costante, risulta
(2.44) |
per cui
(2.45) |
dove εx2 è una costante (> 1) che lega gli estremi di saturazione alla varianza del segnale. Conformemente a quanto ci si aspettava, dunque, il rumore di quantizzazione è inversamente proporzionale al numero di bit utilizzati nella codifica. Per semplificare ulteriormente tale relazione, è conveniente esprimerla in unità logaritmiche, ottenendo
(2.46) |
Trascurando i termini costanti che appaiono nell'equazione, si ottiene
(2.47) |
Questa è la cercata relazione che lega il rumore di quantizzazione al numero di bit utilizzati nella codifica. Essa mostra che il rumore si riduce di 6 dB per ogni bit utilizzato nel quantizzatore. A questo punto è possibile fissare il numero di bit utilizzati nella quantizzazione in funzione delle caratteristiche del segnale (fig. 2.10). Il parametro da valutare è la dinamica, cioè il rapporto tra il massimo ed il minimo livello utile del segnale. Infatti, scelto il livello di saturazione del quantizzatore pari al massimo livello del segnale, il minimo
livello utile del segnale stesso deve risultare superiore al livello del rumore di quantizzazione. Ponendo pari a 0 dB il livello massimo del segnale, il minimo è posto ad un livello numericamente pari alla dinamica. Per fissare l’errore di quantizzazione al di sotto del livello minimo tramite la relazione approssimata trovata, è necessario adottare nel quantizzatore un numero di bit maggiore del valore che si ottiene dividendo la dinamica per 6. Per il segnale telefonico, ad
esempio, caratterizzato da una dinamica maggiore di 50 dB, è necessario adottare una quantizzazione lineare con un numero di bit maggiore di 10. Passando alle ampiezze, porre la potenza del rumore di quantizzazione al di Fig. 2.10 - Dinamica del segnale e rumore di quantizzazione.
sotto di quella del più debole segnale utile vuol dire scegliere un’ampiezza del quanto inferiore a quella di tale segnale, permettendone la rappresentabilità.
Mantenendo l’ipotesi di quantizzazione uniforme, ma abbandonando l’ipotesi di distribuzione uniforme di probabilità delle ampiezze del segnale, l’espressione del rumore granulare va modificata inserendovi quella della probabilità. Considerando una distribuzione esponenziale si ottiene
(2.48) |
Se si confrontano i risultati ottenuti con tale espressione con quelli dati dall'approssimazione di distribuzione uniforme, non si notano differenze apprezzabili (dell’ordine di 10-3 per xeff / xeffP = 0 dB ed inferiori per ampiezze minori).
Per quanto riguarda l’andamento del rapporto segnale rumore (fig. 2.11), si nota come la componente granulare del rumore di quantizzazione appaia solo in presenza del segnale (a meno dell’idle channel noise descritto nel seguito) e risulti indipendente dall'ampiezza del segnale stesso. Di conseguenza, il rapporto segnale rumore Fig. 2.11 - Errore di quantizzazione per distribuzione esponenziale.
(2.49) |
Si vuole determinare la struttura di un quantizzatore in grado di fornire il minimo valore di distorsione eq2 per un dato numero di bit per campione. Per un quantizzatore uniforme, ciò si traduce nella determinazione del suo passo di quantizzazione dato che, fissato R, ne viene contemporaneamente fissato l’altro suo parametro caratteristico, che è il livello di saturazione. È evidente che se una diminuzione del passo di quantizzazione riduce la componente granulare del rumore, dall'altra ne aumenta la componente di sovraccarico e viceversa, per cui il passo di quantizzazione ottimo sarà tale da minimizzare contemporaneamente tali componenti. Indicando con y l’uscita del quantizzatore, la distorsione media provocata dalla quantizzazione, utilizzando come sua misura lo scarto quadratico medio, è pari a
(2.50) |
che per un quantizzatore uniforme diventa
(2.51) |
Il minimo di tale funzione si ottiene annullando la derivata rispetto alla Δ come
(2.52) |
La soluzione a questo problema è ricavabile per via numerica e viene riportata in tabella per le distribuzioni di probabilità uniforme, gaussiana, laplaciana e gamma [Jay84]:
R | Δ/σx | SNR max (dB) | |||||||||
U | G | L | Γ | U | G | L | Γ | ||||
1 | 1.7320 | 1.5956 | 1.4142 | 1.1547 | 6.02 | 4.40 | 3.01 | 1.76 | |||
2 | 0.8660 | 0.9957 | 1.0874 | 1.0660 | 12.04 | 9.25 | 7.07 | 4.95 | |||
3 | 0.4330 | 0.5860 | 0.7309 | 0.7957 | 18.06 | 14.27 | 11.44 | 8.78 | |||
4 | 0.2165 | 0.3352 | 0.4610 | 0.5400 | 24.08 | 19.38 | 15.96 | 13.00 | |||
5 | 0.1083 | 0.1881 | 0.2800 | 0.3459 | 30.10 | 24.57 | 20.60 | 17.49 | |||
6 | 0.0541 | 0.1041 | 0.1657 | 0.2130 | 36.12 | 29.83 | 25.36 | 22.16 | |||
7 | 0.0271 | 0.0569 | 0.0961 | 0.1273 | 42.14 | 35.13 | 30.23 | 26.99 | |||
8 | 0.0135 | 0.0308 | 0.0549 | 0.0743 | 48.17 | 40.34 | 35.14 | 31.89 |
Tab. 2.1 - Ampiezza del quanto e SNR per quantizzazione ottima.
Analizzando tali valori, un primo risultato che si può ricavare è che il livello di saturazione ottimo (ottenibile moltiplicando l’ampiezza del quanto per il numero di livelli del quantizzatore) può essere fissato approssimativamente ad un valore pari a 4 σx. Per quanto riguarda il rapporto segnale/rumore di tale quantizzazione ottima, invece, si nota che i valori che si ottengono nei casi reali sono sensibilmente peggiori dei 6R dBmO ottenuti nell'ipotesi di distribuzione uniforme con rumore di sovraccarico trascurabile. Di conseguenza a parità di distorsione, è necessario impiegare un quantizzatore con un maggior numero di bit per campione.
Passando alle caratteristiche del rumore di quantizzazione, si vede come la sua funzione densità di probabilità possa essere considerata costante nell'intervallo ±Δ/2 (fig. 2.12). Infatti, indicando con P(xi) la probabilità di appartenenza al quanto i-esimo Xi ed essendo gli eventi di appartenenza a differenti quanti mutuamente esclusivi, la distribuzione di probabilità complessiva dell’errore p(e) è data dalla somma delle “n” distribuzioni all'interno dei singoli quanti p(ei) pesate tramite le P(xi)
(2.53) |
(2.54) |
La p(e), quindi, si ottiene dalla somma di sezioni della p(x) (una per ciascun Xi), traslate centrandole nell'origine. Anche se le singole p(ei) risultano essere non costanti, la loro somma tende a distribuirsi uniformemente già per un numero di bit di quantizzazione R ≥ 2, come mostrato in figura 2.12 per il caso di un segnale con distribuzione gaussiana e quantizzazione uniforme ottima.
Passando allo spettro dell’errore di quantizzazione, esso può essere stimato qualitativamente analizzando l’andamento del segnale nel tempo. Se il numero di livelli di quantizzazione risulta essere elevato ed il segnale non eccessivamente correlato, l’errore di quantizzazione è caratterizzato da rapidi cambiamenti di segno per il continuo attraversamento da parte del segnale dei differenti livelli di quantizzazione. Ciò porta ad una densità spettrale di potenza del segnale d’errore estremamente estesa approssimabile a quella di rumore bianco (fig. 2.13). Con tale ipotesi di distribuzione uniforme, noto che la potenza dell’errore di quantizzazione nella banda ± fs/2 è pari a Δ2/12, la sua densità spettrale di potenza Se(f) è pari a
(2.55) |
L’ipotesi fatta di quantizzazione con un numero elevato di livelli, però, è essenziale. Infatti, un’analisi della reale distribuzione spettrale di potenza del segnale d’errore mostra che essa non si mantiene costante, ma, come mostrato in figura 2.14, decresce all'aumentare della frequenza in maniera tanto più sensibile quanto meno elevato è il numero di bit del quantizzatore. L’approssimazione di spettro piatto, però, risulta sufficiente per il seguito della trattazione.
L’analisi precedente fatta sul segnale d’errore era relativa a segnali
continui. Passando all'analisi dei segnali campionati, è conveniente ricavare lo spettro del rumore di quantizzazione campionato e c (t) come trasformata della Fig. 2.12 - Distribuzione errore di quantizzazione.
sua funzione di autocorrelazione. Calcolando la funzione di autocorrelazione come media d’insieme, essa è esprimibile come
(2.56) |
dove p[ec(t) = v, ec(t-τ) = v] rappresenta la probabilità condizionata che entrambi gli eventi assumano la generica ampiezza v. Gli estremi di integrazione si estendono per tutto l’intervallo di esistenza della funzione densità di probabilità del segnale d’errore. Per il calcolo dell’integrale è conveniente considerare i campioni dell’errore come ottenuti da rect(t) di larghezza infinitesima ε ed ampiezza eg/ε, facendo poi tendere ε a zero
(2.57) |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/42/Codifica_numerica_del_segnale_audio_%28page_86_crop%29.jpg/450px-Codifica_numerica_del_segnale_audio_%28page_86_crop%29.jpg)
Con tale ipotesi e considerando un periodo di campionamento T, la p[ec(t) = v, ec(t-τ) = v] può essere scomposta come prodotto della distribuzione di probabilità p(e) della variabile eg(t) (identica per i due eventi) per la probabilità p(v|t) che il segnale sia di ampiezza v nel generico istante t
(2.58) |
Per il calcolo della p(v|τ), considerando la t come variabile aleatoria con distribuzione uniforme all'interno dell’intervallo di campionamento pari a
1/T, la probabilità che essa cada all'interno all'intervallo ε nel quale il segnale non è nullo è pari a ε/T. Inoltre, essendo il primo evento nullo per t > ε ed il secondo nullo per t > (ε - x), il calcolo della p(v|τ) va limitato nell'intervallo [0, ε - τ], ottenendo Fig. 2.14 - Densità spettrale di potenza di un segnale quantizzato.
(2.59) |
(2.60) |
Sempre nell'ipotesi di numero di livelli di quantizzazione elevato e segnale non fortemente correlato (o periodico), il campionamento dell’errore di quantizzazione alla frequenza di Nyquist porta a campioni tra loro scorrelati ed indipendenti dai campioni del segnale. L’ipotesi di indipendenza tra campioni dell’errore comporta che la funzione di autocorrelazione sia costituita da una d(t) centrata nell'origine. Infatti, solo facendo coincidere le due repliche del segnale utilizzate nel calcolo dell’autocorrelazione, i prodotti tra i vari campioni e, di conseguenza, la loro somma risultano sempre positivi; in tutti gli altri casi, in media, il loro contributo tenderà ad annullarsi. Di conseguenza, riscrivendo l’espressione precedente per t = 0
(2.61) |
Riconoscendo nell'argomento dell’integrale il valore quadratico medio eg2 della componente granulare del segnale d’errore, si ricava infine
(2.62) |
Per il livello di quantizzazione i-esimo, utilizzando le relazioni già ricavate per eg2, ciò si traduce in
(2.63) |
Integrando assumendo trascurabile la probabilità che il segnale cada al di fuori degli estremi di saturazione, si ottiene che la funzione di autocorrelazione complessiva
(2.64) |
La densità spettrale di potenza si ottiene trasformando tale funzione di autocorrelazione del processo a tempo discreto come
(2.65) |
dalla quale si osserva che lo spettro del segnale d’errore è uniforme (fig. 2.13). Integrando all'interno del'intervallo ± 1/2T si ottiene che la potenza del segnale d’errore campionato nella banda di interesse, che vale
(2.66) |
Noto che la rappresentazione in frequenza di un segnale campionato Xc(f) è anch'essa scalata di un fattore pari a 1/T, il rapporto segnale/rumore ottenuto considerando segnali campionati
(2.67) |
coincide con quello ottenuto nel caso di segnali continui.
È opportuno, infine, analizzare con più dettaglio l’effetto della quantizzazione per ampiezze del segnale prossime allo zero. Si distinguono due tipi di caratteristiche di conversione (fig. 2.15). La prima è tale che i segnali con livello inferiore alla metà del passo di quantizzazione 8/2 vengono codificati con lo zero (codifica silenziata o “mid-tread quantizer”).
Fig. 2.15 - Quantizzatore silenziato e non silenziato.
Nella seconda lo zero viene scelto come livello di decisione (codifica non silenziata o “mid-riser quantizer”). La differenza tra i due quantizzatoli risiede nel fatto che, mentre nel primo caso il rumore presente in assenza di segnale viene annullato (purché di ampiezza inferiore a δ/2), nel secondo caso esso viene amplificato almeno a A/2. Entrambe le soluzioni hanno degli svantaggi. Con il codice silenziato si ha una riduzione della dinamica ai bassi livelli, con peggioramento della qualità del segnale. Con il codice non silenziato, invece, viene generato un rumore di fondo in assenza di segnale (idle channel noise) con potenza pari a (A/2)2. In realtà, dato che il corretto posizionamento del livello zero del segnale è difficilmente ottenibile (a causa di disturbi sul segnale o imperfezioni delle apparecchiature), esso può subire spostamenti dell’ordine della metà del passo di quantizzazione. La scelta di una caratteristica silenziata, quindi, viene vanificata ed è preferibile adottare una caratteristica non silenziata, che sfrutta tutti gli ‘n’ livelli permessi dalla dimensione del codice.
La trattazione precedentemente svolta sulla rappresentazione numerica dei segnali analizzava separatamente gli effetti delle due trasformazioni di campionamento e quantizzazione. Nella pratica, le conversioni da analogico a digitale e da digitale ad analogico vengono, invece, eseguite in un’unica fase da componenti elettronici monolitici, detti convertitori [Tau77].
Analizzando la struttura dei convertitori A/D (fig. 2.16), comunque, si ritrovano due unità funzionali, che sono l’elemento di campionamento e tenuta (sample and hold: s&h) ed il quantizzatore, ricollegabili a tali trasformazioni. La funzione del s&h è quello di mantenere fissa la tensione ai capi del quantizzatore durante la conversione. Idealmente, esso potrebbe essere costituito dalla cascata di un interruttore e di una capacità. Nell'istante di campionamento l’interruttore si chiude per un tempo infinitesimo portando la capacità ad assumere ai propri capi una tensione pari a quella dell’ingresso. Aprendosi l’interruttore, la tensione ai capi della capacità viene mantenuta. In pratica, il comportamento di tali componenti non è ideale: l’interruttore è generalmente costituito da circuiti à transistor che rimangono chiusi per un intervallo finito di tempo, hanno una transizione tra apertura e chiusura graduale, il clock campionamento è soggetto a jitter, il trasferimento tra ingresso ed elemento di tenuta non è completo, l’elemento di tenuta è costituito da una circuiteria analogica soggetta a perdite di carica, ecc. Tutte queste cause fanno si che il funzionamento del s&h si discosti da quello teorico; l’errore Fig.2.16 - Struttura di convertitori A/D e D/A.
globale che ne deriva, però, viene mantenuto da parte del costruttore al di sotto dell’errore legato al numero di bit del quantizzatore.
Il quantizzatore può eseguire la conversione secondo diversi algoritmi, dei quali uno dei più diffusi è quello per approssimazioni successive. Con tale algoritmo i bit del codice vengono fissati in sequenza a partire dal più significativo (Most Significant Bit: MSB) procedendo verso il meno significativo (Least Significant Bit: LSB). L’algoritmo si basa sulla ricerca binaria del quanto di appartenenza del campione tra gli “n” presenti nel quantizzatore. Il MSB indica il segno del campione. Il MSB viene ottenuto confrontando il campione con un livello di prova di ampiezza nulla. Considerando, per semplicità, una codifica binary-offset (codice zero per il massimo negativo e con tutti i bit ad uno per il massimo positivo), il MSB viene posto ad uno o a zero a secondo che il campione risulti maggiore o minore del livello di prova. Il livello di decisione può essere generato tramite un convertitore D/A opportunamente pilotato, mentre il comparatore può essere realizzato tramite circuiti utilizzanti amplificatori operazionali. Questa prima decisione individua nell'intero intervallo delle ampiezze comprese tra gli estremi di saturazione due semi intervalli, selezionando quello di appartenenza del campione. Il bit immediatamente meno significativo viene ottenuto confrontando il campione con un livello posto a metà del semi intervallo individuato con il MSB. Anche in questo caso, il bit viene posto ad uno o a zero a secondo che il campione risulti maggiore o minore del livello di prova. In tal modo si seleziona tra i quattro possibili intervalli di ampiezza pari ad un quarto della dinamica, quello al quale appartiene il campione. I rimanenti bit vengono determinati in maniera analoga, individuando di volta in volta intervalli di ampiezza via via dimezzata nel quale il campione è compreso. La codifica termina dopo R passi, dove R è il numero di bit.
Passando alla conversione D/A, il convertitori più comuni sono quelli a scala (fig. 2.16). Schematicamente, il segnale di uscita è generato da un operazionale configurato come sommatore. Gli R ingressi sono dati da correnti di ampiezza ordinatamente crescente, in modo tale che l’una risulti il doppio dell’altra. Ciò può essere ottenuto connettendo ad una sorgente di tensione un’opportuna rete resistiva [Tau77]. Nella somma, utilizzare o meno una corrente con un certo peso viene stabilito pilotando degli interruttori (reti a transistor) con i bit del codice.
Fig. 2.17 - Distorsioni presenti nella conversione A/D. Sia nella conversione A/D che nella conversione D/A sono presenti delle distorsioni (fìg. 2.17), che sono la presenza di offset, errori di guadagno e non linearità. In presenza di offset, la caratteristica reale del convertitore risulta essere parallela a quella ideale, data dalla bisettrice del primo e terzo quadrante. In presenza di errori di guadagno, la caratteristica reale risulta essere una retta passante per l’origine, con inclinazione differente da quella della bisettrice. Nel caso di errori di non linearità, la caratteristica non è una retta ed i quanti, dunque, non risultano essere uniformi. Mentre i primi due tipi di errori sono legati alla circuiteria analogica del quantizzatore, il contributo principale all’ultimo tipo di distorsione è dato nella conversione A/D dall'errato posizionamento dei livelli di decisione, che è frutto dalla non proporzionalità della rete resistiva utilizzata nella conversione D/A. Specifico della conversione D/A è la presenza di impulsi spuri sul segnale analogico prodotto durante i transitori tra una conversione e l’altra. Ciò richiede l’adozione di reti di filtraggio che, unitamente ad altri problemi implementativi (es.: jitter, non
linearità e rumore delle componenti analogiche, ecc.), portano a prestazioni dei convertitori A/D e D/A che possono scostarsi sensibilmente da quelle teoriche.