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?
Respuestas:
¡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.
fuente
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.
fuente
Lección extra: Realmente obtienes 14 bits de precisión , pero solo 12 bits de precisión .
fuente
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.
fuente