Effektive Anzahl von Bits eines 14-Bit-ADC

Ich habe einen 14-Bit- ADC . Wenn man sich jedoch das Datenblatt ansieht (siehe Tabelle 2 auf Seite 5), ist die effektive Bitanzahl (ENOB) immer kleiner als 12 Bit.

Warum behauptet mein DAC, ein 14-Bit-ADC zu sein, wenn er nur eine Genauigkeit von 12 Bit hat? Was bringt es, zwei zusätzliche Bits zu haben, wenn sie bedeutungslos sind?

Während sie in einem One-Shot-Breitband-Sampler wie einem Oszilloskop möglicherweise nicht viel Nutzen haben, sind sie in Anwendungen sinnvoll, die sich im Laufe der Zeit integrieren, wie z. B. ein Software-Radio. Mit einer der FPGA-basierten Implementierungen wäre es einfach, ein Modusbit hinzuzufügen, um die Maskierung umzuschalten und den Unterschied in der Ausgabe nachfolgender Filter mit und ohne die „falschen“ Bits als Eingabe zu sehen.
So ist der Chip aufgebaut. Selbst wenn Sie die 14-Bit-Daten erhalten, können Sie feststellen, dass der letzte Wert der Daten schwankt, und das liegt an den Rauschbits. Ich habe einen 24-Bit-ADC - AD7190 verwendet und er liefert nur 18 rauschfreie Bits.

Antworten (4)

Du wurdest betrogen!

14-Bit ist Marketingsprache, und die Hardware bietet Ihnen das auch, also werden sie sagen, dass Sie sich nicht beschweren müssen. Direkt über ENOB im Datenblatt gibt es SINAD-Zahlen (Signal to Noise and Distortion). Das sind 72 dB, und 1 Bit entspricht einem Pegel von 6 dB, sodass 72 dB tatsächlich 12 Bit sind. Die 2 niedrigsten Bits sind Rauschen.

Es ist möglich, Daten abzurufen, die niedriger als das Grundrauschen sind, aber es ist eine sehr gute Korrelation erforderlich, was bedeutet, dass es sehr vorhersehbar sein muss.

