Forum: Digitale Signalverarbeitung / DSP / Machine Learning AD-Wandler Quantisierungsfehler anhand einer Tabelle


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Mnb B. (poiuzt)


Bewertung
0 lesenswert
nicht lesenswert
Hi,

meine Aufgabe besteht grob darin einen:
a) realen Fehler und
b) binären Wert anhand einer Tabelle zu finden.

Vorher habe ich den Quantisierungsfehler berechnet, wie hier: 
https://www.mikrocontroller.net/articles/Quantisierung. Es ist ein 8-bit 
Wandler mit Ua = 5V aber mit Uw = 3V.

Ich habe folgende Tabelle:

i | Ua ________| Uw________| Binär
------------------------------------------
7 | 2,5 _______| 0,5 _______| 0
6 | 1,25 ______| 0,5 _______| 0
5 | 0,625 _____| 0,5 _______| 0
4 | 0,3125 ____| 0,1875 ____| 1
3 | 0,15625 ___| 0,03125 ___| 1
2 | 0,078125 __| 0,03125 ___| 0
1 | 0,0390625 _| 0,03125 ___| 0
0 | 0,01953125 | 0,01171875 | 1

Die Ua wurde immer durch 2 geteilt;
Bei Uw war der Startwert 0,5 und der Rechenweg ist: Uw - Ua = Ergebnis; 
wenn ein Minus im Ergebnis ist, dann lässt man die Zahl so, wenn Plus, 
dann ist es die neue Zahl.
Beispiel: 0,5 - 0,625 = - 0,125 --> 0,5 - 0,3125 = 0,1875 (somit neue 
Zahl)
Die 0,01171875 ist das Ergebnis, wenn man 3 durch 256 teilt.

Meine Frage ist wie man auf Ua und Uw kommt?? Bei Ua könnte ich es mir 
noch mit 5/2 = 2,5 erklären aber bei Uw habe ich nicht mal eine Idee. 
Sieht hier evtl. jemand warum man bei Uw mit dem Wert 0,5 angefangen 
hat?


PS: die Unterstriche in der Tabelle sind nur Platzhalter; wusste gar 
nicht dass es kompliziert sein kann, eine Tabelle hier zu zeichnen ...

von Joe F. (easylife)


Bewertung
0 lesenswert
nicht lesenswert
Mnb B. schrieb:
> wusste gar nicht dass es kompliziert sein kann, eine Tabelle hier zu zeichnen 
...
1
[pre] 
2
tabelle in fixed width font
3
[/pre]

: Bearbeitet durch User
von A. S. (achs)


Bewertung
0 lesenswert
nicht lesenswert
Woher hast Du die Tabelle?

Was ist deine Aufgabe? (Nicht nur grob)

Wieso gibt es eine Tabelle für Ua und Uw, wenn die Werte doch 3 und 5V 
sind?

von Mnb B. (poiuzt)


Bewertung
0 lesenswert
nicht lesenswert
Die Aufgabe ist es zu zeigen, dass man den Fehler, also die zwei Zahlen 
zum Schluss der Tabelle, auch so berechnen kann .. also als eine 
Tabelle. Daher auch diese Tabelle. Mehr habe ich dazu nicht. Ich habe 
alle Formeln exakt so wie in dem Link, den ich mit angegeben habe aber 
mehr habe ich halt auch nicht.
Die Aufgabe ist somit zu zeigen, dass man den Quantisierungsfehler auch 
per Tabelle errechnen kann.

von Achim S. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Mnb B. schrieb:
> ch habe
> alle Formeln exakt so wie in dem Link, den ich mit angegeben habe aber
> mehr habe ich halt auch nicht.

Was in dem Link steht ist völlig klar und nachvollziehbar. Man kann aber 
kaum verstehen, was deine Aufgabenstellung ist und wie du sie zu lösen 
versuchst.

Wenn man lange genug auf deine Tabelle starrt beginnt man zu erahnen, 
was da gerechnet wird. Ich wage mal folgenden Tip:

Links steht letztlich die Referenzspannung des ADC U_a. In jeder Zeile 
(mit jedem weiteren Bit) halbiert man diesen Wert.

