Hallo, wir behandeln in der Schule zur Zeit A/D Umsetzer. Leider ist sich die Fachliteratur nicht ganz einig wie man ein Quant berechnet. Laut einigen Fachbüchern bzw. einen Artikel hier ist ein Quant Messbereich/2^n Siehe http://www.mikrocontroller.net/articles/Quantisierung In anderen Fachbüchern findet man einen Quant mit Messbereich/((2^n)-1) angegeben. Was ist nun richtig? Sicher ist die Abweichung in der Praxis zu vernachlässigen, da aber eine Schulaufgabe ansteht würde es mich interessieren. Wir haben heute in der Klasse 3 Stunden darüber diskutiert, leider ohne auf eine einheitliche Lösung zu kommen. Meiner Meinung nach ist die zweite Lößung richtig, weil man z.B. mit 2^8 = 256 Spannungswerte darstellen kann. Zwischen diesen Werten gibt es aber nur 255 Stufen. Vielen dank für euere Hilfe
Der höchste Ausgabewert des A/D-Umsetzers ist zwar 2^n-1, weil die Zählung bei 0 beginnt, trotzdem ist ein Quant gleich der Referenzspannung geteilt durch die Anzahl der möglichen Werte, also Uref/2^n. Der A/D-Umsetzer liefert bei einer gegebenen Eingangsspannung Ue folgende Werte: 0 für 0 <= Ue < Uref/2^n 1 für Uref/2^n <= Ue < 2 * Uref/2^n 2 für 2 * Uref/2^n <= Ue < 3 * Uref/2^n 3 für 3 * Uref/2^n <= Ue < 4 * Uref/2^n . . . . . . . . . . . . . . 2^n-2 für (2^n-2) * Uref/2^n <= Ue < (2^n-1) * Uref/2^n 2^n-1 für (2^n-1) * Uref/2^n <= Ue < Uref Wegen des <-Zeichens in der letzten Zeile liegt die Referenzspannung Uref also streng genommen haarscharf außerhalb des Messbereichs. Für sie müsste der A/D-Umsetzer theoretisch 2^n liefern, was er aber nicht kann. Hier gibt's auch noch ein paar Informationen darüber: http://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC#Ein_paar_ADC-Grundlagen
Ich glaube, das ist das klassische Problem beim Stufenzählen. Ein n-Bit ADC / DAC kann 2^n verschiedene Werte wandeln. Dazischen hat er 2^n-1 Stufen. Baue eine Treppe mit vier Stufen, dann brauchst du ein Geländer. (Voschrift.) Diese Treppe hat vier senkrechte Kanten - aber fünf verschiedene Höhen! Okay, ich weiß, das ist nicht wirklich hilfreich. Ich würde die 2^n nehmen. Es kommt normalerweise auf die Werte an. Und in theroetischen Überlegungen / Berechnungen bist du damit auch besser dran. virtuPIC /ggadgets for tools & toys
Ein Quant eines linearen (!) AD Wandlers ist Messbereich/2^n groß. Punkt, aus. n = Auflösung des A/D Wandlers in [bit].
Probier mal M/(2^n) bei folgenden beispiel mit 2 Bit, Messbereich 10V 11b=10V 10b=6,66V 01b=3,33V 00b=0V Ein Quant ist der Unterschied den das LSB ausmacht -> 3,33V. Uq=10V/((2^2)-1)=3,33V Uq=10V/((2^2))=2,25V Eigentlich kann nur (2^n)-1 stimmen!
Sigmund Kreuzer wrote: > Probier mal M/(2^n) bei folgenden beispiel mit 2 Bit, Messbereich 10V > > 11b=10V > 10b=6,66V > 01b=3,33V > 00b=0V > > Ein Quant ist der Unterschied den das LSB ausmacht -> 3,33V. Du musst dir die Begrenzungen der Stufen überlegen. So könnte eine Umsetzung mit M/2^n breiten Stufen aussehen: 00 = 0.0-2.5 V 01 = 2.5-5.0 V 10 = 5.0-7.5 V 11 = 7.5-10 V Allerdings darfst du einen Wert von "00" dann nicht als "0 V" interpretieren, sondern entsprechend der Mitte des Intervalls als "1.75 V", sonst liegst du bis zu 2.5 V neben dem tatsächlichen Wert. Aus diesem Grund wird üblicherweise folgende Kennlinie verwendet, bei der die unterste Stufe 1/2 LSB breit ist: 00 = 0.0-1.25 V 01 = 1.25-3.75 V 10 = 3.75-6.25 V 11 = 6.25-10 V (EDIT 18:11: statt der 1.25 stand da 1.5, und entsprechende Folgefehler)
Bin gerade abgelenkt worden, deswegen überlappt sich mein Betrag mit dem von Andreas. Trotzdem vielleicht zur Vervollständigung: @Sigmund: Du musst berücksichtigen, dass ein bestimmter Digitalwert nicht für einen einzelnen Spannungwert, sondern für ein ganzes Spannung- intervall steht. Bei deinem 2-Bit-Umsetzer mit 10V Referenzspannung: 00b: 0,0V bis unter 2,5V 01b: 2,5V bis unter 5,0V 10b: 5,0V bis unter 7,5V 11b: 7,5V bis unter 10,0V Alle vier Spannungsintervalle sind gleich groß, nämlich 2,5V, wunderbar. Wo liegen nach deiner Theorie die Schwellwerte, an denen der Digitalwert jeweils auf den nächst höheren springt? Bei 3,33V und 6,66V und 10V? Dann würden die Intervalle folgendermaßen aussehen: 00b: 0,00V bis unter 3,33V (Intervallbreite 3,33V) 01b: 3,33V bis unter 6,66V (Intervallbreite 3,33V) 10b: 6,66V bis unter 10,00V (Intervallbreite 3,33V) 11b: 10,00V bis 10,00V (Intervallbreite 0,00V, huch?) D.h. der höchste Digitalwert wird nur dann ausgegeben, wenn die Eingangsspannung exakt 10,00V beträgt, was so gut wie nie passiert, da die Spannung immer ein wenig größer oder kleiner sein wird. @Andreas: Du schriebst: > Üblicherweise verwendet wird allerdings folgende Kennlinie, bei der die > unterste Stufe 1/2 LSB breit ist: > > 00 = 0.0-1.5 V > 01 = 1.5-4.0 V > 10 = 4.0-6.5 V > 11 = 6.5-10 V Wird das tatsächlich so gemacht? Ich habe immer gedacht, die einzelnen Spannungsintervalle sind bei linearen ADUs immer gleich groß. Oder gibt es da Unterschiede zwischen den einzelnen Typen?
Andreas Schwarz wrote: > Üblicherweise verwendet wird allerdings folgende Kennlinie, bei der die > unterste Stufe 1/2 LSB breit ist Der Fachbegriff: Midtread.
Der andere Fall ist Midrise.
Jein, das mag für Quantisierung in Software gelten, bei ADCs ist die Schrittweite trotzdem üblicherweise Vref/2^n. @yalu: Die meisten machen das so, beim AVR sieht man es auch im Datenblatt. In dieser Application Note sind auf Seite 3 beide Varianten anschaulich dargestellt: http://www.freescale.com/files/microcontrollers/doc/app_note/AN2438.pdf
> Die meisten machen das so, beim AVR sieht man es auch im Datenblatt. In dem Treppendiagramm zur Differential Non-Linearity (DNL) ist mir das auch schon aufgefallen. Aber da soll ja etwas ganz anderes demonstriert werden. Wenn die Schwellwerte tatsächlich um 0,5 LSB in Richtung Null verschoben wären, hätte ich erwartet, dass im Text ein paar Worte dazu stehen. Oder habe ich da etwas übersehen? Ich habe mich sowieso schon gefragt, ob ich bei Messungen mit Mittelung über sehr viele Werte, wo die Auflösung prinzipiell besser als 1 LSB werden kann, zu dem Ergebnis noch 0,5 LSB hinzuaddieren muss oder nicht. Bisher bin ich davon ausgegangen, dass ich es muss. Deiner Meinung nach muss man es also nicht. Diese Überlegung ist natürlich in sofern etwas müßig, da der Offset-Fehler je nach Controller-Typ mit typisch 1 bis 2 LSB gößer als die diskutierte Verschiebung um 0,5 LSB ist. Ein ADC von Analog, den ich gerade wahllos herausgegriffen habe, hat diese 1/2-LSB-Compensation übrigens nicht: http://www.analog.com/UploadedFiles/Data_Sheets/AD7819.pdf Um aber wieder auf die ursprünglich Frage zurückzukommen: Auch in den AVR-Datenblättern taucht bei der Umrechnung der Analogwerte eine 1024 (2^10) in den Formeln auf und keine 1023 (2^10-1).
yalu wrote: > @Andreas: > > Du schriebst: >> 00 = 0.0-1.5 V Das sollte natürlich 1.25 heißen, habe es oben korrigiert.
yalu wrote: >> Die meisten machen das so, beim AVR sieht man es auch im Datenblatt. > > In dem Treppendiagramm zur Differential Non-Linearity (DNL) ist mir > das auch schon aufgefallen. Aber da soll ja etwas ganz anderes > demonstriert werden. Wenn die Schwellwerte tatsächlich um 0,5 LSB in > Richtung Null verschoben wären, hätte ich erwartet, dass im Text ein > paar Worte dazu stehen. Oder habe ich da etwas übersehen? So richtig schön wie bei Freescale ist es leider nicht erklärt, aber unter "ADC Accuracy Definitions" wird es nebenbei erwähnt: • Offset: The deviation of the first transition (0x000 to 0x001) compared to the ideal transition (at 0.5 LSB).
yalu wrote: > Wo liegen nach deiner Theorie die Schwellwerte, an denen der > Digitalwert jeweils auf den nächst höheren springt? Bei 3,33V und > 6,66V und 10V? Dann würden die Intervalle folgendermaßen aussehen: > > 00b: 0,00V bis unter 3,33V (Intervallbreite 3,33V) > 01b: 3,33V bis unter 6,66V (Intervallbreite 3,33V) > 10b: 6,66V bis unter 10,00V (Intervallbreite 3,33V) > 11b: 10,00V bis 10,00V (Intervallbreite 0,00V, huch?) > > D.h. der höchste Digitalwert wird nur dann ausgegeben, wenn die > Eingangsspannung exakt 10,00V beträgt, was so gut wie nie passiert, > da die Spannung immer ein wenig größer oder kleiner sein wird. Meine Denkweise geht eigentlich denau den umgekehrten weg D->A bei 00b soll idealerweise 0V rauskommen bzw. bei 11b = 10V dann bleibt für 01b = 3,33V und 10b=6,66V die schaltschwellen liegen bei +-0,5 Quant also 00b = -unendlich bis 1,666 01b = 1,666 bis 4,999 10b = 4,999 bis 8,333 11b = 8,333 bis +unendlich
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.