Nombre effectif de bits d'ADC 14 bits

18

J'ai un ADC 14 bits . Cependant, en regardant la fiche technique (voir le tableau 2 à la page 5), le nombre effectif de bits (ENOB) est toujours inférieur à 12 bits.

Pourquoi mon DAC prétend-il être un ADC 14 bits alors qu'il n'a qu'une précision de 12 bits? Quel est l'intérêt d'avoir deux bits supplémentaires s'ils n'ont pas de sens?

Randomblue
la source
1
Bien qu'ils ne soient pas très utiles dans un échantillonneur à large bande à un coup comme un oscilloscope, ils sont utiles dans les applications qui s'intègrent au fil du temps, comme une radio logicielle. Avec l'une des implémentations basées sur FPGA, il serait facile d'ajouter un bit de mode pour les masquer et voir la différence de sortie des filtres suivants avec et sans les bits `` faux '' en entrée.
Chris Stratton
1
C'est ainsi que la puce est conçue. Même si vous obtenez les données 14 bits, vous pouvez remarquer que la dernière valeur des données fluctuera et c'est à cause des bits de bruit. J'ai utilisé un ADC - AD7190 24 bits et il ne donne que 18 bits sans bruit.
PsychedGuy

Réponses:

17

Vous avez été embobiné!

Le 14 bits parle de marketing, et le matériel vous le donne également, alors ils diront que vous n'avez rien à redire. Juste au-dessus d'ENOB dans la fiche technique, il donne les nombres SINAD (Signal to Noise and Distortion). C'est 72 dB, et 1 bit correspond à un niveau de 6 dB, de sorte que 72 dB est en effet 12 bits. Les 2 bits les plus bas sont du bruit.

Il est possible de récupérer des données inférieures au bruit de fond, mais elles nécessitent une très bonne corrélation, ce qui signifie qu'elles doivent être très prévisibles.

Stevenvh
la source
8
OK, downvoter, dites-moi simplement ce qui ne va pas ici.
stevenvh
3
Peut-être que le downvoter est le concepteur de l'IC :-)
stevenvh
3
@Simpl: Pas nécessairement. Vous devez lire la fiche technique de tout A / D que vous prévoyez d'utiliser. Il y a beaucoup de compromis à faire dans la conception des A / N, donc ce que vous pouvez obtenir variera considérablement. De nombreux A / D sont bons à + -1 / 2, mais comme le montre cet exemple, certains ne le sont pas. Comme toujours, LISEZ LA FICHE TECHNIQUE.
Olin Lathrop
4
Ce n'est pas du "marketing parler". En fait, cela est assez fréquent sur les convertisseurs haute performance utilisés dans les radios logicielles, etc. Pour de nombreuses applications de ce type, à un moment donné du traitement du signal, vous filtrerez et sous-échantillonnerez, de sorte que vous puissiez détecter un signal à bande étroite avec un niveau de puissance éloigné, loin, en dessous du plancher de bruit à large bande (mais vous le faites dans le logiciel, de telle sorte que vous pouvez placer un nombre variable de ces filtres n'importe où dans la bande passante que vous voulez. Dans une certaine mesure, vous obtiendriez cela de toute façon si vous masquiez simplement le "peu fiable" mais tu fais mieux avec eux qu'avec eux.
Chris Stratton
2
Tout signal d'une bande passante plus étroite que l'adc est mieux corrélé. Vous rejetez quelque chose d'utilité quotidienne comme un cas spécial.
Chris Stratton
14

Supposons que l'on souhaite mesurer une tension stable aussi précisément que possible, en utilisant un CAN qui retournera une valeur de 8 bits pour chaque mesure. Supposons en outre que l'ADC est spécifié afin qu'un code de N soit nominalement retourné pour des tensions comprises entre (N-0,5) / 100 et (N + 0,5) / 100 volts (ainsi, par exemple, un code de 47 représenterait nominalement quelque chose entre 0,465 et 0,475 volts). Que devrait-on souhaiter avoir la sortie ADC si alimenté une tension de régime permanent de 0,47183 volts précisément?

Si l'ADC sort toujours la valeur qui représente la plage définie ci-dessus dans laquelle l'entrée se situe (47 dans ce cas), alors quel que soit le nombre de lectures que l'on prend, la valeur semblera être 47. La résolution de quelque chose de plus fin que cela serait impossible.

Supposons plutôt que l'ADC ait été construit de telle sorte qu'une valeur aléatoire de "tramage" distribuée linéairement de -0,5 à +0,5 soit ajoutée à chaque lecture avant de la convertir en un entier? Dans ce scénario, une tension de 47,183 volts retournerait une lecture de 48, environ 18,3% du temps, et une valeur de 47 les 81,7% restants. Si l'on calcule la moyenne de 10 000 lectures, il faut s'attendre à ce qu'elle soit d'environ 47,183. En raison du caractère aléatoire, il peut être légèrement supérieur ou inférieur, mais il devrait être assez proche. Notez que si l'on prend suffisamment de lectures, on peut atteindre un niveau arbitraire de précision attendue, bien que chaque bit supplémentaire nécessite plus que doubler le nombre de lectures.

