itapschleicher
Goto Top

Berechnungen AD-Wandler

Hallo Freunde!

Ich versuche gerade mich mit dem Thema der AD/DA Wandlung zu beschäftigen.
Leider verstehe ich die ganze Thematik nicht so ganz. Ich habe mir das Buch "Einfache IT-Systeme" vom Bildungsverlag EINS gekauft in der Hoffnung das ganze ein bisschen besser verstehen zu können, aber leider bringt dies nicht das gewünschte Ergebnis.

Also das Buch gibt folgende Aufgabe vor:
"Mit einem ADC soll eine analoge Spannung, die einen Bereich von U=0V bis Uend=1,28V umfasst, in 8-bit-Codewörter (Dualcode) umgesetzt werden.
a) Geben Sie für die folgenden Codewörter der Quantisierungsstufen an, in denen die folgenden analogen Spannungen liegen:
Z1 = 0000 0000; Z2 = 0000 0001; Z3 = 0011 1011;"

Folgendes habe ich gemacht:

1. Bestimmen der Breite der Spannungsbereiche
1,28 / ( 2^8) = 0,005V = 5mV

Da es ja 2^8 (256) Spannungsbereiche gibt, sollte ich doch die Quantisierungsstufen von +1 - +128 und -1 - -128 erhalten.

Nun ist mir die ganze Sache mit den Spannungsstufen nicht ganz verständlich. Wie berechne ich nun aus dem Binärcode die Spannungsstufen?

Es wäre super wenn mir jemand helfen könnte, denn stundenlanges googeln hat mich zwar zu ergebnissen geführt, doch keine durch die ich das Prinzip des AD-Wandlers verstanden habe.

Vielen Dank im Vorraus!

Content-Key: 118012

Url: https://administrator.de/contentid/118012

Printed on: May 7, 2024 at 12:05 o'clock

Member: filippg
filippg Jun 11, 2009 at 17:34:01 (UTC)
Goto Top
Hallo,

Da es ja 2^8 (256) Spannungsbereiche gibt, sollte ich doch die
Quantisierungsstufen von +1 - +128 und -1 - -128 erhalten.
Nein, die Spannung soll zwischen 0 und 1,28V liegen. Den Bereich hast du richtigerweise in 256 Intervalle/Schrite unterteilt. 0V entspricht dem Wert 0 und 1,28 V entspricht Wert 256. Und x * 5mV entsprechen dem Wert x.

Gruß

Filipp
Member: itapschleicher
itapschleicher Jun 11, 2009 at 17:51:47 (UTC)
Goto Top
Danke für die schnelle Antwort!

Also wäre dann
0000 0001 = 5mV
0011 1011 = 295mV
usw.

Wenn ich dann jetzt eine Spannung von z.B. U1=2mV gegeben habe und angeben soll in welchem Bereich diese liegt, dann würde diese im Spannungsbereich mit dem Wert 0 (Codewort 0000 0000 bei 8 Bit) liegen, weil U1 < 5mV, oder?
Member: filippg
filippg Jun 11, 2009 at 18:21:01 (UTC)
Goto Top
Zitat von @itapschleicher:
Danke für die schnelle Antwort!

Also wäre dann
0000 0001 = 5mV
0011 1011 = 295mV
usw.
Ja.

Wenn ich dann jetzt eine Spannung von z.B. U1=2mV gegeben habe und
angeben soll in welchem Bereich diese liegt, dann würde diese im
Spannungsbereich mit dem Wert 0 (Codewort 0000 0000 bei 8 Bit) liegen,
weil U1 < 5mV, oder?
Das kann man so nicht sagen. Wir habe jetzt erstmal definiert "0V entspricht 0 und 5mV entsprechen 1". Was bei 2mV ist? Im theoretischen Bereich würde ich da eine 0 draus machen, da 2mV ja näher an 0V als 5mV ist. In der Praxis müsste sich der Hersteller eines AD-Wandlers entscheiden, wie er mit solchen Werten umgeht. Vielleicht wird für einen solchen ja auch gar kein Wert geliefert, sondern der Wandler meldet einen Fehler, weil er eine Messung nicht eindeutig zuordnen konnte.

Gruß

Filipp
Member: itapschleicher
itapschleicher Jun 11, 2009 at 20:04:02 (UTC)
Goto Top
Okay! Vielen Dank für deine Hilfe, ich denke jetzt ist mir das Prinzip des AD-Wandlers klarer geworden. Danke mnochmal!
Member: pieh-ejdsch
pieh-ejdsch Jun 11, 2009 at 23:28:20 (UTC)
Goto Top
Also ADU und DAU
Bzw ADC und DAC
Die 8 bit umfassen bei der Parrallelumsetzung 255 Schalter. Das heist jeder Schalter hat eine bestimmte Spannungsgröße.
Z0=00 00 00 00 hat keinen Schalter also den Schalter 0 und Spannungswert U=0V
ZZ=11 11 11 11 hat demnach den Schalter 255 und den Spannungwert Uend=1,28V

