ADC en cascade pour obtenir une résolution plus élevée

11

Supposons que j'ai une paire de CAN 12 bits, je peux imaginer qu'ils peuvent être montés en cascade pour obtenir une sortie <= 24 bits.

Je peux penser à utiliser simplement l'un pour la plage positive et l'autre pour la plage négative, bien qu'il y aura probablement une certaine distorsion dans la région de croisement. (supposons que nous pouvons ignorer quelques bits d'erreur ou, peut-être, placer un 3e ADC pour mesurer la valeur autour de 0 volt).

Une autre option à laquelle j'avais pensé était d'utiliser un seul ADC haute vitesse et de commuter les tensions de référence pour obtenir une résolution plus élevée à une vitesse inférieure. Il devrait également y avoir un moyen d'obtenir un résultat à valeur réelle en utilisant un ADC à référence fixe, puis en commutant les arcs du convertisseur secondaire pour obtenir une valeur plus précise entre les deux.

Tous les commentaires et suggestions sont les bienvenus.

Je présume qu'une puce quad 8 bits (ou double 12 bits) est moins chère qu'une seule puce 24 bits.

errordeveloper
la source
2
Oui, cela est possible en théorie et dans 0,01% des cas réels, où les pièces ont "Effectve nombre de bits" égal à "Data nombre de bits" avec le reste des spécifications correspondant à 5 ordres de grandeur de précision supplémentaires. Ce qui n'est pas vrai pour 99,99% des pièces.
4
Si vous en utilisez un pour les tensions positives et l'autre pour les tensions négatives, cela ne vous donne que 13 bits. Leur mise en cascade nécessiterait un DAC et un amplificateur. Vous convertissez directement sur le signal, écrivez la valeur dans le DAC et soustrayez la sortie du DAC du signal d'entrée. Ensuite, vous amplifiez le signal par , et l'introduisez dans le deuxième ADC. 212
Connor Wolf

Réponses:

11

Beaucoup de choses dans votre question. Alors prenons-les un par un.

Supposons que j'ai une paire de CAN 12 bits, je peux imaginer qu'ils peuvent être montés en cascade pour obtenir une sortie <= 24 bits. Je peux penser à utiliser simplement l'un pour la plage positive et l'autre pour la plage négative, bien qu'il y aura probablement une certaine distorsion dans la région de croisement. (supposons que nous pouvons ignorer quelques bits d'erreur ou, peut-être, placer un 3e ADC pour mesurer la valeur autour de 0 volt).

Pas vraiment - vous obtiendriez une résolution de 13 bits. On peut décrire le fonctionnement du convertisseur 12 bits comme déterminant la tension d'entrée des 4096 bins (2 ^ 12). Deux ADC 12bits vous donneraient 8192 bins ou une résolution de 13 bits.

Une autre option à laquelle j'avais pensé était d'utiliser un seul ADC haute vitesse et de commuter les tensions de référence pour obtenir une résolution plus élevée à une vitesse inférieure.

En fait, c'est ainsi que fonctionne le convertisseur d'approximation successif . Fondamentalement, un convertisseur à un bit (ou comparateur) est utilisé avec un convertisseur numérique-analogique qui produit une tension de référence variable selon un algorithme d'approximation successif pour obtenir un échantillon numérisé de la tension. Notez que les convertisseurs SAR sont très populaires et la plupart des ADC en uC sont de type SAR.

Il devrait également y avoir un moyen d'obtenir un résultat à valeur réelle en utilisant un ADC à référence fixe, puis en commutant les arcs du convertisseur secondaire pour obtenir une valeur plus précise entre les deux.

En fait, cela ressemble énormément au fonctionnement des ADC de pipeline . Cependant, au lieu de changer la référence de l'ADC secondaire, l'erreur résiduelle laissée après la première étape est amplifiée et traitée par l'ADC de l'étape suivante.

Tous les commentaires et suggestions sont les bienvenus. Je présume qu'une puce quad 8 bits (ou double 12 bits) est moins chère qu'une seule puce 24 bits.

