Numero effettivo di bit dell'ADC a 14 bit


18

Ho un ADC a 14 bit . Tuttavia, guardando il foglio dati (vedere la tabella 2 a pagina 5), ​​il numero effettivo di bit (ENOB) è sempre inferiore a 12 bit.

Perché il mio DAC afferma di essere un ADC a 14 bit quando ha solo una precisione a 12 bit? Che senso ha avere due bit extra se sono insignificanti?


1
Anche se potrebbero non essere molto utili in un campionatore a banda larga one-shot come un ambito, sono significativi in ​​applicazioni che si integrano nel tempo come una radio software. Con una delle implementazioni basate su FPGA sarebbe facile aggiungere un bit di modalità per disattivare il mascheramento e vedere la differenza nell'output dei filtri successivi con e senza i bit "fasulli" come input.
Chris Stratton,

1
Ecco come è progettato il chip. Anche se si ottengono i dati a 14 bit, è possibile notare che l'ultimo valore dei dati fluttuerà, a causa dei bit di rumore. Ho usato un ADC a 24 bit - AD7190 e dà solo 18 bit senza rumore.
PsychedGuy,

Risposte:


17

Sei stato impazzito!

Il marketing a 14 bit parla, e anche l'hardware te lo dà, quindi diranno che non hai nulla di cui lamentarti. Appena sopra ENOB nel foglio dati fornisce i numeri SINAD (Signal to Noise and Distortion). Sono 72 dB e 1 bit corrisponde a un livello di 6 dB, quindi 72 dB sono effettivamente 12 bit. I 2 bit più bassi sono rumore.

È possibile recuperare dati che sono inferiori al rumore di fondo, ma ha bisogno di una correlazione molto buona, il che significa che deve essere molto prevedibile.


8
Ok, downvoter, dimmi solo cosa non va qui.
Stevenvh,

3
Forse il downvoter è il progettista dell'IC :-)
stevenvh

3
@Simpl: non necessariamente. Devi leggere la scheda tecnica di qualsiasi A / D che intendi utilizzare. Ci sono molti compromessi da fare nella progettazione di A / D, quindi ciò che puoi ottenere varierà ampiamente. Molti A / D sono validi per contare + -1 / 2, ma come mostra questo esempio, altri no. Come sempre, LEGGI LA SCHEDA TECNICA.
Olin Lathrop l'

4
Questo non è "parlare di marketing". In effetti questo è abbastanza comune sui convertitori ad alte prestazioni utilizzati nelle radio software, ecc. Per molte di queste applicazioni, ad un certo punto nell'elaborazione del segnale filtrerai e effettuerai il downsampling, in modo tale da poter rilevare un segnale a banda stretta con un livello di potenza lontano, lontano, al di sotto del rumore di fondo a banda larga (ma lo si fa nel software, in modo tale da poter posizionare un numero variabile di tali filtri in qualsiasi punto della larghezza di banda desiderata. In una certa misura lo si otterrebbe comunque se si mascherasse il "non affidabile" ma fai meglio con loro che senza di loro.
Chris Stratton,

2
Qualsiasi segnale di larghezza di banda più stretta rispetto all'adc è meglio correlato. Stai liquidando qualcosa di utilità quotidiana come un caso speciale.
Chris Stratton,

14

Supponiamo che si desideri misurare una tensione costante nel modo più preciso possibile, utilizzando un ADC che restituirà un valore di 8 bit per ciascuna misurazione. Supponiamo inoltre che ADC sia specificato in modo che un codice di N venga restituito nominalmente per tensioni comprese tra (N-0,5) / 100 e (N + 0,5) / 100 volt (quindi ad esempio un codice di 47 rappresenterebbe nominalmente qualcosa tra 0,465 e 0,475 volt). Cosa si dovrebbe desiderare di avere l'uscita ADC se alimentato con una tensione di regime costante di 0,47183 volt?

Se l'ADC emette sempre il valore che rappresenta l'intervallo sopra definito in cui rientra l'input (47 in questo caso), quindi, indipendentemente da quante letture si prendono, il valore sembrerà essere 47. Risolvere qualcosa di più fine di quello sarebbe impossibile.

Supponiamo invece che gli ADC siano stati costruiti in modo tale che un valore casuale di "dithering" distribuito linearmente da -0,5 a +0,5 sia stato aggiunto a ciascuna lettura prima di convertirlo in un numero intero? In quello scenario, una tensione di 47.183 volt restituirebbe una lettura di 48, circa il 18,3% delle volte, e un valore di 47 l'altro 81,7% delle volte. Se si calcola la media di 10.000 letture, ci si dovrebbe aspettare che sia circa 47.183. A causa della casualità, può essere leggermente superiore o inferiore, ma dovrebbe essere abbastanza vicino. Si noti che se si prendono abbastanza letture, si può raggiungere un livello arbitrario di precisione attesa, sebbene ogni bit aggiuntivo richiederebbe più del doppio del numero di letture.

