Número efectivo de bits de ADC de 14 bits

18

Tengo un ADC de 14 bits . Sin embargo, al mirar la hoja de datos (consulte la tabla 2 en la página 5), ​​el número efectivo de bits (ENOB) siempre es inferior a 12 bits.

¿Por qué mi DAC afirma ser un ADC de 14 bits cuando solo tiene una precisión de 12 bits? ¿Cuál es el punto de tener dos bits adicionales si no tienen sentido?

Randomblue
fuente
1
Si bien pueden no ser muy útiles en un muestreador de banda ancha de un solo disparo como un alcance, son significativos en aplicaciones que se integran con el tiempo, como una radio de software. Con una de las implementaciones basadas en FPGA, sería fácil agregar un bit de modo para alternar el enmascaramiento y ver la diferencia en la salida de los filtros posteriores con y sin los bits 'falsos' como entrada.
Chris Stratton
1
Así es como está diseñado el chip. Incluso si obtiene los datos de 14 bits, puede notar que el último valor de los datos fluctuará y eso se debe a los bits de ruido. He usado un ADC de 24 bits - AD7190 y me da solo 18 bits libres de ruido.
PsychedGuy

Respuestas:

17

¡Has sido engañado!

14 bits es marketing, y el hardware también le da eso, por lo que dirán que no tiene nada de qué quejarse. Justo encima de ENOB en la hoja de datos, proporciona los números SINAD (Señal de ruido y distorsión). Eso es 72 dB, y 1 bit corresponde a un nivel de 6 dB, por lo que 72 dB es de hecho 12 bits. Los 2 bits más bajos son el ruido.

Es posible recuperar datos que son más bajos que el ruido de fondo, pero necesita una muy buena correlación, lo que significa que tiene que ser muy predecible.