En fait, il y a une raison à cela, car avoir un convertisseur 24 bits n'est pas aussi simple que d'organiser dans une configuration quatre convertisseurs 8 bits. Il y a beaucoup plus à cela. Je pense que ce malentendu clé ici est de penser que l'on peut simplement "ajouter" un nombre de bits. Pour voir pourquoi cela est faux, il est préférable de considérer l'ADC comme un circuit qui décide à quelle tension d'entrée "bin" appartient. Le nombre de cases est égal à 2 ^ (nombre de bits). Le convertisseur 8 bits aura donc 256 cases (2 ^ 8). Le convertisseur 24 bits aura plus de 16 millions de bacs (2 ^ 24). Donc, pour avoir le même nombre de casiers que dans un convertisseur 24 bits, il faudrait plus de 65 milliers de convertisseurs 8 bits (en fait 2 ^ 16).

Pour continuer l'analogie avec le bac, supposons que votre ADC ait une pleine échelle de 1V. Ensuite, le convertisseur 8 bits "bin" est de 1 V / 256 = ~ 3,9 mV. Dans le cas du convertisseur 24 bits, ce serait 1V / (2 ^ 24) = ~ 59,6nV. Intuitivement, il est clair que «décider» si la tension appartient à un bac plus petit est plus difficile. En effet, c'est le cas en raison du bruit et de diverses non-réalités du circuit. Ainsi, non seulement l'un aurait besoin de plus de 65 milliers de convertisseurs 8 bits pour obtenir une résolution de 24 bits, mais également ces convertisseurs 8 bits devraient être en mesure de se résoudre à un bac de taille 24 bits (votre convertisseur 8 bits normal ne serait pas assez bon car il est capable de se résoudre à ~ 3,9 mV et non à 59,6 nV)

mazurnification
la source
La plage à partir de laquelle un convertisseur 8 bits fonctionnerait est de 256 * 59,6nV = 15,26uV. Je n'ai jamais fait de tensions de référence aussi basses et précises :)
Hans
14

Si vous divisez votre plage d'entrée, vous obtiendrez 13 bits et non 24. Supposons que vous ayez une plage d'entrée de -4,096 V à + 4,096 V. Un ADC 12 bits aura alors une résolution de 2 mV: 2 x 2 mV = 8,192 V (la plage de -4,096 V à + 4,096 V). Si vous prenez la moitié positive, vous obtenez une résolution de 1 mV car votre plage est divisée par deux: 2 x 1 mV = 4,096 V. C'est 2 niveaux au-dessus de 0V, et encore 2 ci-dessous. Ensemble 2 + 2 = 2 , de sorte que 1 bit supplémentaire, pas 12.12 12 12 12 12 131212121212 1213

À propos de la modification de la tension de référence. Je vais donner un exemple différent. Supposons que vous ayez un CAN 1 bit et que vous souhaitiez obtenir 12 bits en modifiant la référence. Un bit vous donnera un 1 si l'entrée est supérieure à , et un zéro sinon. Supposons que votre référence soit 1V, alors le seuil est 0,5V. Si vous changez votre référence à 0,9 V, vous aurez un nouveau seuil à 0,45 V, vous pouvez donc déjà discerner 3 niveaux différents. Hé, cela peut fonctionner, je peux faire 12 bits avec un ADC 1 bit, puis probablement aussi 24 bits avec un ADC 12 bits!VREF2
Le tenir! Pas si vite! Vous pouvez le faire, mais les composants de votre ADC 1 bit doivent être de qualité 12 bits. C'est pour la précision de la référence et du comparateur. De même, un ADC 12 bits serait capable de faire 24 bits si la précision de l'ADC est suffisamment précise, et que la précision de la tension de référence variable est de qualité 24 bits. Donc, en pratique, vous ne gagnez pas grand-chose.

Il n'y a rien de tel qu'un déjeuner gratuit.

