Hallo allerseits, ich möchte einen digitalisierten Spannungswert auf einem Diplay ausgeben. Ist folgende Formel zur Umrechnung aus dem binären bzw. dezimalen Wert ok? Ue= Xd *(Uref/2^n-1) Ue ...Eingangssp Xd ...dezimaler Ausgangswert Uref...Referenzspg n ...Quantisierungsstufen Grüße, Cosi
Cosi wrote: > ok? > > Ue= Xd *(Uref/2^n-1) > Yep. Ist ok.
Realplotter wrote:
> Ue = Xd * Uref / 2^n
Ist nicht ok. Bei einem 10 Bit ADC ist der Fehler aber nicht
alllzugross und oft akzeptabel.
>Cosi wrote: >> ok? >> >> Ue= Xd *(Uref/2^n-1) >> >Yep. Ist ok. ;) na was sage ich jetzt ? ist nicht ok, Realplotter hat Recht. Der ADC samplet einen Bereich von 0V bis VRef in einzelne "Häppchen", davon hat ein 10 Bit ADC 1024 Stück. Gruß Hagen
Nein. Ich hab mich verhaut. Realplotter hat recht. Die korrekte Umrechnung lautet tatsächlich Ue = Xd * Uref / 2^n Beispiel: Angenommen der ADC kann nur 5 Stufen und wird mit einer Referenz von 5V betrieben Volt 0 1 2 3 4 5 +---+---+---+---+---+ Wert vom ADC 0 1 2 3 4 Die Umrechnung lautet in diesem Fall Ue = Xd * 5 / 5 Für den Maximalwert vom ADC (4) ergibt sich damit ein Spannungswert von 4 * 5 / 5 = 4 Dieses Ergebnis ist so zu interpretieren, dass bei einem ADC Wert von 4 die tatsächliche Spannung irgendwo im letzten rechten Bereich der Zeichnung da oben zu suchen ist. Ein ADC Wert von 4 sagt also nur aus, dass die Spannung im Bereich 4 bis 5 Volt lag. Daher ist es nur konsequent, wenn die Umrechnung immer den unteren Wert der Bereichsgrenze für einen ADC Wert liefert.
genau, mit einer 5V Referenz und 10 Bit ADC ist die höchste meßbare Spannung exakt 5/1024*1023 = 4,99... Volt. Dieser Wert ist der unterste Spannungwert der noch als exakt 5 Volt interpretiert werden kann. Gruß hagen
Genaugenommen müsste es doch (Xd + 0.5) * Uref / 2^n sein, um den mittleren quadratischen Fehler zu minimieren, oder?
Ja könnte man so rechnen, quasi der Durchschnitt. Was ich meinte sind die Grenzwerte, du rechnest einen Offset rein um diese Grenzwerte zu verschieben um am Ende quasi eine "Rundung" in die Mitte der Grenzwerte durchzuführen. Aber das sagt eben als Zahl nicht mehr aus als das wir nur in 0.00488.. Volt Schritten exakt messen können. Deine so gemittelte Zahl ist also nicht genauer nur weil sie auf die Mitte gerundet wurde. Soweit die Mathematik in der Praxis hängt das vom ADC Meßverfahren ab, aber das dürfte wohl klar sein. Ich persönlich mache das für die Anzeige der Daten auch so. Es ist schon blöde wenn man exakt 5 Volt mit 5 Volt VRef ausmisst und das steht was von 4.995117188 Volt. Richtig wäre es aber, den das ist die kleinste Zahl nach dem vorherigen Schritt in der entsprechenden Meßgenauigkeit, also 4.990234375. Normalerweise müsste man den Offset Error der VRef ermitteln und dann die nachfolgenden Messungen korregieren. Gruß Hagen
Man kann die Umrechnung als eine DA-Wandlung betrachten, da man von dem diskreten Bereich den der AD-Wandler liefert wieder auf einen kontinuierlichen Bereich (Volt, ° Celsius) abbildet. Um den Fehler bei der DA-Wandlung zu minimieren legt man im Normalfall die Rekonstruktionswerte in die Mitte der Intervalle. Mal ein Beispiel: 2 Bit-Wandler, uref = 8 V. Wenn der Eingang 8 V ist kommt nach deiner Formel (3 * uref / 2^2) = 6 V raus, also maximal 2 V daneben. Nach meiner kommt ((3 + 0.5) * uref / 2^2) = 7 V raus, die Anzeige liegt also maximal 1 V neben dem wahren Wert. Volt 0 2 4 6 8 +---+---+---+---+ Wert vom ADC 0 1 2 3 deine Formel ^ ^ ^ ^ meine Formel ^ ^ ^ ^ Gruß Andreas
@ Cosi (Gast) >ich möchte einen digitalisierten Spannungswert auf einem Diplay >ausgeben. Festkommaarithmetik MFG Falk
@Andreas, ja ich weis warum du das machst. Was ich aber ausdrücken möchte ist der Punkt was uns das Resultat sagt. In beiden Fällen entsteht die gleiche Meßgenauigkeit, das heist egal wie man es rundet (solange man nicht abrundet) es bleibt beim gleichen Informationsgehalt. Die Aussagekraft der Resultate ist die gleiche. Bei dir wird 7V angezeigt, es bedeutet aber 6V bis 8V. Bei mir wird 6V angezeigt, das heist es ist mindestens 6V kann aber bis 8V sein. Rechnet man mit dem ADC Wert weiter so verändert das nichts am späteren Resultat, bei beiden Verfahren. Nur die Interpretation der Meßabweichungen ist eine andere. Es hängt jetzt vom verwendeten ADC Verfahren ab ob der ermittelte ADC Wert in der Mitte des Bereiches liegt oder die untere oder obere Schranke eines Bereiches darstellt. Also je nach ADC Verfahren darf man dann nicht noch zusätzlich runden, bzw. den Meßwert mit einem Offset versehen um ihn zu verschieben. Gruß Hagen
Hagen Re wrote: > @Andreas, > > ja ich weis warum du das machst. Was ich aber ausdrücken möchte ist der > Punkt was uns das Resultat sagt. > > In beiden Fällen entsteht die gleiche Meßgenauigkeit, das heist egal wie > man es rundet (solange man nicht abrundet) es bleibt beim gleichen > Informationsgehalt. Die Aussagekraft der Resultate ist die gleiche. > > Bei dir wird 7V angezeigt, es bedeutet aber 6V bis 8V. > Bei mir wird 6V angezeigt, das heist es ist mindestens 6V kann aber bis > 8V sein. Wenn der Benutzer weiß dass "5" 6-8 V bedeutet, dann kannst du auch "5" anzeigen. Die Frage ist nur, macht das Sinn? Oder sollte man nicht den Wert anzeigen, der der tatsächlich gemessenen Spannung am nächsten kommt? Mehr Probleme bekommst du wenn du z.B. aus deinen Messungen einen Mittelwert bildest. Da kannst du dem Benutzer nicht vermitteln dass er einen angezeigten Mittelwert von 3.7 als 4.7 interpretieren muss (um bei o.g. Beispiel zu bleiben). > Also je nach ADC Verfahren darf man dann nicht noch zusätzlich runden, > bzw. den Meßwert mit einem Offset versehen um ihn zu verschieben. Der ADC kann ja keinen exakten Messwert ausgeben, er kann nur ausgeben in welchem Messintervall der anliegende Analogwert liegt. Du zeigst willkürlich die untere Grenze dieses Messintervalls an. Genausogut könntest du die obere anzeigen. Ich zeige die Mitte an, weil das im Durchschnitt am nächsten am wahren Eingangswert liegt. Dass es in der Praxis bei einer Auflösung von 10 Bit selten eine Rolle spielt, das steht wieder auf einem anderen Blatt. Da könnte man sich auch die Diskussion 1023 vs. 1024 sparen. Wenn man allerdings einen NTC linearisieren möchte o.ä., dann kann ich mir schon vorstellen dass man sich recht ordentliche Fehler einfängt wenn man nicht exakt rechnet. Gruß Andreas
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.