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.