modifier
Il semble y avoir un malentendu à propos de suréchantillonnage, et le fait qu'il ya des ADCs audio 1 bit qui peut vous donner une résolution de 16 bits.
Si votre entrée est un niveau CC fixe, par exemple 0,2 V dans une plage d'entrée de 1 V, votre sortie sera toujours la même. Avec un ADC 1 bit, ce sera zéro pour notre exemple (le niveau est inférieur à la moitié de la référence). Maintenant, ce sera le cas, que vous échantillonniez à 1 échantillon par seconde ou à 1 000. La moyenne ne change donc rien à cela. Pourquoi cela fonctionne-t-il avec l'ADC audio?, Parce que la tension varie tout le temps (bruit), ce qui, selon Einstein (relativité, vous savez ;-)) revient à maintenir la tension constante et à faire varier la référence. Et puisvous obtenez plusieurs lectures différentes pendant le suréchantillonnage, que vous pouvez faire une moyenne pour obtenir une assez bonne approximation de votre niveau réel.
Le bruit doit être suffisamment fort pour passer le (s) seuil (s) de l'ADC, et doit s'adapter à certaines contraintes, comme la distribution gaussienne (bruit blanc). Dans l'exemple 1 bit, cela n'a pas fonctionné car le niveau de bruit est trop faible.


Pour en savoir plus:
Note d'application Atmel AVR121: Amélioration de la résolution ADC par suréchantillonnage

stevenvh
la source
Je ne suis pas sûr de comprendre votre pensée à ce sujet. Sûrement si vous divisez + et - vous pouvez alors échantillonner de 0v à + 4.096v à 12 bits et de 0v à -4.096v à 12 bits, ce qui fait un total de 24 bits sur toute la plage?
Majenko
1
@MattJenkins, ce serait la même chose qu'un bit de signe. Pensez-y. Si j'échantillonne 0-10 V avec 12 bits et 0 - (- 10 V) avec 12 bits, je n'ai besoin que d'un bit pour dire si le signal était négatif ou positif.
Kortuk
C'est vrai - donc bien que vous puissiez échantillonner en 24 bits, vous pouvez obtenir la même résolution exacte avec seulement 13 bits.
Majenko
@Matt - chaque doublement de résolution vous donne 1 bit de plus. 2 bits sur 8V vous donnent une résolution de 2V ( ), un troisième bit vous en donne la moitié, 1V ( ). 8V8V2V=228V1V=23
stevenvh
@MattJenkins, vous pouvez utiliser 1 encodage à chaud et prendre 1024 bits au lieu de 10. La réalité physique est que l'ingénieur peut faire tout ce qu'il veut, dites simplement au client que vous êtes seulement en 3D, pas 10kW.
Kortuk
3

Oui, en théorie, vous pouvez faire ce que vous voulez, mais seulement si vous avez à votre disposition du matériel totalement irréaliste.

Les nombreux autres commentaires faits jusqu'à présent sur la précision supplémentaire limitée sont hélas corrects.

Considérer. Mesurer une tension avec un CAN 12 bits et dire 111111000010 Vous savez que la valeur réelle se situe quelque part dans une plage de 1 bit +/- 0,5 bit de chaque côté de cette valeur.

SI votre ADC était précis à 24 bits mais ne fournissait que 12 bits, il signale que la valeur se situe à +/- un demi-bit de 111111000010 000000000000. Si tel était le cas, vous pourriez prendre un ADC 12 bits avec un +/- Plage de 1/2 bit, centrez-le sur 111111000010000000000000 et lisez le résultat. Cela vous donnerait la différence entre le signal réel et la valeur aDC, comme vous le souhaitez. QED.

Cependant, l'ADC 12 bits n'est lui-même précis qu'à environ un demi-bit. La somme totale de ses diverses erreurs l'amène à déclarer un certain résultat lorsque le résultat réel est jusqu'à environ la moitié mais plus ou moins différent.

Alors que vous voudriez

111111000010 signifie 111111000010 000000000000

cela peut en fait signifier 111111000010 000101101010 ou autre.

Donc, si vous prenez ensuite un deuxième ADC et mesurez les 12 bits inférieurs et supposez qu'ils sont relatifs à une limite exacte de 12 bits, ils sont en fait relatifs à la valeur erronée ci-dessus. Comme cette valeur est une erreur essentiellement aléatoire, vous ajouteriez un nouveau chiffre de 12 bits inférieurs à 12 bits de bruit essentiellement aléatoire. Précis + aléatoire = nouveau aléatoire.