In der Mitte startet man mit einem beliebigen analogen Messwert U_w aus 
dem Messbereich des ADC. Solange dieser Wert kleiner ist als der 
Referenzwert durch 2^n lässt man den Wert stehen und merkt sich im 
(digitalen) Ergebniswort rechts eine Null. Wenn die Restspannung größer 
ist als U_ref/2^n, dann zieht man vom Restwert U_re/2^n ab und merkt 
sich im digitalen Ergebnis eine Eins.

Wenn man das für jedes Bit gemacht hat, dann kennt man das digitale 
Zahelnwort (rechts) für dieses U_w und in der mittleren Spalte steht der 
"Rest", der bei dieser Methode nicht korrekt abgebildet wurde (also der 
Quantisierungsfehler). Links steht die Größe des 
Quantisierungsintervalls.

Ist das so richtig interpretiert? Aus deiner Beschreibung wurde mir das 
nicht so ganz klar. Das ist im Endeffekt die Nachbildung dessen, was ein 
SAR-ADC macht in einer Tabelle.

Es wäre hilfreich gewesen, wenn das aus deiner Beschreibung etwas klarer 
herausgekommen wäre.

Jetzt zu deiner Frage:

Mnb B. schrieb:
> Meine Frage ist wie man auf Ua und Uw kommt?