Aggiungere esattamente un LSB di dithering distribuito linearmente sarebbe un comportamento molto piacevole per un ADC. Sfortunatamente, implementare tale comportamento non è facile. Se il dithering non è distribuito linearmente, o se la sua grandezza non è precisamente un LSB, la quantità di precisione reale che si potrebbe ottenere dalla media sarebbe fortemente limitata, indipendentemente dal numero di campioni utilizzati. Se invece di aggiungere un LSB di casualità distribuita linearmente, si aggiunge il valore di LSB multipli, il raggiungimento di un determinato livello di precisione richiederà più letture di quanto sarebbe necessario utilizzando la casualità di un LSB ideale, ma il limite ultimo alla precisione che può essere raggiunto prendendo un numero arbitrario di letture sarà molto meno sensibile alle imperfezioni nella fonte del dithering.

Si noti che in alcune applicazioni, è meglio usare un ADC che non ne dica il risultato. Ciò è particolarmente vero nelle circostanze in cui si è più interessati all'osservazione delle variazioni dei valori ADC che ai valori precisi stessi. Se risolvere rapidamente la differenza tra un'unità / campione +3 e una frequenza di aumento di +5 unità / campione è più importante che sapere se una tensione in regime stazionario è precisamente 13,2 o 13,4 unità, un ADC senza dithering può essere migliore di un dithering uno. D'altra parte, l'uso di un dithering ADC può essere utile se si vuole misurare le cose in modo più preciso di quanto consentirebbe una singola lettura.


2

Lezione bonus: ottieni davvero 14 bit di precisione , ma solo 12 bit di precisione .


1
Non dovrebbe essere "risoluzione" anziché "precisione"? La precisione si riferisce all'errore distribuito su conversioni diverse e con il rumore gaussiano sui due LSB che sarà anche a 12 bit.
Stevenvh,

Sono andato a leggere alcune definizioni e credo che tu abbia ragione. Tendo a evitare la "risoluzione" in questa era dei video, ma è ancora il termine migliore. Penso che forse al liceo, non spiegassero bene la precisione.
Gbarry,

1

Un avvertimento aggiuntivo ... a volte in realtà vuoi casualità .

Per esempio:

Nelle applicazioni crittografiche (sicurezza / autenticità) è richiesta casualità "non indovinabile". L'uso di LSB di un convertitore (quelli al di sotto del livello di rumore) è un modo rapido per generare numeri puramente casuali.

Quando l'hardware ADC è disponibile per altri scopi (sensori e simili), è un modo semplice e veloce per seminare comunicazioni sicure. È possibile migliorare l'effetto massimizzando il guadagno sull'amplificatore di ingresso, se disponibile (molti MCU offrono tale funzione) e spostando l'ingresso.

La casualità dell'ADC deriva principalmente da due principi fisici: rumore di quantizzazione e rumore termico.

Questi effetti hanno una soglia a livello macroscopico. Ad esempio, i numeri sufficientemente lontani dal limite dei bit non devono essere arrotondati e quindi non si verificano errori di quantizzazione o casualità. Il rumore termico non influisce sui bit più significativi nella conversione nella maggior parte degli scenari.

Per estensione, puoi vedere che variare i parametri di conversione (tempo di campionamento, profondità, frequenza, tensione di riferimento) influirà sul cambiamento nella casualità dei risultati spostando la soglia di casualità (aumentandola aumentandola o diminuendola abbassando la soglia ). Un effetto simile si ottiene variando i parametri ambientali / di sistema (temperatura, alimentazione, ecc.).

Detto questo, molti generatori di numeri casuali di hardware commerciale di successo si affidano a questa tecnica perché gli effetti esterni riducono solo la casualità - non la eliminano affatto (fisicamente impossibile).

Puoi compensare una riduzione della casualità facendo più conversioni e aggiungendo i risultati. Questo processo di estensione dei bit (concatenazione dei bit bassi delle conversioni successive) viene utilizzato nei dongle Nucleo STM32, nell'FST-01 (incluso NeuG 1.0), nella famiglia di dispositivi LE Tech Grang e in molti altri.

I dispositivi Grang generano bit convertendo in oltre 400 milioni di conversioni al secondo (1 bit per conversione). Se fai abbastanza conversioni puoi garantire un'elevata casualità anche di fronte alle condizioni ambientali.


2
È una pessima idea presumere che il rumore ADC sia una buona fonte di rumore casuale. È del tutto probabile che sia correlato ad altre cose in corso nel circuito, alla temperatura IC e molte altre cose. Se hai bisogno di casualità autentica, assicurati di testare la tua fonte!
Connor Wolf,

"Testare la tua fonte" è un requisito ovvio in qualsiasi schema. Tuttavia, non è affatto "una pessima idea" ... anche se correlata alla temperatura. Ciò riduce solo la casualità, non la elimina. È possibile compensare tramite l'estensione dei bit (concatenazione dei bit bassi delle conversioni successive).
DrFriedParts

Ho detto che è una cattiva idea da assumere , non una cattiva idea in generale. Se testerai a fondo la casualità della tua sorgente di rumore ADC e questa verificherà, non avrei problemi.
Connor Wolf,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.