CARATTERIZZAZIONE DEI CONVERTITORI ANALOGICO-DIGITALE
1.1 IL CONVERTITORE ANALOGICO-DIGITALE IDEALE
Funzionalmente un’ADC è un dispositivo che accetta al suo ingresso un segnale di tensione e
fornisce in uscita un set di segnali elettronici binari rappresentanti un codice numerico, il cui
valore è proporzionato, in base ad un opportuno segnale di riferimento, al segnale di ingresso.
In un dispositivo privo di rumore, la transizione di un codice di uscita ad un altro codice per un
punto di transizione tra due livelli di quantizzazione, si dovrebbe avere per un cambio
infinitesimo di quel potenziale di ingresso, inoltre il codice di uscita, che rappresenta il livello di
ingresso, dovrebbe istantaneamente apparire non appena compare il segnale di ingresso.
Nella realtà il processo di conversione complessivo del segnale analogico in segnale digitale implica la successione
di quattro processi distinti: campionamento, mantenimento, quantizzazione e codifica, che per ovvie limitazioni
fisiche non consentono una realizzazione ideale del processo di conversione[15].
Il campionamento ed il mantenimento vengono effettuati insieme in un circuito chiamato
Sample&Hold e cosi pure la quantizzazione e codifica vengono eseguite insieme, in un circuito
chiamato convertitore analogico-digitale “ADC”.
Il processo di trasformazione dei campioni in forma digitale implica necessariamente delle
approssimazioni legate al fatto che il numero di uscite possibili è di numero finito e legato al
numero di bit associati ad ogni campione. Questo processo di approssimazione prende il nome di
quantizzazione ed è mostrato in fig.1.1
Vo
Vq(t)
Q
V5
V4
V3
V2
V1
fig1.1a
fig1.1b
t1
t2 t3 t4 t5
t6 t
Vi
t1
t2
t3
t4
t5
t6
fig. 1.1c
fig. 1.1 : processo di quantizzazione di un’ADC
E’ illustrato un segnale Vq(t) che rappresenta la forma d’onda del segnale di ingresso Vi
quantizzato. L’uscita del quantizzatore è indicata con Vo. Il quantizzatore presenta una
caratteristica ingresso-uscita, detta anche funzione di trasferimento, avente l’andamento a gradini
illustrato in fig.1.1a. Di conseguenza l’uscita Vo è la forma d’onda quantizzata Vq(t). Si noti che
mentre l’ingresso Vi=V(t) varia nel suo campo di valori in maniera continua, il segnale
quantizzato Vo=Vq(t) varia passando dall’uno all’altro di un certo numero di livelli fissi V1, V2,
V3, V4, V5. Il segnale Vq(t) quindi o si mantiene costante o cambia di colpo di un gradino Q,
chiamato gradino o passo di quantizzazione.
Il segnale quantizzato è pertanto un’approssimazione del segnale originario, il cui grado di
approssimazione può essere migliorato riducendo l’ampiezza dei passi, aumentando cioè il
numero dei livelli disponibili.
Il funzionamento di un’ADC ideale è completamente definito una volta che siano stati assegnati
il numero di bit con cui avviene la codifica, la frequenza di campionamento (pari al numero di
campioni del segnale prelevati nell’unità di tempo) e il range di valori del convertitore. Se B è il
numero di bit del convertitore, allora i suoi valori di uscita saranno 2 B , e la minima variazione
dell’ingresso (passo di quantizzazione o LSB, bit meno significativo) in grado di produrre una
variazione dell’uscita sarà data dal rapporto tra ampiezza del range di conversione e 2 B .
L’operazione di assegnazione ad ogni livello quantizzato di un codice univoco tra i 2 B possibili
viene detta codifica. L’unico errore che comporta l’uso di un’ADC ideale è l’errore (detto anche
rumore) di quantizzazione, definito come la differenza tra l’uscita e l’ingresso del quantizzatore
(fig.1.2). Si dimostra che il rumore di quantizzazione in tutti i casi di interesse pratico può essere
schematizzato come un rumore bianco uniformemente distribuito in (-LSB,+LSB) di valore
efficace è pari a LSB / 12 .
e(V )
LSB =
V max − V min
2B
+LSB
V m in
V m ax
V
-LSB
fig.1.2 : errore di quantizzazione di un’ADC nel caso di ingresso a rampa
L’insieme dei processi menzionati possono essere riassunti nella descrizione della funzione di
trasferimento che, assegnato il range di conversione, il numero di bit richiesti per rappresentare
un campione e la codifica di conversione descrive, in maniera ideale, il comportamento di
un’ADC lineare.
1.2 CONVERTITORE ANALOGICO-DIGITALE REALE
In tutti i casi di interesse pratico un’ADC è ben lontano dal presentare un comportamento ideale;
la caratteristica di trasferimento, in presenza di un segnale di ingresso costante, generalmente
appare molto vicina a quello ideale mentre, in condizioni di funzionamento dinamiche, può
scostarsi notevolmente da essa. In altre parole, la funzione di trasferimento dipende fortemente
dalla velocità di variazione (slew rate) del segnale d’ingresso.
La divergenza tra la caratteristica statica e quella dinamica è causata principalmente dai tempi di
risposta, dai tempi di assestamento e da limitazioni della slew rate dei dispositivi attivi che fanno
parte dell’ADC, nonché dalle inevitabili imprecisioni dovute al circuito di temporizzazione.
Si riportano alcune tra le possibili sorgenti di errore, anticipando già da ora che la maggior parte
di queste è dovuta alla sezione analogica del convertitore[1].
•
Accuratezza e guadagno del riferimento di tensione
•
Accuratezza e guadagno dei comparatori
•
Rumore dei comparatori
•
Errori dipendenti dal tempo
•
Accuratezza e stabilità delle resistenze
•
Rumore generato dalle resistenze
•
Offset degli amplificatori
•
Variazioni della tensione di alimentazione
Difficilmente accade che tutti questi errori producano effetti che si vanno a sommare nella medesima direzione;
d’altra parte non si può neanche pensare semplicisticamente di fare la media di tutti questi effetti per evidenziare la
qualità delle prestazioni dell’ADC; la caratterizzazione di un’ADC è invece una materia piuttosto vasta e dibattuta,
tanto che una vera e propria standardizzazione non esiste.
1.3 TESTING PER ADC LINEARI
Profondamente convinti che un’affidabile metodologia di caratterizzazione di un’ADC debba
essere orientata al tipo di architettura e tecnica utilizzate per la realizzazione dell’ADC
medesimo è innegabile che, a sua volta, debba risultare universalmente valida e applicabile ad
ogni tipo ADC in modo da poter fornire materia di riscontro e comparabilità con altre tecniche, si
descrivono qui i principali tipi di testing per convertitori presenti in letteratura, dai quali si
attingerà per la realizzazione di nuove procedure di testing: bit effettivi, metodo degli
istogrammi, metodo della FFT.
1.3.1 Bit effettivi
È questo uno dei test più usati per caratterizzare globalmente il funzionamento dinamico degli ADC. Esso permette
di mediare insieme tutti gli errori dovuti a non linearità, incertezza di apertura e rumore, attraverso un parametro
(numero dei bit effettivi) che rappresenta una misura di quanto influiscono questi errori sul funzionamento
complessivo dell’ADC ad una data frequenza.
Il numero di bit effettivi può essere considerato come il numero di bit di un convertitore ideale il
cui valore efficace del rumore di quantizzazione (unico errore) è uguale al valore efficace
dell’errore totale esibito dall’ADC in prova[4].
Per un convertitore ideale il valore efficace dell’errore di quantizzazione è[Appendice D]:
1.1
Erms =
LSB
range
=
12
12 ∗ 2 B
dove B è il numero di bit.
Il numero di bit effettivi Beff può essere definito, basandosi sull’equazione precedente, come
1.2 Beff = log 2
range
,
12 Erms
dove Erms è il valore efficace dell’errore prodotto dall’ADC in prova.
La definizione più frequente, è in ogni caso:
1.3
Beff = B − log 2
errore rms effettivo
,
errore rms ideale
in cui B è il numero di bit “nominale” dell’ADC, l’Errore quadratico medio ideale (Erms ideale)
è il valore efficace dell’errore che si otterrebbe forzando un convertitore ideale con lo stesso
segnale d’ingresso usato per l’ADC in prova e l’Erms effettivo è il valore efficace della
differenza tra i dati in uscita dell’ADC e la sinusoide d’ingresso.
1.3.2 Determinazione dei bit effettivi
Il numero di bit effettivi viene calcolato mediante la 1.3, analizzando l’insieme dei dati d’uscita
dell’ADC. I dati sono ottenuti a partire da una sinusoide di frequenza assegnata e di ampiezza
pari al range del convertitore. L’analisi consiste nel generare, per mezzo di un apposito algoritmo
detto “algoritmo di fitting”, la sinusoide che meglio si adatta ai dati di uscita. La sinusoide cosi
stimata viene usata per calcolare l’Erms effettivo mediante la 1.3.
In pratica si suppone che i dati all’uscita dell’ADC siano stati generati a partire dalla sinusoide
stimata, è necessario procedere così perché qualche parametro della sinusoide di ingresso reale
potrebbe non essere noto con precisione.
L’errore rms ideale, nella 1.3, è l’errore di quantizzazione di un convertitore ideale forzato in
ingresso con la sinusoide stimata; tale errore non viene calcolato, ma è assunto pari a LSB / 12
cosa lecita a patto che il LSB sia sufficientemente piccolo rispetto al valore efficace del segnale.
Il calcolo dei bit effettivi va ripetuto più volte usando sinusoidi di frequenze diverse, fino a
coprire tutto l’intervallo di utilizzo pratico dell’ADC. Il risultato sarà il diagramma dei bit
effettivi esibiti dal convertitore in funzione della frequenza.
Per la riuscita del test è determinante la purezza della sinusoide usata come segnale di prova,
perché qualunque differenza tra la sinusoide ricostruita e i dati d’uscita dell’ADC stesso viene
attribuita a errori del convertitore stesso.
È fondamentale sottolineare che la frequenza della sinusoide di prova non deve essere in
rapporto armonico con la frequenza di campionamento, ignorando questo accorgimento, si andrà
incontro a una serie di problemi:
•
I bit effettivi non saranno rappresentativi dell’intera funzione di trasferimento dell’ADC,
perché verranno ripetuti più volte solo alcuni tra tutti i possibili codici del convertitore.
Alcune armoniche si sovrapporranno alla fondamentale a causa dell’aliasing, risultandone un
rapporto segnale-rumore, e quindi un numero di bit effettivi, più alto di quello reale.
•
Calcoli consecutivi del numero di bit effettivi porteranno a risultati che potrebbero differire
per più di 1 bit effettivo.
Per essere certi di usare tutta la dinamica del convertitore, si dovrà utilizzare una sinusoide di
prova di ampiezza tale da coprirne l’intero range. Bisogna prestare attenzione a scegliere
l’ampiezza del segnale in modo che non risulti maggiore della portata, altrimenti la distorsione
dovuta alla saturazione dell’ADC verrà attribuita erroneamente, alla zona lineare della sua
funzione di trasferimento e i risultati del test non saranno più validi.
1.3.3 Considerazioni sui bit effettivi
Il test dei bit effettivi consente di ottenere un singolo parametro globale che tiene conto di tutte
le imperfezioni presentate dall’ADC in prova; ciononostante è possibile ottenere utili
informazioni sui vari contributi dell’errore dell’ADC ripetendo il test in condizioni differenti.
•
La diminuzione del numero di bit effettivi dovuta al rumore, non dipende dalla frequenza e
dall’ampiezza del segnale di prova, nel senso che il termine di errore nella 1.3, per questo
tipo di errore, risulta indipendente dalle condizioni in cui si esegue il test.
•
L’incertezza di apertura può essere identificata perché genera un errore che è funzione della
slew rate dell’ingresso. Quando la causa principale di errore dell’ADC è proprio l’incertezza
di apertura, il numero di bit effettivi varierà linearmente con la frequenza e con l’ampiezza
del segnale di ingresso.
•
La distorsione armonica è una funzione non lineare della frequenza e dell’ampiezza del
segnale di prova. Si manifesta con la presenza di armoniche nell’errore residuo, l’ampiezza
delle quali può essere determinata stimando le sinusoidi che meglio approssimano l’errore
residuo alle frequenze multiple della fondamentale. Dopo aver stimato le varie armoniche, è
possibile cancellarle dai dati, e ripetere il calcolo dei bit effettivi e dell’errore residuo.
È necessario sottolineare un punto fondamentale: gli errori che provocano una diminuzione del
numero di bit effettivi sono quelli dovuti alla distorsione armonica, al rumore e all’incertezza di
apertura, mentre gli errori sul guadagno, sull’offset e sulla fase non influenzano il risultato del
test, perché vengono ignorati dall’algoritmo di fitting. Questo implica che i bit effettivi da soli
non bastano a descrivere completamente il funzionamento dinamico dell’ADC.
1.3.4 Test degli istogrammi
La tecnica della verifica mediante istogrammi permette di valutare gli errori locali dell’ADC, e
allo stesso tempo, di ottenere una certa descrizione globale del suo funzionamento.
Il test consiste nell’inviare in ingresso al convertitore segnali sinusoidali a frequenze diverse che
non siano in rapporto armonico con la frequenza di campionamento. L’ampiezza delle armoniche
deve essere pari al range del convertitore; anzi in questo test è addirittura preferibile che
l’ampiezza risulti leggermente maggiore della portata. Dopo aver prelevato un numero di
campioni del segnale d’uscita statisticamente significativo, si rappresenta con un istogramma la
distribuzione delle frequenze relative di ciascun codice.
Se il convertitore in prova fosse ideale, l’istogramma riprodurrebbe la funzione di densità di
probabilità (pdf) della sinusoide descritta dall’equazione:
1.4
p (V ) =
1
π ( A2 − V 2 )
dove A è l’ampiezza della sinusoide, V è la tensione del segnale di ingresso e p(V) la pdf.
In fig.1.3 si mostra la pdf di un segnale sinusoidale con offset e ampiezza uguale a 2.5 V.
fig. 1.3 : densità di probabilità della funzione sinusoidale
Il numero di campioni da prendere per ottenere una buona approssimazione della pdf effettiva e
assicurare quindi la ripetitività delle misure, dipende dalla affidabilità richiesta.
1.3.5 Valutazione della non linearità differenziale
La non linearità differenziale è uno dei parametri più interessanti che possono essere valutati
usando il test degli istogrammi. Come già in precedenza ricordato la non linearità differenziale è
una misura di quanto la larghezza effettiva di ogni gradino della caratteristica dell’ADC si scosta
dal suo valore ideale di 1 LSB.
Se un particolare livello di quantizzazione è più ampio della larghezza ideale, il codice
corrispondente accumulerà più conteggi di quelli attesi; allo stesso modo, un gradino più stretto
della larghezza ideale sarà contato meno volte.
I codici mancanti potranno essere individuati senza difficoltà, perché non accumuleranno alcun
conteggio.
La fig.1.4 mostra l’istogramma di un’ADC in presenza di un errore di non linearità differenziale
(perdita di codice); il picco corrisponde a un livello di quantizzazione più ampio che 1 LSB, la
mancanza di conteggio in alcuni intervalli rivela la perdita del codice corrispondente a
quell’ampiezza di ingresso specifica.
È possibile ottenere una valutazione quantitativa della non linearità differenziale in base alle
considerazioni che seguono. Se il segnale d’ingresso del convertitore fosse una rampa, o meglio
una forma d’onda triangolare, la sua pdf sarebbe uniforme in (0,2∗A), con A ampiezza del
segnale. La larghezza del k-esimo livello di quantizzazione Qk è allora pari al prodotto di 2A per
la probabilità che si presenti quel livello. Nel caso di un’ADC ideale, di range V pari proprio a
2A, calcolando in questo modo Qk, si ottiene l’LSB, dato che Qk = V 2 B , qualunque sia k. Se
l’ADC non è ideale, la larghezza di ogni livello di quantizzazione può essere calcolata come:
1.5 Qk = V
xk
,
N
dove Qk è la larghezza del k-esimo livello di quantizzazione, V è il range dell’ADC, xk è il
numero di conteggi accumulati dal k-esimo codice, N è il numero totale di campioni.
Il rapporto preale(k)=xk/N rappresenta la probabilità che si presenti il k-esimo codice nel caso di
un’ADC reale (con errori di non linearità differenziale).
fig. 1.4 : istogramma di un’ADC lineare (B=7) con perdita di codice
La non linearità differenziale relativa al k-esimo codice, in LSB, è data da[8]:
1.6 DNL( LSB ) =
Qk
p (k )
− 1 = reale
− 1,
LSB
pideale (k )
in cui pideale va calcolata in base alla pdf uniforme.
Se il segnale d’ingresso non fosse una rampa, ma una sinusoide, è ancora possibile calcolare la
non linearità differenziale con l’equazione precedente, in cui però pideale va calcolata integrando
la pdf della sinusoide, sull’intervallo di 1 LSB relativo al k-esimo codice:
1.7
Pideale ( k ) =
V [ ( k − 1) − 2 B −1 ] ⎤
1 ⎡ −1 V ( k − 2 B −1 )
−1
)
−
sin
(
)⎥ ,
⎢ sin (
π⎣
A2 B
A2 B
⎦
dove V è il range dell’ADC, B è il numero di bit, k è il codice, A l’ampiezza della sinusoide di
ingresso.
Per evitare che il valore di preale vari troppo in corrispondenza dei massimi e dei minimi della
sinusoide, è necessario che l’ampiezza della curva sia leggermente maggiore della portata
dell’ADC. Si noti che per calcolare la non linearità differenziale, è necessario conoscere con
precisione l’ampiezza della sinusoide in ingresso. Se, a causa della larghezza di banda limitata
dell’ingresso, il segnale visto dal convertitore risulta attenuato, l’ampiezza della sinusoide che si
utilizza nei calcoli (e che è stata utilizzata per programmare il generatore sinusoidale) risulterà
inferiore a quella effettiva, e la non linearità differenziale sarà stimata per eccesso. Il diagramma
della non linearità differenziale presenterà due picchi agli estremi, come quello della pdf della
sinusoide (vedi fig.1.5).
fig.1.5 : istogramma ADC (B=7) con ampiezza del segnale di ingresso minore del range
Se invece l’ampiezza effettiva dell’ingresso dell’ADC è maggiore di quella teorica, usata nei calcoli, il diagramma
della non linearità presenterà un numero di conteggi maggiore agli estremi del range di conversione (vedi fig.1.6).
fig.1.6 : istogramma ADC (B=7) con ampiezza del segnale di ingresso maggiore del range
Per ottenere una valutazione completa del comportamento dinamico dell’ADC, il test deve essere
ripetuto più volte, usando sinusoidi di frequenza variabile da 1/100 a ½ della frequenza di
campionamento, e calcolando ogni volta il massimo valore della non linearità differenziale, si
ottiene cosi l’andamento dell’errore di non linearità differenziale in funzione della rapidità di
variazione del segnale d’ingresso.
1.3.6 Valutazione degli errori di guadagno e di offset
La verifica mediante istogrammi permette di rivelare gli errori di guadagno e di offset dell’ADC.
Se la sinusoide in ingresso è senza offset, l’istogramma risulterà simmetrico rispetto al codice
d’uscita corrispondente alla metà della portata, in caso contrario risulterà asimmetrico come
presentato in fig.1.7.
Gli errori sull’offset potranno essere rilevati osservando di quanto l’istogramma dell’ADC in
prova si scosta dalla situazione ideale (si noti però, che se un’ADC ideale effettua la
quantizzazione prendendo la parte intera del rapporto tra i dati e l'LSB, nel segnale d'uscita verrà
introdotto un offset addizionale di -0.5 LSB).
Fig.1.7 : istogramma ADC (B=7) con errore di offset
Errori elevati sul guadagno possono essere rilevati osservando la larghezza dell’istogramma, e
confrontandola con l’ampiezza “nota” del segnale d’ingresso.
1.3.7 Valutazione dell’incertezza di apertura
L’incertezza di apertura può essere stimata con il test degli istogrammi sincronizzato: mediante
una base dei tempi esterna, si sincronizza il segnale d’ingresso dell’ADC in prova, col segnale di
comando per la conversione. Se non ci fosse incertezza di apertura, il codice d’uscita del
convertitore sarebbe lo stesso, perché il segnale verrebbe campionato sempre nello stesso punto,
invece, la presenza di spostamenti dell’istante di campionamento nell’intorno del punto ideale,
causano una variazione del codice di uscita.
Prendendo un numero statisticamente significativo di campioni del segnale e costruendo
l’istogramma delle frequenze relative dei codici, vedi fig.1.8, è possibile rilevare una certa
dispersione dei codici intorno a un valore centrale.
L’incertezza di apertura potrà essere stimata valutando la deviazione standard dell’istogramma
in LSB, per diversi valori della frequenza e dell’ampiezza del segnale di ingresso. Infatti, se il
segnale di prova è una sinusoide di ampiezza A e frequenza f, l’errore causato dall’incertezza di
apertura è dato da Dv=A2πfDt. Mediante il test dell’istogramma sincronizzato è possibile
conoscere il valore efficace di Dv in LSB, e quindi valutare il valore efficace dell’incertezza di
apertura come[12]:
1.8
Dtrms = Dvrms
LSB
.
A2πf
Lo strumento che più influisce sui risultati di questo test è la base dei tempi esterna, che
ovviamente dovrà fornire una temporizzazione più precisa di quella dell’ADC in prova.
fig.1.8 : istogramma dell’incertezza di apertura
1.3.8 Test della FFT
Questo metodo permette di caratterizzare il comportamento dinamico di un’ADC mediante la
Trasformata Discreta di Fourier (DFT), si lavora dunque nel dominio della frequenza[12].
Il segnale di prova è ancora una volta una sinusoide armonicamente pura e il risultato una
rappresentazione del modulo della DFT (calcolata con un algoritmo FFT) dei dati forniti dal
convertitore. Tale spettro sarà costituito, in generale, da una riga che rappresenta la sinusoide
d’ingresso, a cui si aggiungeranno rumore e altre armoniche generate dall’ADC in prova.
Mentre la Trasformata di Fourier di un segnale continuo nel tempo sa(t) è definita come:
+∞
1.9 S a ( f ) =
∫ s (t )e
s
− j 2πft
dt ,
−∞
la DFT, che fornisce una rappresentazione in frequenza di una sequenza di durata finita s(n), è
data da:
N −1
1.10 S a (k ) = ∑ s (n)e − j 2πkn / N , k=0,1,...,N-1.
n =0
Nel presente caso s(n)=sa(nTc), n=0,1,…,N-1, in cui Tc=1/fc è l’intervallo di campionamento e
N è il numero di campioni; se To è la durata totale del segnale analogico sa(t), allora si ha:
1.11 Sa ( k / To ) = Tc S ( k ) = Tc ∑ sa ( nTc ) e− j 2πkn / N ,
k=0,1,...,N-1
n
La DFT rappresenta, a meno di un fattore di scala Tc, il campionamento in frequenza della
trasformata di Fourier Sa(f), con passo 1/To.
Si noti che questi risultati sono validi nell’ipotesi che sa(t) abbia la durata e la banda limitate. In
realtà lo spettro di un segnale di durata finita ha estensione infinita, perché il troncamento del
segnale nel tempo comporta la convoluzione del suo spettro con la trasformata della finestra
rettangolare. Le approssimazioni fatte nel definire la DFT provocheranno perciò alcuni effetti.
Il primo è che l’energia ad una data frequenza si distribuirà nell’intorno della stessa, provocando
la dispersione spettrale. Per ridurre questo effetto bisogna sostituire la finestra rettangolare con
delle finestre più opportune. Una funzione che viene comunemente usata è la finestra di
Hanning.
In fig.1.9 sono mostrate le finestre e le loro trasformate. Si noti che sia la funzione, sia la sua
derivata tendono a zero ai due estremi dell’intervallo temporale in cui sono definite; il lobo
principale della trasformata è largo il doppio di quello della finestra rettangolare, e inoltre le
ampiezze dei lobi laterali decadono di 18dB per ottava. Il minore livello dei lobi laterali riduce la
dispersione spettrale, ma la maggiore larghezza del lobo principale limita la risoluzione in
frequenza (cioè la capacità di distinguere due sinusoidi molto vicine in frequenza). Per l'analisi
spettrale mediante DFT, la finestra di Hanning dà buoni risultati sia per quello che riguarda la
risoluzione in frequenza sia per quello che riguarda la risoluzione in ampiezza.
fig.1.9 a) : Trasformata di Fourier della finestra rettangolare
fig.1.9 b) : finestra di Hanning nel dominio del tempo e della frequenza
Il secondo effetto provocato dalla estensione infinita dello spettro di un segnale analogico
limitato nel tempo, è l’aliasing. Il processo di campionamento causa una replica dello spettro del
segnale analogico Sa(f) nell’intorno dei multipli interi della frequenza di campionamento fc. Se
Sa(f) contiene componenti a frequenza superiore a fc/2, allora, in S(k), tali componenti verranno
“ripiegate” al di sotto di fc/2.
fig.1.10 : FFT ADC, B=8 con fs>fc/2 in presenza di non linearità integrale
Il risultato è che la DFT del segnale campionato non sarà più rappresentativa dello spettro del
segnale analogico. Per evitare questa sovrapposizione delle code spettrali è necessario che la
massima frequenza d’ingresso sia inferiore a fc/2.
Attraverso lo studio della DFT del segnale campionato è possibile ricavare utilissime
informazioni circa il rumore, la distorsione armonica e il livello delle spurie nell’ADC in prova.
1.3.9 distorsione armonica
Il metodo della FFT consente di misurare gli effetti dovuti ad una non linearità integrale. Un
errore di non linearità integrale implica infatti la curvatura della funzione di trasferimento di
un’ADC. Se il segnale d'ingresso di un tale convertitore è una sinusoide di frequenza fo, in uscita
si avranno delle armoniche di ordine superiore ad fo.
Il test viene eseguito nel seguente modo. Una sinusoide di ampiezza pari al range viene inviata in
ingresso al convertitore attraverso un filtro passa basso, il segnale viene convertito facendo
lavorare l’ADC alla sua massima frequenza di campionamento e la DFT dei dati viene calcolata
mediante un algoritmo FFT (vedi fig.1.11).
Se la frequenza della sinusoide d’ingresso fo è molto minore della frequenza di Nyquist fc/2,
allora le armoniche di fo saranno in 2fo,3fo,e cosi via.
Viceversa, se le armoniche di fo cadono al di là di fc/2, allora queste frequenze saranno ripiegate
al di sotto di fc/2.
La frequenza della sinusoide di prova va scelta in modo che le varie armoniche siano
sufficientemente distanziate per distinguerle facilmente dalla fondamentale. Una scelta errata
può provocare la sovrapposizione di alcune armoniche sulla fondamentale, portando ad una
sottovalutazione della distorsione introdotta dal convertitore.
fig. 1.11 : FFT ADC ideale, B=8 con segnale di ingresso sinusoidale
Esaminando la DFT è possibile determinare il contenuto di spurie introdotto dall’ADC; cioè di
quelle componenti spettrali che non sono in rapporto armonico con la frequenza del segnale di
ingresso. Queste spurie, a causa delle non linearità, potranno combinarsi con il segnale
d’ingresso producendo un’ulteriore distorsione di intermodulazione (fig.1.13).
fig.1.12 : FFT ADC B=8 in presenza di non linearità integrale
fig.1.13 : FFT ADC B=8,in presenza di spurie, con segnale sinusoidale in ingresso
1.3.10 Rumore di fondo
Con il metodo della FFT si possono ottenere anche informazioni utili riguardanti l’incertezza di
apertura e le non linearità differenziali.
Le non linearità differenziali provocano delle forti discontinuità nell’andamento temporale del
segnale convertito che nel dominio della frequenza sono rilevabili attraverso un ulteriore
aumento del livello del rumore (fig 1.14).
Il rumore relativo all’incertezza di apertura dipende dalla slew rate del segnale d’ingresso
nell’istante di campionamento; quando questa è la principale causa di rumore in un’ADC, il
livello del rumore nella DFT dei campioni crescerà linearmente all’aumentare della frequenza
Fig.1.14 : FFT ADC B=8 in presenza di non linearità differenziale
1.4 SCELTA DELL’AMPIEZZA DEL SEGNALE
E’ importante usare come segnali di prova sinusoidi di ampiezza pari al range del convertitore,
perché, se l’ampiezza è minore, i risultati possono non rispecchiare il reale funzionamento del
dispositivo. Questo può accadere per due motivi.
•
Usando una sinusoide di ampiezza pari, ad esempio, alla metà del range, viene impegnata
soltanto la metà di tutti i possibili codici; se ci sono problemi sull’altra metà dei codici, alla
fine saremo portati a sopravvalutare le prestazioni del convertitore.
•
Il funzionamento del convertitore dipende dalla slew rate dell’ingresso. Una sinusoide che
copre tutta la portata è più impegnativa per l’ADC perché ha una slew rate doppia rispetto a
quella di una sinusoide della stessa frequenza, ma di metà ampiezza.
1.5 SCELTA DELLA FREQUENZA DELLA SINUSOIDE
Il rapporto tra la frequenza della sinusoide o della fondamentale e la frequenza di
campionamento dell’ADC rappresenta il numero dei campioni che cadono in un periodo della
sinusoide; se il rapporto è intero, allora i codici all’uscita dell’ADC si ripeteranno dopo ogni
periodo; se il rapporto è razionale del tipo m/n , con m e n interi, allora i codici si ripeteranno
dopo m campioni (n periodi del segnale di ingresso).
Se la frequenza della sinusoide è tale che i campioni coprono più di un ciclo di ripetizione dei
codici, alcuni di questi si presenteranno più volte e, se saranno buoni codici, si
sopravvaluteranno le prestazioni del convertitore perché gli errori calcolati risulteranno più
piccoli di quelli reali. Invece, scegliendo opportunamente la frequenza della sinusoide e il
numero di campioni, si otterranno dei dati con molti codici differenti, e gli errori calcolati
saranno rappresentativi dell’effettivo funzionamento del convertitore.
Un’altra ragione per evitare
rapporti interi tra la frequenza del segnale e quella di
campionamento, è perché, a causa dell’aliasing, alcune armoniche possono sovrapporsi alla
fondamentale portando a un rapporto segnale-rumore più alto di quello effettivo.
Le misure vengono condotte facendo funzionare l’ADC alla sua massima frequenza di
campionamento, e inviandogli in ingresso parecchi segnali sinusoidali a frequenze che
tipicamente sono nell’intorno di 1/100, 1/50, 1/4, 1/2 della frequenza di campionamento. Negli
ultimi due casi il segnale, tra un campione e l’altro, varia rispettivamente della metà e dell’intera
portata del convertitore, per questo il test risulta essere molto stringente.
1.6 NUMERO DI CAMPIONI
Per garantire la ripetibilità delle misure è necessario prendere un numero di campioni
statisticamente significativo. Ad esempio, per un’ADC a 10 bit, 1024 campioni non garantiscono
che sia stata prodotta una parte significativa di tutti i possibili codici.
Una trattazione specifica su questo argomento viene presentata nell’appendice C.
Scarica

CARATTERIZZAZIONE DEI CONVERTITORI ANALOGICO