U_a beschreibt den Messbereich des ADC (in der ersten Zeile steht der 
Wert, der einem ADC-Ergebnis von binär 10000000 entspricht, also 
U_ref/2.

U_w ist irgendein Messwert, anhand dessen man das Verfahren beispielhaft 
durchzieht. Du kannst auch ein anderes U_w wählen. Dann bekommst du halt 
ein anderes digitales Ergebnis und einen anderen Quantisierungsfehler.

von Joe F. (easylife)


Bewertung
0 lesenswert
nicht lesenswert
Mnb B. schrieb:
> Meine Frage ist wie man auf Ua und Uw kommt?? Bei Ua könnte ich es mir
> noch mit 5/2 = 2,5 erklären aber bei Uw habe ich nicht mal eine Idee.
> Sieht hier evtl. jemand warum man bei Uw mit dem Wert 0,5 angefangen
> hat?

Das ist die zu messende Spannung am Wandler. Die wurde in deinem 
Beispiel eben mit 0.5V angenommen.

Mnb B. schrieb:
> Es ist ein 8-bit
> Wandler mit Ua = 5V aber mit Uw = 3V.

Verstehe nicht, was du mit "Es ist ein Wandler mit Uw=3V" meinst. Uw ist 
die zu messende Spannung und kann von 0 bis Ua gehen.

Wenn du jetzt mal den Binärwert in deiner Tabelle anguckst (00011001) 
stellt das den ADC Wert 25 dar.

25/(2^8) * 5V = 0.48828125V

D.h. der Quantisierungsfehler in diesem Fall (Eingangsspannung = 0.5V) 
ist
0.48828125V - 0.5V = -0.01171875V

von Mnb B. (poiuzt)


Bewertung
0 lesenswert
nicht lesenswert
Achim S. schrieb:
> Ist das so richtig interpretiert?

Korrekt.

> Es wäre hilfreich gewesen, wenn das aus deiner Beschreibung etwas klarer
> herausgekommen wäre.

Naja .. mehr habe ich auch nicht. Es wurde zuerst über die Quantisierung 
und deren Fehler gesprochen und dann ging man direkt über zu dieser 
Tabelle. Ich habe nur halt den Übergang nicht kapiert und dachte man 
kann das im Internet/Büchern finden aber die Tabelle gibts nirgends wie 
es aussieht.

>
> Jetzt zu deiner Frage:
>
> U_w ist irgendein Messwert, anhand dessen man das Verfahren beispielhaft
> durchzieht. Du kannst auch ein anderes U_w wählen. Dann bekommst du halt
> ein anderes digitales Ergebnis und einen anderen Quantisierungsfehler.

Ok. Dort ist mir aufgefallen, dass es nicht funktioniert. Denn zum 
Schluss bei Uw ist es 0,01171875 und das ist exakt der Wert, den man bei 
Uw/256 = 0,01171875 bekommt. Wenn ich meinen Wert ändere, funktioniert 
das nicht mehr. Daher komme ich nicht drauf, wieso der Uw-Wert bei 0,5 
beginnt. Daher glaube ich nicht, dass man mit einem beliebigen Uw-Wert 
in der Mitte starten kann.
Der Sinn dieser Tabelle ist es zum Schluss bei i=0 zu zeigen, dass wenn 
man Ua und Uw durch 256 teilt, dies der Quantisierungsfehler ist. Nur 
soll man es umständlich durch diese Tabelle beweisen, dass es auch so 
geht,

von Mnb B. (poiuzt)


Bewertung
-1 lesenswert
nicht lesenswert
Joe F. schrieb:

> D.h. der Quantisierungsfehler in diesem Fall (Eingangsspannung = 0.5V)
> ist
> 0.48828125V - 0.5V = -0.01171875V

Ok. Verstehe ich nicht ganz, denn meinen binären Wert kenne ich von 
vorne rein nicht. Ich berechne den durch den Rest aus meiner Tabelle 
heraus.
Gehe ich immer von der Eingangsspannung von 0,5V aus oder zählt es nur 
für den 8-bit Wandler?

von Joe F. (easylife)


Bewertung
0 lesenswert
nicht lesenswert
Mnb B. schrieb:
> Gehe ich immer von der Eingangsspannung von 0,5V aus oder zählt es nur
> für den 8-bit Wandler?

???

Deine exemplarische Tabelle zeigt die Wandlung der Eingangsspannung 
0.5V.
Was heisst "Gehe ich immer von der Eingangsspannung von 0,5V aus"?
Das musst du doch wissen...?!

Die Aufgabe war den binären Wert zu finden, der steht in der letzten 
Spalte, wenn man die Bits von oben nach unten liest, und der 
Quantisierungsfehler steht in der letzten Zeile bei Uw.

Wenn du deine Tabelle jetzt mit einem anderen Startwert = zu messende 
Spannung (z.B. 1.0V) fütterst sieht sie so aus:
1
i  Ua          Uw         Binär
2
7  2,5         1,0        0
3
6  1,25        1,0        0
4
5  0,625       1,0        1
5
4  0,3125      0,375      1
6
3  0,15625     0,0625     0
7
2  0,078125    0,0625     0
8
1  0,0390625   0,0625     1
9
0  0,01953125  0,0234375  1

D.h. der Binärwert für 1.0V wäre 00110011 (=51) und der 
Quantisierungsfehler 0.0234375V

: Bearbeitet durch User
von Mnb B. (poiuzt)


Bewertung
0 lesenswert
nicht lesenswert
Joe F. schrieb:
> Mnb B. schrieb:
>> Gehe ich immer von der Eingangsspannung von 0,5V aus oder zählt es nur
>> für den 8-bit Wandler?
>
> ???
>
> Deine exemplarische Tabelle zeigt die Wandlung der Eingangsspannung
> 0.5V.
> Was heisst "Gehe ich immer von der Eingangsspannung von 0,5V aus"?
> Das musst du doch wissen...?!
>
> Die Aufgabe war den binären Wert zu finden, der steht in der letzten
> Spalte, wenn man die Bits von oben nach unten liest, und der
> Quantisierungsfehler steht in der letzten Zeile bei Uw.


Na eben nicht. Es steht nirgends von welcher Eingangsspannung man 
ausgeht. Ich habe nur Ua liegt zwischen 0 und 5 V --> daher Ua = 5V. Bei 
Uw war der Wert ebenfalls vorgegeben mit Uw = 3V. Bis auf die Formel 
Uq=Ua/256 und Uq=Uw/256 habe ich nichts mehr da stehen. Daher weiß ich 
nicht, ob Eingangsspannung hier reinkommt oder nicht.

von Joe F. (easylife)


Bewertung
0 lesenswert
nicht lesenswert
Dann sollst du eben 3V in deine Tabelle einsetzen.

von Mnb B. (poiuzt)


Bewertung
0 lesenswert
nicht lesenswert
Joe F. schrieb:

> Wenn du deine Tabelle jetzt mit einem anderen Startwert = zu messende
> Spannung (z.B. 1.0V) fütterst sieht sie so aus:
>
>
1
> i  Ua          Uw         Binär
2
> 7  2,5         1,0        0
3
> 6  1,25        1,0        0
4
> 5  0,625       1,0        1
5
> 4  0,3125      0,375      1
6
> 3  0,15625     0,0625     0
7
> 2  0,078125    0,0625     0
8
> 1  0,0390625   0,0625     1
9
> 0  0,01953125  0,0234375  1
10
>
>
> D.h. der Binärwert für 1.0V wäre 00110011 (=51) und der
> Quantisierungsfehler 0.0234375V

Ok. Dann glaube ich, dass mir der Startwert allgemein entgangen ist. Ich 
dachte Uw hängt tatsächlich mit Uw von 3V zusammen.
Ok. Danke für die Antwort!

von Joe F. (easylife)


Bewertung
0 lesenswert
nicht lesenswert
Der Quantisierungsfehler steht übrigens NICHT in der letzte Reihe von 
Spalte Uw. Das war bei 0.5V reiner Zufall.

von Achim S. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Joe F. schrieb:
> Der Quantisierungsfehler steht übrigens NICHT in der letzte Reihe von
> Spalte Uw. Das war bei 0.5V reiner Zufall.

Der Quantisierungsfhler stünde in der Reihe nach der gezeigten letzten 
Reihe. Bei U_w=0,5 ist das letzte Bit eine Null, daher ändert sich 
nichts mehr.

Bei deinem Zahlenbeispiel U_w=1V ist das letzte Bit eine 1. Daher muss 
man nochmal U_ref/2^n abziehen, um auf den Quantisierungsfehler zu 
kommen.

Also nicht:

Joe F. schrieb:
> D.h. der Binärwert für 1.0V wäre 00110011 (=51) und der
> Quantisierungsfehler 0.0234375V

sondern: der Quantisierungsfehler ist 0.0234375V-0,01953125V = 3,9mV

von Joe F. (easylife)


Bewertung
0 lesenswert
nicht lesenswert
Ja, richtig.
Man müsste meine Tabelle noch eine Zeile weiterführen, dann stünde bei 
Bit "-1" der Quantisierungsfehler.
Ich habe in der ersten Zeile bei Uw den zu messenden Wert, und darunter 
den Quantisierungsfehler im Wandler. Beim TO ist Spalte Uw um eine 
Position nach oben verschoben, so dass da schon in der 8. Zeile (i=0) 
der entgültige Fehler steht.

: Bearbeitet durch User
von Achim S. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Joe F. schrieb:
> Beim TO ist Spalte Uw um eine
> Position nach oben verschoben, so dass da schon in der 8. Zeile der
> entgültige Fehler steht.

Und das erklärt vielleicht auch teilweise das Verständnisproblem des TO. 
Da er die U_w Spalte um eine Zeile nach oben verschoben verwendet, darf 
bei U_w=3V in der ersten Zeile nicht 3V stehen sondern 3V-2,5V=0,5V. 
(und das oberste Bit in der rechten Spalte müsste auf 1 gesetzt sein).

Bei der Tabelle des TO muss man sich ganz oben noch eine "halbe Zeile" 
dazudenken, wenn man die Startwerte sehen will. Bei der Tabelle in 
deiner Form muss man sich ganz unten noch eine halbe Zeile dazudenken, 
wenn man den Quantisierungsfehler sehen will.

von Mnb B. (poiuzt)


Bewertung
0 lesenswert
nicht lesenswert
Achim S. schrieb:

> Und das erklärt vielleicht auch teilweise das Verständnisproblem des TO.
> Da er die U_w Spalte um eine Zeile nach oben verschoben verwendet, darf
> bei U_w=3V in der ersten Zeile nicht 3V stehen sondern 3V-2,5V=0,5V.
> (und das oberste Bit in der rechten Spalte müsste auf 1 gesetzt sein).

Und wieso genau 3V-2,5V? Gehst du von 2,5V aus, weil Uref 0..bis..5V ist 
oder gehst du eher speziell von Ua mit 5V aus? Sprich wenn Ua z.B. 4V 
wären, wäre es dann 3V-2,0V?

von Achim S. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Mnb B. schrieb:
> Gehst du von 2,5V aus, weil Uref 0..bis..5V ist
> oder gehst du eher speziell von Ua mit 5V aus?

Ich gehe von 2,5V aus, weil U_ref=5V ist. Der Messbereich beträgt dann 
von 0V bis 5V.

Das oberste Bit des ADC repräsentiert also eine Spannung von 2,5V 
(5V/2). Wenn das oberste Bit gesetzt ist, müssen die restlichen Bits nur 
noch die Differenz 3V-2,5V abdecken.

von Mnb B. (poiuzt)


Bewertung
0 lesenswert
nicht lesenswert
Achso. Ok. Danke für die Hilfe!!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.