jetzt brauchst Du den Spannungswert U1=n=? welcher von Spannungswert Un bis Un+1 geht.
also Deine Breite n=0,005V
U1=0,00501960V (gerundet)
Jetzt musst Du noch den Binärcode Umrechnen Das Heist Deine Schalterpositionen Z ins DezimalSystem
Z2=00 00 00 01 =U1=n1= 0,005V 0,00501960V (gerundet)
Z2a=00 00 00 10 =U2=n2= 0,01V 0,01003921V (gerundet)
Z2b=00 00 01 11 = U7=n7= 0,035V 0,03513725V (gerundet)

also immer vom Binärcode ins Dezimalsystem:
8.bit 7.bit 6.bit 5.bit 4.bit 3.bit 2.bit 1.bit
+128 +64 +32 +16 +8 +4 +2 +1
immer wenn der Bitwert 1 ist rechnest Du Die Zahl dazu.
Member: pieh-ejdsch
pieh-ejdsch Jun 11, 2009 at 23:42:59 (UTC)
Goto Top
Zitat von @itapschleicher:
Wenn ich dann jetzt eine Spannung von z.B. U1=2mV gegeben habe und
angeben soll in welchem Bereich diese liegt, dann würde diese im
Spannungsbereich mit dem Wert 0 (Codewort 0000 0000 bei 8 Bit) liegen,
weil U1 < 5mV, oder?

Ganz genau
Nach Deinem Beispiel:
Der ADC arbeitet mit Grenzwerten das heist wenn die Eingansspannung zwischen 0 bis 0,00499V liegt wird der Schalter 0 als Digitalwert ausgegeben. Wenn die Eingangsspannung zwischen 0,005 bis 0,00999V liegt wird der Schalter 1 als Digitalwert ausgegeben. Und so weiter
Anders beim DAC der gibt dir wiederum nur die Festen Spannungswerte als Ausgangspannung. Wenn der Digitalwert 1 eingegeben wird kommt als Ausgangsspannung genau 0,005V heraus.

Ist nach falschen Beispiel wenn Uend=1,275V ist.
Member: lobotomie
lobotomie Jun 12, 2009 at 08:19:26 (UTC)
Goto Top
ömmm, korrigiert mich bitte. Aber ich komme bei Schritten von 0,005 V im geschlossenen Intervall von 0 V bis 1,28 V auf 257 Schritte. Diese lassen sich aber nicht ohne weiteres mit 8 Bit darstellen.

So wie pieh-ejdsch es beschrieben hat, sehe ich keine Möglichkeit auf die vollen 1,28 V zu kommen (immer unter der Voraussetzung dass die Schrittgrösse 0,005 V beträgt).

Loco Lobo
Member: pieh-ejdsch
pieh-ejdsch Jun 12, 2009 at 09:56:59 (UTC)
Goto Top
@ lobotomie
Du hast recht. Ich hab mich Irgenwie von den vorher ausgerechneten 0,005V irritieren lassen.
Entweder Das Beispiel wird umgeschrieben und Uend=1,275V
und die Breite U1=0,005V bleibt
oder die SpannungsBreite U1 wird diesmal richtig berechet mit U1=Uend/2^n -1
U1=0,00501960V (gerundet)
Member: itapschleicher
itapschleicher Jun 14, 2009 at 09:38:02 (UTC)
Goto Top
Danke für eure Antworten!

Warum berechnet sich die Spannungsbreite durch Uend/2^n-1, also warum "2^n-1". Ich dachte in dem Beispiel 2^8 = 256 und somit Uend/256. Kann mir das jemand erklären?
Member: pieh-ejdsch
pieh-ejdsch Jun 14, 2009 at 22:46:03 (UTC)
Goto Top
Eigentlich ganz einfach.
Der ADC/DAC arbeitet mit einer bestimmten Bitbreite.
Wenn Dieser mit Einem Bit Arbeiten würde also 0 und 1.
ist Null der Erste Zustand also Schalter steh auf Null und der Zweite Zustand Eins Schalter steht auf Eins.
Also errechnet sich die Spannungsbreite aus:
2^1 -1 = 1 es gibt nur eine Spannungsbreite.
Das kommt daher, weil 0 ja schon der erste Zählwert bei Bitdarstellung ist und 1 ist der Zweite Zählwert.
Da Der ADC/DAC ja schliesslich auch eine 0 braucht (für den Schaltzustand 0) ist der erste Schalter Vergeben.
8 bit stellen da sozusagen 256 Verschiedene zustände dar. Der Erste Zustand ist 0 und der 256te Zustand ist 255.
Die erste Spannungsbreite geht vom ersten Schalter bis zum 2ten Schalter. Die 255te Spannungsbreite geht vom 255ten bis zum 256ten Schalter.