stevenvh
fuente
8
Ok, votante, solo dime qué pasa aquí.
stevenvh
3
Tal vez el downvoter es el diseñador del IC :-)
stevenvh
3
@ Simpl: No necesariamente. Debe leer la hoja de datos de cualquier A / D que planee usar. Hay muchas compensaciones por hacer en el diseño de A / D, por lo que lo que puede obtener variará ampliamente. Muchos A / D son buenos para contar + -1 / 2, pero como muestra este ejemplo, algunos no lo son. Como siempre, LEA LA HOJA DE DATOS.
Olin Lathrop
44
Esto no es "hablar de marketing". De hecho, esto es bastante común en los convertidores de alto rendimiento que se usan en las radios de software, etc. Para muchas de esas aplicaciones, en algún momento del procesamiento de la señal filtrará y disminuirá la muestra, de modo que pueda detectar una señal de banda estrecha con un nivel de potencia muy lejano, lejos, debajo del nivel de ruido de banda ancha (pero lo hace en software, de modo que puede colocar un número variable de dichos filtros en cualquier parte del ancho de banda que desee. En cierta medida, lo obtendría de todos modos si simplemente enmascarara lo "poco confiable" bits, pero lo haces mejor con ellos que sin ellos.
Chris Stratton
2
Cualquier señal de ancho de banda más estrecho que el ADC está mejor correlacionada. Estás descartando algo de utilidad cotidiana como un caso especial.
Chris Stratton
14

Suponga que uno desea medir un voltaje estable con la mayor precisión posible, utilizando un ADC que devolverá un valor de 8 bits para cada medición. Supongamos además que se especifica ADC para que un código de N se devuelva nominalmente para voltajes entre (N-0.5) / 100 y (N + 0.5) / 100 voltios (por ejemplo, un código de 47 representaría nominalmente algo entre 0.465 y 0.475 voltios). ¿Qué debería desear tener la salida ADC si se alimenta un voltaje de estado estable de exactamente 0.47183 voltios?

Si el ADC siempre genera el valor que representa el rango definido anteriormente en el que cae la entrada (47 en este caso), entonces no importa cuántas lecturas tome, el valor parecerá ser 47. Resolver cualquier cosa más fina de lo que sería imposible.

Supongamos, en cambio, que el ADC se construyó de manera que se agregara un valor aleatorio de "oscilación" distribuido linealmente de -0.5 a +0.5 a cada lectura antes de convertirlo en un entero. Bajo ese escenario, un voltaje de 47.183 voltios devolvería una lectura de 48, aproximadamente el 18.3% del tiempo, y un valor de 47 el otro 81.7% del tiempo. Si se calcula el promedio de 10,000 lecturas, se debe esperar que sea aproximadamente 47,183. Debido a la aleatoriedad, puede ser un poco más alto o más bajo, pero debería estar bastante cerca. Tenga en cuenta que si uno toma suficientes lecturas, puede lograr un nivel arbitrario de precisión esperada, aunque cada bit adicional requeriría más que duplicar el número de lecturas.

Agregar exactamente un LSB de tramado distribuido linealmente sería un comportamiento muy agradable para un ADC. Desafortunadamente, implementar tal comportamiento no es fácil. Si el tramado no está distribuido linealmente, o si su magnitud no es precisamente un LSB, la cantidad de precisión real que se podría obtener del promedio sería muy limitada, sin importar cuántas muestras se usen. Si en lugar de agregar un LSB de aleatoriedad distribuida linealmente, uno agrega el valor de múltiples LSB, lograr un nivel de precisión dado requerirá más lecturas de las que se requerirían usando la aleatoriedad ideal de un LSB, pero el límite final para la precisión que se puede lograr Al tomar un número arbitrario de lecturas será mucho menos sensible a las imperfecciones en la fuente de interpolación.

Tenga en cuenta que en algunas aplicaciones, es mejor usar un ADC que no oscurezca su resultado. Esto es especialmente cierto en circunstancias en las que uno está más interesado en observar cambios en los valores de ADC que en los valores precisos mismos. Si la resolución rápida de la diferencia entre una unidad +3 / muestra y una tasa de aumento de +5 unidad / muestra es más importante que saber si un voltaje de estado estacionario es precisamente 13.2 o 13.4 unidades, un ADC sin oscilación puede ser mejor que un vacilante Por otro lado, el uso de un ADC intermitente puede ser útil si uno quiere medir las cosas con mayor precisión de lo que permitiría una sola lectura.

Super gato
fuente
2

Lección extra: Realmente obtienes 14 bits de precisión , pero solo 12 bits de precisión .

gbarry
fuente
1
¿No debería ser eso "resolución" en lugar de "precisión"? La precisión se refiere al error extendido en diferentes conversiones, y con el ruido gaussiano en los dos LSB que también serán de 12 bits.
stevenvh
Fui y leí algunas definiciones, y creo que tienes razón. Tiendo a evitar la "resolución" en esta era de videos, pero sigue siendo el mejor término. Creo que tal vez en la escuela secundaria, no explicaron la precisión correctamente.
gbarry
1

Una advertencia adicional ... a veces realmente quieres aleatoriedad .

Por ejemplo:

En aplicaciones criptográficas (seguridad / autenticidad), se requiere una aleatoriedad pura "indiscutible". Usar los LSB de un convertidor (aquellos debajo del nivel de ruido) es una forma rápida de generar números puramente aleatorios.

Cuando el hardware ADC está disponible para otros fines (sensores y similares), es una forma rápida y fácil de iniciar una comunicación segura. Puede mejorar el efecto maximizando la ganancia en el amplificador de entrada si está disponible (muchos MCU ofrecen dicha función) y flotando la entrada.

La aleatoriedad de ADC deriva principalmente de dos principios físicos: ruido de cuantización y ruido térmico.

Estos efectos tienen un umbral a nivel macroscópico. Por ejemplo, los números suficientemente alejados del límite de bits no necesitan ser redondeados y, por lo tanto, no experimentan errores de cuantificación o aleatoriedad. El ruido térmico no afecta los bits más significativos en la conversión en la mayoría de los escenarios.

Por extensión, puede ver que al variar los parámetros de conversión (tiempo de muestreo, profundidad, frecuencia, voltaje de referencia) se producirá un cambio en la aleatoriedad de los resultados al mover el umbral de aleatoriedad (ya sea incrementándolo aumentando o disminuyendo disminuyendo el umbral ) Se logra un efecto similar variando los parámetros ambientales / del sistema (temperatura, fuente de alimentación, etc.).

Dicho esto, muchos generadores de números aleatorios de hardware comercial exitosos confían en esta técnica porque los efectos externos solo reducen la aleatoriedad, de ninguna manera la eliminan (físicamente imposible).

Puede compensar una reducción en la aleatoriedad haciendo más conversiones y agregando los resultados. Este proceso de extensión de bits (concatenación de bits bajos de conversiones sucesivas) se utiliza en los dongles nucleares STM32, el FST-01 (incluido NeuG 1.0), la familia de dispositivos Grang de LE Tech y muchos otros.

Los dispositivos Grang generan bits al convertir a más de 400 millones de conversiones por segundo (1 bit por conversión). Si realiza suficientes conversiones, puede garantizar una alta aleatoriedad incluso en condiciones ambientales.

DrFriedParts
fuente
2
Es una muy mala idea suponer que el ruido ADC es una buena fuente de ruido aleatorio. Es muy probable que esté correlacionado con otras cosas que suceden en el circuito, la temperatura de IC y muchas otras cosas. Si necesita una aleatoriedad genuina, ¡asegúrese de probar su fuente!
Connor Wolf
"Probar su fuente" es un requisito obvio en cualquier esquema. Sin embargo, de ninguna manera es "una muy mala idea" ... incluso si se correlaciona con la temperatura. Eso solo reduce la aleatoriedad, no la elimina. Puede compensar por extensión de bits (concatenación de bits bajos de conversiones sucesivas).
DrFriedParts
Dije que es una mala idea asumir , no una mala idea en general. Si prueba a fondo la aleatoriedad de su fuente de ruido ADC y se verifica, entonces no tendría problemas con ella.
Connor Wolf