OK, Downvoter, sag mir einfach, was hier falsch ist.
Ich sehe auch nichts falsch.
@stevenvh: Danke. Was haben Sie verwendet, um die Beziehung 6 dB <-> 1 Bit zu erhalten?
Bit 1 stellt die doppelte Spannung von Bit 0 dar, und für Spannungen ist das dB-Verhältnis definiert als 20 x log(V1/V2) = 20 x log(2) = 20 x 0,301 = 6 dB.
Vielleicht ist der Downvoter der Designer des IC :-)
Dumme Frage: Verhalten sich die meisten ADCs so? Wenn ich beispielsweise eine Auflösung von 10 Bit möchte, kann ich dann davon ausgehen, dass ich wirklich einen 12-Bit-ADC kaufen muss?
@Einfach: Nicht unbedingt. Sie müssen das Datenblatt jedes A/D lesen, den Sie verwenden möchten. Beim Design von A/Ds müssen viele Abstriche gemacht werden, daher wird das, was Sie bekommen können, sehr unterschiedlich sein. Viele A/Ds können gut +-1/2 zählen, aber wie dieses Beispiel zeigt, sind es einige nicht. Wie immer, LESEN SIE DAS DATENBLATT.
Das ist kein „Marketing-Gerede“. Tatsächlich ist dies bei Hochleistungswandlern, wie sie in Software-Radios usw. verwendet werden, ziemlich üblich. Für viele solcher Anwendungen werden Sie irgendwann in der Signalverarbeitung filtern und heruntersampeln, sodass Sie ein Schmalbandsignal mit einem weit entfernten Leistungspegel erkennen können. weit unter dem Breitband-Grundrauschen (aber Sie tun dies in Software, sodass Sie eine variable Anzahl solcher Filter überall in der gewünschten Bandbreite platzieren können. Bis zu einem gewissen Grad würden Sie dies sowieso erreichen, wenn Sie nur das "unzuverlässige" maskieren würden Bits, aber mit ihnen geht es besser als ohne.
@Chris - Ich habe in meiner Antwort darauf hingewiesen, dass es möglich ist, Daten von unterhalb des Grundrauschens zu erhalten, sofern sie gut korreliert sind . Wenn das Eingangssignal dies nicht ist und beispielsweise bereits bei -70 dB (was nicht korreliert ist) Rauschen enthalten würde, gibt es absolut keine Möglichkeit , die kleinen Signaländerungen vom Rauschen des ADC zu unterscheiden. Auf keinen Fall. Wenn Sie das Rauschen des ADC herausfiltern möchten, ändern Sie auch das Signal.
Jedes Signal mit schmalerer Bandbreite als der ADC ist besser korreliert. Sie tun etwas Alltägliches als Sonderfall ab.
@Chris - Angenommen, das LSB des Signals in einem perfekten ADC würde 001100110011..aufeinanderfolgende Samples lesen, und Sie fügen 2 LSB Gaußsches Rauschen hinzu. Meinen Sie, Sie können das LSB des Signals wiederherstellen?
Um zu verstehen, warum diese Bits in realen Designs nützlich sind, müssen Sie im Frequenzbereich denken, in dem das Rauschen pro Bandbreiteneinheit gemessen wird, und nicht im unmittelbaren Ausgangscode.

Angenommen, man möchte eine konstante Spannung so genau wie möglich messen, indem man einen ADC verwendet, der für jede Messung einen 8-Bit-Wert zurückgibt. Nehmen wir weiter an, dass ADC so spezifiziert ist, dass ein Code von N nominell für Spannungen zwischen (N-0,5)/100 und (N+0,5)/100 Volt zurückgegeben wird (also würde z. B. ein Code von 47 nominell etwas zwischen 0,465 und 0,475 darstellen Volt). Was sollte der ADC-Ausgang haben, wenn er mit einer stationären Spannung von genau 0,47183 Volt versorgt wird?

Wenn der ADC immer den Wert ausgibt, der den oben definierten Bereich darstellt, in den der Eingang fällt (in diesem Fall 47), dann erscheint der Wert unabhängig von der Anzahl der Messwerte als 47. Eine feinere Auflösung als das wäre möglich unmöglich.

Nehmen wir stattdessen an, dass der ADC so konstruiert wurde, dass jedem Messwert ein zufälliger "Dither" -Wert hinzugefügt wurde, der linear von -0,5 bis +0,5 verteilt ist, bevor er in eine Ganzzahl umgewandelt wird? In diesem Szenario würde eine Spannung von 47,183 Volt in etwa 18,3 % der Fälle einen Wert von 48 und in den anderen 81,7 % der Fälle einen Wert von 47 zurückgeben. Wenn man den Durchschnitt von 10.000 Messwerten berechnet, sollte man ungefähr 47,183 erwarten. Aufgrund der Zufälligkeit kann es etwas höher oder niedriger sein, aber es sollte ziemlich nahe beieinander liegen. Beachten Sie, dass man bei genügend Messwerten ein beliebiges Maß an erwarteter Genauigkeit erreichen kann, obwohl jedes zusätzliche Bit mehr als eine Verdoppelung der Anzahl von Messwerten erfordern würde.

Das Hinzufügen von genau einem LSB von linear verteiltem Dithering wäre ein sehr nettes Verhalten für einen ADC. Leider ist die Umsetzung eines solchen Verhaltens nicht einfach. Wenn das Dithering nicht linear verteilt ist oder wenn seine Größe nicht genau ein LSB ist, wäre die Menge an echter Genauigkeit, die man durch Mittelwertbildung erhalten könnte, stark eingeschränkt, egal wie viele Samples verwendet werden. Wenn man, anstatt ein LSB linear verteilter Zufälligkeit hinzuzufügen, mehrere LSB-Werte hinzufügt, erfordert das Erreichen eines bestimmten Genauigkeitsgrades mehr Messwerte, als mit der idealen Ein-LSB-Zufälligkeit erforderlich wären, aber die ultimative Grenze für die erreichbare Genauigkeit B. durch Vornahme einer willkürlichen Anzahl von Messwerten, weit weniger empfindlich gegenüber Unvollkommenheiten in der Zitterquelle.

Beachten Sie, dass es in einigen Anwendungen am besten ist, einen ADC zu verwenden, der sein Ergebnis nicht dithert. Dies gilt insbesondere unter Umständen, in denen man mehr daran interessiert ist, Änderungen in den ADC-Werten zu beobachten als in den genauen Werten selbst. Wenn die schnelle Auflösung des Unterschieds zwischen einer Anstiegsrate von +3 Einheiten/Abtastung und einer Anstiegsrate von +5 Einheiten/Abtastung wichtiger ist als zu wissen, ob eine stationäre Spannung genau 13,2 oder 13,4 Einheiten beträgt, kann ein Non-Dithering-ADC besser sein als ein schwankender. Andererseits kann die Verwendung eines Dithering-ADC hilfreich sein, wenn man Dinge genauer messen möchte, als es eine einzelne Messung erlauben würde.

Bonuslektion: Sie erhalten wirklich 14 Bit Genauigkeit , aber nur 12 Bit Genauigkeit .

Müsste das nicht „Auflösung“ statt „Präzision“ heißen? Präzision bezieht sich auf den Fehler, der sich über verschiedene Konvertierungen verteilt, und mit Gaußschem Rauschen an den beiden LSBs, die ebenfalls 12 Bit betragen.
Ich ging und las einige Definitionen, und ich glaube, Sie haben Recht. Ich neige dazu, im Videozeitalter vor „Auflösung“ zurückzuschrecken, aber es ist immer noch der beste Begriff. Ich denke, vielleicht haben sie in der High School Präzision nicht ganz richtig erklärt.

Eine zusätzliche Einschränkung ... manchmal möchten Sie tatsächlich Zufälligkeit .

Zum Beispiel:

In kryptografischen (Sicherheits-/Authentizitäts-)Anwendungen ist eine reine „nicht zu erratende“ Zufälligkeit erforderlich. Die Verwendung der LSBs eines Konverters (die unterhalb des Grundrauschens) ist eine schnelle Möglichkeit, reine Zufallszahlen zu erzeugen.

Wenn die ADC-Hardware für andere Zwecke (Sensoren und dergleichen) verfügbar ist, ist dies eine schnelle und einfache Möglichkeit, eine sichere Kommunikation aufzubauen. Sie können den Effekt verstärken, indem Sie die Verstärkung am Eingangsverstärker maximieren, falls verfügbar (viele MCUs bieten eine solche Funktion) und den Eingang floaten.

Die ADC-Zufälligkeit leitet sich hauptsächlich von zwei physikalischen Prinzipien ab: Quantisierungsrauschen und thermisches Rauschen.

Diese Effekte haben eine Schwelle auf makroskopischer Ebene. Beispielsweise müssen Zahlen, die ausreichend von der Bitgrenze entfernt sind, nicht gerundet werden und erfahren daher keinen Quantisierungsfehler oder Zufälligkeit. Thermisches Rauschen wirkt sich in den meisten Szenarien nicht auf die signifikanteren Bits in der Konvertierung aus.

Als Erweiterung können Sie sehen, dass das Variieren der Konvertierungsparameter (Abtastzeit, Tiefe, Rate, Referenzspannung) eine Änderung der Zufälligkeit der Ergebnisse bewirkt, indem der Schwellenwert der Zufälligkeit verschoben wird (entweder durch Erhöhen oder Verringern des Schwellenwerts). ). Ein ähnlicher Effekt wird durch Variieren der Umgebungs-/Systemparameter (Temperatur, Stromversorgung usw.) erzielt.