Ein bisschen Algebra. Steht aber auch im Taschenbuch der Elektrotechnik und Elektronik!

Gruß Phil
Member: itapschleicher
itapschleicher Jun 15, 2009 at 09:19:15 (UTC)
Goto Top
Danke für deine Antwort! Jetz is alles klar!
Member: itapschleicher
itapschleicher Jun 16, 2009 at 06:53:16 (UTC)
Goto Top
Hallo!

Noch eine Frage zum ADC/DAC. Ich habe gelelesen, dass bei der Wandlung von Codewörtern zurück in analoge Spannungen sogenannte Quantisierungsfehler entstehen, da immer nur der Mittelwert der Quantisierungsstufe zurück gegeben wird.


Konkrekt heißt das für mich:

Uend = 1,28V
1Spannungsstufe = 0,005019608V = 5,019698mV

Z1 = 0000 0000 = 0,005019608 / 2 = 0,002509804V
Z2 = 0000 0001 = (0,005019608 * 1) + 0,005019608 / 2) = 0,007529412V
Z3 = 0000 0010 = (0,005019608 * 2) + (0,005019608 / 2) = 0,01254902V
usw.

aber was wäre dann bei

Z256 = 0000 0010 = (0,005019608 * 255) + (0,005019608 / 2) = 1,282509804V

Der Wert von Z256 ist doch gar nicht vorgesehen. Kann mir das jemand bitte noch auf die schnelle erklären? Ich müsste schon um 12.30 Uhr los und da ist es für mich ganz wichtig das zu wissen.

Vielen Dank im Vorraus!

###ADD###

ich habe mal im Internet gegoogelt und mir ist da so ein gedanke gekommen. Ich sehe 0000 0000, also 0 immer als eine Spannungsstufe an, aber wenn der DA Wandler den Wert 0 ausspuckt ist damit auch gleichzeitg eine Spannung von 0V verbunden.
Das würde bedeuten, dass Z1 = 0000 0001 = 1 = (1*0,005019608) - (0,005019608 / 2) = 0,002509804V
Dann wäre Z256 = (255*0,005019608) - (0,005019608 / 2) = 1,277490236V

Ist das soweit richtig?
Member: pieh-ejdsch
pieh-ejdsch Jun 20, 2009 at 21:59:01 (UTC)
Goto Top
.....sogenannte Quantisierungsfehler entstehen, da immer nur der Mittelwert der Quantisierungsstufe zurück gegeben wird.
da kommen wir ja wieder zurück wo Du begonnen hast...
....Quantisierungsstufen von +1 - +128 und -1 - -128 erhalten.
Das ist so ähnlich wie Du es ausrechnen wolltest.

Der Quantisierungsfehler beschreibt die Größe der Schwankung der Ausgangsspannung beim Wandeln des Signals von Digital nach analog.

Das was Du bei Deinem Quantisierungsfehler Ausgerechent hast ist die Größe des Quantisierungsfehlers in eine Richtung: bei Dir immer Un minus1/2.
Die Ausgangsspannung schwank aber um die Größe des Quantisierungsfehlers +- 1/2 Un

->>auch bezeichnet als Quantisierungsrauschen.
Es geht also auch nach oben: um die Größe des Quantisierungsfehlers plus 1/2 welche Du ausgerechenet hast (1/2 Un)

Richtig wäre demnach die Aussage
....durch die Quantisierungsfehler plus/minus 1/2 Un, das Quantisierungsrauschen entsteht und demnach nur ein Mittelwert der Quantisierung ausgegeben wird.

daher auch der Begriff Signal-Rauch-Abstand:
je höher die Auflösung vom Wandler desto höher der Rauschabstand und umso besser das Signal.

zu verdeulichen mit der Ausgabe einer wav bzw cda, die ja immer von Digital auf analog gewandelt werden und aus den Lautsprecheranschlüssen abgegriffen werden.
die wav wird niemals 100% genau ausgegeben sondern die Signale werden gemittelt ausgegeben.
Mit wenig Technik könnte man das schon bei einer schlechten Anlage messen.