EXEMPLE

Utilisez deux convecteurs qui peuvent mesurer une plage et donner un résultat en 1 sur 10 étapes. Si mis à l'échelle à 100 volts FS, ils donnent ge 0 10 20 30 40 50 60 70 80 90

Si mis à l'échelle à 10 volts pleine échelle, ils donnent 1 2 3 4 5 6 7 8 9

Vous décidez d'utiliser ces deux convertisseurs pour mesurer une plage de 100 volts avec une précision de 1 volt.

Le convertisseur 1 renvoie 70V. Vous mesurez ensuite la tension par rapport à 70V et obtenez -3V. Donc, vous considérez que la valeur réelle, c'est-à-dire + 70V - 3V = 67V.

CEPENDANT, le résultat 70V pourrait en fait être n'importe lequel de 65 66 67 68 69 70 71 72 73 74

Ce n'est que si le 1er convertisseur est PRÉCIS à 1V sur 100, même s'il affiche des pas de 10V sur 100V, que vous pouvez obtenir ce que vous voulez.

Donc, votre résultat réel est de 67V +/- 5 volts = de 62V à 72V. Vous n'êtes donc pas mieux lotis qu'avant. Votre centre a déménagé mais il peut être localisé de façon aléatoire.

Vous pourrez obtenir une amélioration modeste de cette façon, car un convertisseur est généralement légèrement plus précis que les bits qu'il renvoie (vous l'espérez), donc votre 2ème convertisseur en fait usage.


Un système qui fonctionne effectivement a été mentionné avec une omission importante. Si vous échantillonnez un signal N fois et que vous ajoutez + / _ un demi-bruit gaussien, vous étalerez le signal "sur toute la plage possible" et la valeur moyenne sera désormais log (N) plus précise qu'auparavant. Ce schéma a des hameçons et des qualifications et vous ne pouvez pas simplement obtenir un nombre supplémentaire arbitraire de bits, mais il offre une certaine amélioration.


Dans le premier cas ci-dessus, j'ai mentionné un ADC 12 bits avec une précision de 24 bits. Vous pouvez réaliser quelque chose de la sorte en utilisant un CAN 12 bits et en lisant sa valeur supposée avec un convertisseur sigma delta 24 bits par exemple. SI le signal était suffisamment stable pour rester dans la même plage d'un bit, vous pouvez utiliser un 2ème ADC pour lire le 2ème 12 bits par rapport à ce signal stable.

Alternative - il suffit de lire le signal 24 bits initialement avec sigma delta, de verrouiller ce point puis de mesurer successivement par rapport à celui-ci avec le 2e ADC.Tant que le signal reste dans la plage du 2e ADC, vous obtiendrez un résultat beaucoup plus rapide.

Russell McMahon
la source
Hmmm. Un vote. Un vote négatif. Compte tenu de ce qui passe pour les réponses OK ici [tm] :-) Je serais intéressé de savoir qui pensait que cette réponse était si terrible qu'elle méritait de voter, et pourquoi?
Russell McMahon
1

Il existe quelque chose appelé suréchantillonnage qui peut être utilisé pour augmenter la résolution de nombreux types de CAN.