Allerdings verlassen sich viele erfolgreiche kommerzielle Hardware-Zufallszahlengeneratoren auf diese Technik, da äußere Effekte die Zufälligkeit nur reduzieren – sie beseitigen sie keineswegs (physikalisch unmöglich).

Sie können eine Verringerung der Zufälligkeit kompensieren, indem Sie mehr Konvertierungen durchführen und die Ergebnisse anhängen. Dieser Prozess der Biterweiterung (Verkettung der niedrigen Bits aufeinanderfolgender Konvertierungen) wird in den STM32 Nucleo Dongles, dem FST-01 (einschließlich NeuG 1.0), der Grang-Gerätefamilie von LE Tech und vielen anderen verwendet.

Die Grang-Geräte erzeugen Bits, indem sie mit über 400 Millionen Konvertierungen pro Sekunde konvertieren (1 Bit pro Konvertierung). Wenn Sie genügend Konvertierungen durchführen, können Sie auch angesichts der Umgebungsbedingungen eine hohe Zufälligkeit garantieren.

Es ist eine sehr schlechte Idee anzunehmen, dass das ADC-Rauschen eine gute zufällige Rauschquelle ist. Es ist sehr wahrscheinlich, dass es mit anderen Dingen in der Schaltung, der IC-Temperatur und vielen anderen Dingen korreliert. Wenn Sie echte Zufälligkeit brauchen, stellen Sie sicher, dass Sie Ihre Quelle testen!
"Testen Ihrer Quelle" ist eine offensichtliche Anforderung in jedem Schema. Es ist jedoch keineswegs "eine sehr schlechte Idee" ... auch wenn es mit der Temperatur korreliert. Das reduziert nur die Zufälligkeit, eliminiert sie nicht. Sie können durch Biterweiterung (Verkettung der niedrigen Bits aufeinanderfolgender Konvertierungen) kompensieren.
Ich sagte, es ist eine schlechte Idee anzunehmen , keine schlechte Idee im Allgemeinen. Wenn Sie die Zufälligkeit Ihrer ADC-Rauschquelle gründlich testen und sie überprüft, hätte ich keine Probleme damit.