Ajouter précisément un LSB de tramage à distribution linéaire serait un très bon comportement pour un ADC. Malheureusement, la mise en œuvre d'un tel comportement n'est pas facile. Si le tramage n'est pas distribué linéairement, ou si son amplitude n'est pas précisément un LSB, la quantité de précision réelle que l'on pourrait obtenir de la moyenne serait gravement limitée, quel que soit le nombre d'échantillons utilisés. Si au lieu d'ajouter un LSB d'aléatoire distribué linéairement, on ajoute plusieurs LSB valant, atteindre un niveau de précision donné nécessitera plus de lectures que ce qui serait requis en utilisant l'aléa idéal d'un LSB, mais la limite ultime de la précision qui peut être atteinte en prenant un nombre arbitraire de lectures sera beaucoup moins sensible aux imperfections de la source de tramage.

Notez que dans certaines applications, il est préférable d'utiliser un ADC qui n'efface pas son résultat. Cela est particulièrement vrai dans les circonstances où l'on est plus intéressé par l'observation des changements dans les valeurs ADC que dans les valeurs précises elles-mêmes. S'il est plus important de résoudre rapidement la différence entre une augmentation de +3 unité / échantillon et une augmentation de +5 unité / échantillon que de savoir si une tension de régime permanent est précisément de 13,2 ou 13,4 unités, un ADC sans tramage peut être meilleur qu'un un tramage. D'un autre côté, l'utilisation d'un ADC de tramage peut être utile si l'on veut mesurer les choses plus précisément qu'une simple lecture ne le permet.

supercat
la source
2

Leçon bonus: vous obtenez vraiment 14 bits de précision , mais seulement 12 bits de précision .

gbarry
la source
1
Cela ne devrait-il pas être «résolution» au lieu de «précision»? La précision fait référence à l'erreur répartie sur différentes conversions et au bruit gaussien sur les deux LSB qui sera également de 12 bits.
stevenvh
Je suis allé lire quelques définitions et je pense que vous avez raison. J'ai tendance à éviter la «résolution» à l'ère de la vidéo, mais c'est toujours le meilleur terme. Je pense que peut-être au lycée, ils n'ont pas tout à fait expliqué correctement la précision.
gbarry
1

Une mise en garde supplémentaire ... parfois, vous voulez vraiment du hasard .

Par exemple:

Dans les applications cryptographiques (sécurité / authenticité), un pur caractère aléatoire "non devinable" est requis. L'utilisation des LSB d'un convertisseur (ceux situés sous le plancher de bruit) est un moyen rapide de générer des nombres purement aléatoires.

Lorsque le matériel ADC est disponible à d'autres fins (capteurs et similaires), c'est un moyen rapide et facile de créer une communication sécurisée. Vous pouvez améliorer l'effet en maximisant le gain sur l'amplificateur d'entrée si disponible (de nombreux MCU offrent une telle fonctionnalité) et en flottant l'entrée.

Le caractère aléatoire de l'ADC dérive principalement de deux principes physiques: le bruit de quantification et le bruit thermique.

Ces effets ont un seuil au niveau macroscopique. Par exemple, les nombres suffisamment éloignés de la frontière de bits n'ont pas besoin d'être arrondis et ne subissent donc aucune erreur de quantification ou caractère aléatoire. Le bruit thermique n'affecte pas les bits les plus significatifs de la conversion dans la plupart des scénarios.

Par extension, vous pouvez voir que la variation des paramètres de conversion (temps d'échantillonnage, profondeur, taux, tension de référence) affectera le changement du caractère aléatoire des résultats en déplaçant le seuil de caractère aléatoire (soit en l'augmentant en l'augmentant, soit en le diminuant en l'abaissant le seuil) ). Un effet similaire est obtenu en faisant varier les paramètres environnementaux / du système (température, alimentation, etc.).

Cela dit, de nombreux générateurs de nombres aléatoires commerciaux réussis s'appuient sur cette technique car les effets extérieurs ne font que réduire le caractère aléatoire - ils ne l'éliminent en aucun cas (physiquement impossible).

Vous pouvez compenser une réduction du caractère aléatoire en effectuant plus de conversions et en ajoutant les résultats. Ce processus d'extension de bits (concaténation des bits faibles des conversions successives) est utilisé dans les dongles STM32 Nucleo, le FST-01 (y compris NeuG 1.0), la famille d'appareils Grang de LE Tech et bien d'autres.

Les appareils Grang génèrent des bits en convertissant à plus de 400 millions de conversions par seconde (1 bit par conversion). Si vous effectuez suffisamment de conversions, vous pouvez garantir un caractère aléatoire élevé, même face aux conditions environnementales.

DrFriedParts
la source
2
C'est une très mauvaise idée de supposer que le bruit ADC est une bonne source de bruit aléatoire. Il est tout à fait probable que cela soit corrélé à d'autres choses qui se passent dans le circuit, la température du circuit intégré et bien d'autres choses. Si vous avez besoin d'un véritable hasard, assurez-vous de tester votre source!
Connor Wolf
"Tester votre source" est une exigence évidente dans tout schéma. Cependant, ce n'est en aucun cas "une très mauvaise idée" ... même si elle est corrélée à la température. Cela ne fait que réduire le caractère aléatoire, pas l'éliminer. Vous pouvez compenser par extension de bits (concaténation des bits faibles des conversions successives).
DrFriedParts
J'ai dit que c'était une mauvaise idée à assumer , pas une mauvaise idée en général. Si vous testez minutieusement le caractère aléatoire de votre source de bruit ADC et qu'il vérifie, je n'aurais aucun problème avec cela.
Connor Wolf