Il fonctionne en ajoutant du bruit au signal. Bien que le bruit réduise la résolution, il est nécessaire de provoquer la division des données sur plusieurs bits. (Je ne suis pas un spécialiste du traitement du signal - c'est comme ça que je le comprends.) Votre bruit n'est peut-être que de 1 ou 2 bits, mais il doit être là. Si vous prenez un échantillon de 12 bits - vous avez 12 bits. Si vous prenez ensuite 4 échantillons, les additionnez et divisez par deux, vous obtenez un échantillon de 13 bits. (Chaque bit supplémentaire nécessite 4 échantillons, en raison de Nyquist.)

Pour ce faire, une méthode simple consiste à ajouter du bruit à la tension de référence. J'utilise cela pour augmenter un ADC 12 bits dans un dsPIC33F à 16 bits pour une résolution plus élevée. Au préalable, j'ai configuré une minuterie asynchrone à haute fréquence et utilisé DMA pour mettre en file d'attente une séquence de nombres PRNG dans la capture de sortie, ce qui donne une source de bruit relativement propre. La sortie de bruit polarise la tension de référence d'environ 0,1% (diviseur 1k-1Meg.) Le bruit est bidirectionnel, descendant et source. J'utilise le DMA du dsPIC33F pour mettre les échantillons en file d'attente, ce qui peut être fait avec peu d'intervention du processeur. Bien sûr, le taux d'échantillonnage maximum tombe à environ 1/32 du taux normal, mais ce n'est pas un problème pour mon application.

Comme le bruit n'est pas toujours uniformément réparti, je calibrerai les entrées sur chaque unité expédiée, bien que la différence ne soit probablement que de 1 ou 2 LSB.

Thomas O
la source
Comment savez-vous que le bruit que vous ajoutez a le bon spectre (c'est du bruit blanc)? Comment décidez-vous de l'amplitude? Si votre bruit n'est pas bon, vous aurez plus de résolution, mais pas plus de précision.
Federico Russo
@ Federico Bien sûr - pour moi, c'est un essai et une erreur. Le bruit blanc peut être simulé à l'aide d'un PRNG et pour seulement 32 échantillons, il fonctionne assez bien. Si j'étais un véritable ingénieur en électronique, je saurais comment le faire correctement.
Thomas O
Voici un article sur Analog Devices qui pourrait aider à expliquer cela: analog.com/library/analogdialogue/archives/40-02/adc_noise.html
DarenW
@ThomasO, j'ai utilisé cette technique avec des thermistances pour ajouter 8 bits de précision. Pas avec du bruit cependant, nous avons utilisé le chauffage.
Kortuk
@DarenW Cela semble familier - je pense que c'est de là que vient mon idée.
Thomas O
1

En utilisant un amplificateur sommateur, vous pouvez additionner les deux sorties DAC. Vous pouvez utiliser R1 = 100k, R2 = R3 = 100 Ohm. De cette façon, la sortie sera Vout = - (V1 + V2 / 1000). Vous aurez besoin d'une double alimentation et si vous voulez qu'elle ne soit pas inversée, vous devez mettre un autre amplificateur inverseur avec un gain = 1. Supposons donc que vous ayez un DAC 12 bits avec 2 sorties et une référence 4.096V. Ensuite (si vous avez un deuxième amplificateur inverseur), un incrément du DAC 1 augmentera la sortie avec 1uV, et un incrément du DAC 2 augmentera la sortie avec 1mV. Ce n'est pas 24 bits au total. C'est environ 22 bits. En théorie, vous pouvez choisir R1 pour être 4096 fois plus grand que R2 et R3 et obtenir 24 bits, mais vous n'obtiendrez pas de meilleurs résultats. Vous aurez beaucoup de problèmes de bruit dans la gamme des microvolts même si vous choisissez un bon ampli-op à faible bruit.

Mise à jour J'ai pensé que c'était une question sur DAC parce que je cherchais des DAC. Voici comment appliquer un principe similaire avec les ADC. Au lieu de sommer, vous devez soustraire le résultat ADC1 puis multiplier par 1000 avant de mesurer avec ADC2.

Double résolution ADC

Correction - ADC3 devrait être sur VGnd (Vref / 2), pas sur Vref pour correspondre à la formule de résultat

Au lieu de AZ431, vous pouvez utiliser n'importe quelle autre référence de 2,5 V ou une autre référence réglable avec des passifs appropriés pour obtenir exactement 4,096 V. Moins la référence a de dérive de température, meilleurs sont les résultats. Il doit également être à faible bruit. Notez que tel n'est probablement pas assez précis. Ce sera bien de mettre un potentiomètre multi-tours de 500 ohms entre R7 et R8 avec un essuie-glace à l'entrée de référence et de le régler pour Vref = 4.096V exactement. Un potentiomètre (2) sera également nécessaire entre R1 et R2 avec un essuie-glace vers l'entrée positive U1. Ajustez-le pour 2.048V sur VGnd. U1 est juste n'importe quel ampli op à faible bruit. (BTW AZ431 est horrible pour le travail. Je l'ai mis parce que j'avais le symbole).

Il est très important que U2, U3 et U4 soient des amplificateurs de hacheur à décalage nul. U2 est plus important car il se multiplie par 100. chaque 1 microvolt arrive à 100 microvolts. Si vous utilisez OP07 et que vous le mettez à zéro correctement et que la température change de 10 degrés, vous obtenez un décalage de 13 uV qui se traduit par 1,3 mV à la sortie de U4. C'est 13 mV en sortie ADC, ce qui rend ADC2 presque inutile.

U3 doit également pouvoir atteindre 6,048 V - c'est-à-dire VGnd (2,048V) + 2xVinmax (2x2V = 4V). C'est toute l'idée d'avoir une alimentation Vcc = + 12V. Le Vcc peut être aussi bas que 6,5 V lorsque le MAX44252 est utilisé. Étant donné que le MAX44252 est une alimentation négative d'opamp rail à rail, l'alimentation négative peut être ignorée et Vss de l'ampli op peut être connecté à la terre. C'est vrai pour tout ampli op qui peut descendre jusqu'à 48 mV sur sa sortie.

Le MAX44252 a une tension de décalage de 2 à 4 uV (typique) et une dérive de température de 1 à 5 nV. C'est 2,64 $ sur digikey en quantités de 1 et c'est quadopamp donc une seule puce fera le travail.

Comment ça fonctionne? Ayons le DAC 10 bits par exemple. La résolution est 4,096 / 1024 = 4mV. Le signal d'entrée doit être relatif à VGnd, qui est la moitié de Vref. L'ADC1 mesure la tension d'entrée normalement. Puis sort la valeur via DAC1. La différence entre Vin et DAC1 est l'erreur dont vous avez besoin pour amplifier, mesurer et ajouter au résultat ADC1. U2 amplifie la différence Vin - DAC1, par rapport à DAC1, avec un gain de 100. U4 amplifie cette différence de 10 et soustrait également DAC1, par rapport à VGnd. Cela fait ADC2 = (Vin - DAC1) * 1000, par rapport à VGnd. En d'autres termes, si vous avez 1.234567V sur Vin, par rapport à VGnd. ADC1 mesurera la valeur de 821car la résolution est de 4 mV et (2,048 + 1,234567) /0,004 = 820,64175. Ainsi, la valeur DAC sera définie sur 309, ce qui correspond à 309 * 0,004 V = 1,236 V. Maintenant, ADC2 obtiendra 1,234567-1,236 = -0,001433 * 1000 = -1,433V par rapport à VGnd (idéalement). C'est le mode commun 2.048-1.433 = 0.615V. 0,615 V / 0,004 = 153,75. Donc valeur ADC2 = 154. Il est plus facile de calculer la valeur en microvolts pour éviter d'utiliser float. pour convertir ADC2 en mV, nous devons multiplier la valeur par 4: VADC1 = 821 * 4 = 3284mV. Pour convertir en uV, nous devons multiplier par 1000. Ou c'est la valeur ADC1 multipliée par 4000. 821 * 4000 = 3284000. La tension ADC1 par rapport à VGnd est donc de 3284000-2048000 = 1236000uV. L'ADC2 est déjà multiplié par 1000, nous devons donc multiplier uniquement par 4: VADC2 = 154 * 4 = 616. Pour obtenir une tension relative à VGnd, nous devons soustraire VGnd: 616-2048 = -1432uV. Nous prenons VGnd = 2048uV ici parce que nous avons une amplification x1000.Nous ajoutons maintenant VADC1 et VADC2: 1236000 + (-1432) = 1234568uV ou 1.234568V

Bien sûr, ce ne sont que des rêves car lorsque vous traitez avec des microvolts, il y aura toutes sortes de problèmes horribles - bruit d'opamp, bruit de résistances, décalage de tension, dérive de température, erreur de gain ... Mais si vous utilisez des pièces décentes, au moins 1% de résistances et vous annulez par programmation le décalage et corrigez le gain que vous pourriez obtenir un résultat raisonnablement bon. Bien sûr, vous ne pouvez pas vous attendre à voir une entrée stable au dernier chiffre. vous pouvez peut-être limiter la résolution à 10uV (divisez le résultat par 10). La multiplication par 4 peut également être effectuée en additionnant 4 résultats séquentiels pour obtenir une moyenne.

Gardez à l'esprit que rien de tout cela n'est testé. J'ai simulé uniquement l'étage de l'amplificateur sans tenir compte du bruit et du décalage d'opamp. Si quelqu'un décide de le construire, écrivez les résultats dans les commentaires.

NickSoft
la source
Question sur AD C. Vous parlez de DA C.
faible perte de confiance en SE
Je suis désolé. J'ai cherché DAC et j'ai trouvé cette question. J'ai écrit sans lire attentivement. Je vais compenser suggérer comment appliquer le même principe à l'ADC.
NickSoft
J'ai supprimé mon downvote, car votre message est désormais lié à la question. Mais je ne pense pas que cette solution puisse fonctionner dans la pratique. J'ai peur qu'il y ait trop d'inexactitudes.
dim perdu confiance en SE
Bien sûr, cela fonctionnera. Cependant, la précision dépend des pièces utilisées. Il existe des amplificateurs de découpage qui ont un décalage de 0,1 uV et une dérive de 1 à 5 nV / degC. Ils ont également un bruit de nanovolts 0,1-10 Hz pp. Combiné avec une bonne référence, il pourrait obtenir une sortie stable jusqu'à 10 s de uV. Mais cela peut fonctionner avec des pièces moins chères si vous souhaitez gagner des chiffres supplémentaires. Par exemple, l'ADC 10 bits est avec une référence de 4,096 V et une résolution de 4 mV. Je pense qu'avec ce circuit, il peut être facilement amélioré à une résolution de 0,1 uV (peut-être avec une meilleure référence). C'est +/- 20000 comptes. Bien sûr, il faudra un étalonnage logiciel pour le décalage et le gain.
NickSoft
C'est toute la théorie. Le fait que votre lecture ADC2 dépende de votre réglage DAC (et du décalage opamp, mais ce n'est même pas la partie la plus cruciale), qui dépend elle-même de votre lecture ADC1 (et tout cela ayant des tolérances), conduira au fait que vous avez certainement gagné ne pourra même pas garantir le fonctionnement monotone de votre système (même si vous êtes dans les limites de votre précision calculée).
dim perdu confiance en SE
0

log2(a lot)

modifier: voir les commentaires pour les corrections de mes calculs.

Jay Kominek
la source
C'est ce que je pensais aussi, mais considérez ceci: plage d'entrée 1 V, entrée 0,2 V, CAN 1 bit. Quelle que soit la hauteur de votre suréchantillonnage, vous lirez toujours 0, moyenne = 0, pas 0,2.
stevenvh
Un tel suréchantillonnage nécessitera du «bruit» sur le signal. Comme l'a souligné Stevenevh. Parfois, le signal lui-même a suffisamment de «bruit» pour accomplir cela sans rien de nouveau. D'autres fois, vous devez injecter du bruit haute fréquence dans le signal, mais le bruit sera filtré lors du post-traitement que vous effectuerez ensuite.
Bien, "en fonction de la nature de votre signal". La question ne dit pas s'il lit la température à partir d'une thermistance collée sur le côté d'une brique de plomb, ou s'il échantillonne la sortie du mélangeur pour le SDR. Il a donc eu une autre option. Si quelqu'un peut fournir un pointeur sur les propriétés mathématiques exactes dont le signal a besoin pour que le suréchantillonnage soit valide, je serais vraiment intéressé, btw. (Et cela semble être un ajout utile, au lieu de, désolé, des corrections qui ne sont que légèrement moins ondulées que ma déclaration d'origine.)
Jay Kominek
log2(alot)2
Mon intérêt principal est dans les signaux audio, donc je pense qu'une fois que les convertisseurs 24 bits sont assez chers et qu'il n'y en a pas beaucoup, les convertisseurs en cascade peuvent fonctionner plus largement. Merci à tous pour vos explications détaillées. Cela semble possible au premier abord, n'est-ce pas? :)
errordeveloper