Forum: Mikrocontroller und Digitale Elektronik 1 Bit AD-Wandlung - Erhöhung der Auflösung durch oversampling


von winne (Gast)


Lesenswert?

Die Ursprüngliche Diskussion zum Thema
ist hier zu finden.
Beitrag "Erhöhung der AD-Auflösung durch oversampling ?"
Also lest die Theorie dort nach.
Oder hier
http://www.atmel.com/images/doc8003.pdf

Ausgehend vom Ursprungsthema möchte ich folgende Vereinfachungen 
vornehmen.

Der 10-Bit AD-Wandler wird ersetzt durch einen 1-Bit- AD-Wandler.
Das ist im Prinzip ein Eingang, der als Ergebnis nur zwei Zustände 
liefert. Also eigentlich ein Digitaleingang, an den ein Analogsignal 
angelegt wird.
Dieser Eingang sollte zur Vereinfachung idealerweise eine rein ohmsche, 
gerade Kennlinie haben.
Der Schaltpunkt ist bei U/2.

Bitte jetzt keine Schaltungsvorschläge, es geht ums Prinzip.

Das Eingangssignal schwankt zwischen 0 und U. (Frequenz kommt später)
Alle Spannungen zwischen 0 und  < U/2 ergeben ein „Low“
Alle Spannungen zwischen U/2 und U ergeben ein „High“
„Typisch“ für einen 1-Bit-AD-Wandler dieser Art.
(Ja, ich glaube es gibt noch andere 1-Bit Wandler, die sind aber nicht 
gemeint)

Wenn man jetzt die Abtastrate variiert wird das keinen Einfluss auf das 
Ergebnis haben.
Das Ergebnis ist immer 0 oder U.

OK, was bringt eine Mittelwertberechnung ?
Eine Mittelwertberechnung bringt nur etwas, wenn die Eingangsspannung um 
den Schaltpunkt schwankt.
Liegt die Eingangsspannung „dauerhaft“ auf 3/4U ist das Ergebnis immer 
U.

Der Clou ist das Einspeisen eines Rauschsignals.
Die Amplitude des Rauschsignals ist U (siehe 
http://www.atmel.com/images/doc8003.pdf, Seite 3)
Zur Vereinfachung nehmen wir ein Sägezahn von vielleicht 100Hz.

Müsste doch funktionieren , oder ?

Ach ja fehlt ja noch die Berechnung und die gewünschte Auflösung.
Theoretisch ist alles drin, aber bleiben wir mal bei 3 - 4 Bit.

Hab ich was bei der Betrachtung vergessen ?
(Bitte das ist nur eine Vereinfachung der Thematik)

von Alex S. (thor368)


Lesenswert?

Das Verfahren mit eiem Komperator und einem Sägezahn nennt sich auch 
successive approximation Wandler und ist durchaus gängig. So auch in AVR 
ADCs zu finden. Auch wenn dort etwas anders vorgegangen wird:
Das Verfahren ist systematischer und erzeugt eine Referenzspannung, die 
mit dem Eingangssignal verglichen wird.

Die Idee ist aber ähnlich.

Thor

: Bearbeitet durch User
von Bernd N (Gast)


Lesenswert?

>> Hab ich was bei der Betrachtung vergessen ?

Ja, von nix kommt nix.

Dein vorhergehender Thread wurde schon nicht ordentlich ausdiskutiert, 
wo willst du nun mit diesem hin ?

Kleines Zitat aus einer ähnlichen Diskussion...

Oversampling is based on assumption that if first measurement was A and 
the second measurement was B, the value must be exactly (A+B)/2 or for 
two bit, (A+B+C+D)/4.
You cannot get detail from nothing. It's like in those movies where they 
"enhance" a blurry photo and are able to reproduce the entire page of 
text from 4x4 pixel area.

Dem ist eigentlich nichts hinzuzufügen.

von winne (Gast)


Lesenswert?

Hallo Bernd,
für mich war das Ergebnis des letzten Thread klar. Es funktioniert. 
Dafür gab es genügend ausführliche Beiträge.

http://www.atmel.com/images/doc8003.pdf
http://www3.alcatel-lucent.com/bstj/vol27-1948/articles/bstj27-3-446.pdf

Die Gegenargumente waren nicht überzeugend und darüber wollte ich auch 
gar nicht mehr diskutieren.

> von nix kommt nix
ist nicht gerade das was ich erwartet habe.
Aber vielleicht gibt es ja noch belastbarere Argumente dagegen.

Würde ich gerne hören.

Beste Grüße

Winne


PS: Ist den Atmel wirklich so besch.. so etwas zu veröffenrtlichen oder 
haben wir den Sinn des Verfahrens nicht verstanden ?
http://www.atmel.com/images/doc8003.pdf

von Bernd N (Gast)


Lesenswert?

Das es funktioniert wissen wir aber die Randbedingungen und die Limits 
sind nicht ausreichend diskutiert. Das Atmel Dokument AVR 120, 121 
diskutiert das Thema zu theoretisch, also an der Praxis vorbei.

Beitrag "ADC und Fixed-Point Arithmetik"

Hier habe ich zu den App Notes mal einen Beispiel Code veröffentlicht, 
kann also jeder selbst ausprobieren. Für 1 bis 2 BIT ist das Verfahren 
durchaus geeignet aber darüber hinaus nicht zu gebrauchen. Außerdem 
werden die Schwächen der integrierten ADCs sichtbar. Alle von mir 
getesteten Typen haben einen positiven Offset Fehler, Nichtlinearitäten 
treten ebenso mehr in den Vordergrund.

Peters Fazit ist also durchaus (fast) korrekt, für 1 bis 2 BIT ok, dann 
macht es keinen Sinn mehr. Also der Griff zu einem besseren ADC.

Nochmal, wo willst du mit deiner 1 BIT Variante hin ? aus dem Nichts 
zauberst du keinen 16 BIT ADC.

von Knobikocher (Gast)


Lesenswert?

Dazu fällt mir das PRinzip des Sigma-Delta-Wandlers ein -> 1Bit Wandler 
mit extremer Überabtastung.

von Dennis (Gast)


Lesenswert?

winne schrieb:
> Der 10-Bit AD-Wandler wird ersetzt durch einen 1-Bit- AD-Wandler.
> Das ist im Prinzip ein Eingang, der als Ergebnis nur zwei Zustände
> liefert. Also eigentlich ein Digitaleingang, an den ein Analogsignal
> angelegt wird.

Also eigentlich ein Delta-Sigma-Modulator. Siehe link:

http://de.wikipedia.org/wiki/Delta-Sigma-Modulation

http://www.beis.de/Elektronik/DeltaSigma/DeltaSigma_D.html

Schau dich bei Tex@s Instruments rum, die haben ziemlich viele Bauteile 
dafür. ADi ebenso.

von Harald W. (wilhelms)


Lesenswert?

winne schrieb:

> für mich war das Ergebnis des letzten Thread klar. Es funktioniert.

Ja, es funktioniert mit AD-Wandlern, bei denen die Genauigkeit
wesentlich grösser als die Auflösung ist. Solche Wandler sind
aber, bis auf wenige Ausnahmen, nicht handelsüblich.
Gruss
Harald

von Dennis (Gast)


Lesenswert?

Bernd N schrieb:
> Nochmal, wo willst du mit deiner 1 BIT Variante hin ? aus dem Nichts
> zauberst du keinen 16 BIT ADC.

Mit diesem hier:

http://www.ti.com/product/ads1204

hatte ich 20-bit ENOB relativ mühelos. Man muss allerdings schon 
ziemlich genau wissen, was man tut.

dazu noch ein amc1210 und man muss sich nicht mal um die Filterung 
kümmern

von Bernd N (Gast)


Lesenswert?

Dennis,

das ist vermutlich nicht das was Winne diskutieren wollte. Das es Sigma 
Delta Wandler gibt wissen wir auch alle. Es entspricht aber nicht Winnes 
Betrachtung. Vielleicht doch ? dann sollte der Thread einen anderen 
Namen haben.

von Dennis (Gast)


Lesenswert?

Hi Bernd,

der Überschrift passt m.M.n. ziemlich gut. Bei der 
Delta-Sigma-Modulation machst du ja eine 1-Bit AD-Wandlung, aus dem ein 
Bitstrom entsteht. Durch eine geeignete Filterung kannst du dann aus dem 
selben Bitstom nach Belieben verschiedene Auflösungen erzeugen. Dies 
passiert durch - je nach Auflösung - massives Oversampling. Meist 
verwendet man dazu sinc3-Filter (Notch-Filter), oder aber auch gerne 
Tiefpässe aller Art.

von Bernd N (Gast)


Lesenswert?

Jaja aber Winne schrieb...

>> Der Clou ist das Einspeisen eines Rauschsignals.
>> Die Amplitude des Rauschsignals ist U (siehe
>> http://www.atmel.com/images/doc8003.pdf, Seite 3)
>> Zur Vereinfachung nehmen wir ein Sägezahn von vielleicht 100Hz.

>> Müsste doch funktionieren , oder ?

Aha, ok, das sieht mir nach einer anderen Frage aus.

von Dennis (Gast)


Lesenswert?

OK, jetzt nach nochmaligem Durchlesen des ersten Postings ist auch mir 
ein Licht aufgegangen :-)

Das ist wirklich kein Delta-Sigma, der funktioniert anders. Dort ist es 
gewollt, dass das Ausgangssignal kippt, damit man durch oversampling 
überhaupt etwas rausbekommt.

Das was der TO vorstellt, kann in dieser Form echt nicht funktionieren.

Sorry Jungs, Montag.....

(und der Kaffeautomat ist bei uns seit letzter Woche defekt!!)

von winne (Gast)


Lesenswert?

Das es noch andere Verfahren gibt ist klar.
>Stichwort: successive approximation Wandler oder Delta Sigma...
Danach suche ich auch gar nicht.

> Nochmal, wo willst du mit deiner 1 BIT Variante hin ? aus dem Nichts
> zauberst du keinen 16 BIT ADC.

Ich zaubere aus einem 11-Bit-AD auch keinen 13 oder 16-Bit-AD, das ist 
doch wohl klar.

kursiv
Aber ich schaffe es mit dem Verfahren die Auflösung so zu vergrößen,
dass es so ausssieht als ob es mehr Bit an Auflösung sind.
kursiv

Da will ich hin:
Nun was bei 11-Bit geht, sollte doch prinzipiell auch bei 1-Bit gehen, 
oder ?

@Bernd
Danke für den link zu Deinem Beitrag

von Bernd N (Gast)


Lesenswert?

>> Nun was bei 11-Bit geht, sollte doch prinzipiell auch bei 1-Bit gehen...

Aber du verlierst die Verhältnismäßigkeiten aus dem Blick. Aus einem 1 
BIT Wandler deiner Vorstellung machst du im ersten Schritt aus 1 BIT, 2 
BIT, glatte 100%. Wenn du schon 10 BIT hast und verwendest das 
Oversampling dann ist eben der Rauschanteil genau der Teil des Signals 
was dir 1 bis 2 BIT mehr bringt. Wie bitte stellst du dir das bei nur 
einem BIT Nutzsignal vor ? Ich komme einfach nicht dahinter was du 
willst ? Du zauberst hier aus dem Nichts. Du betrachtest das Rauschen um 
den Schaltpunkt eines Komparators der nur eine Schaltschwelle kennt.

von Dennis (Gast)


Lesenswert?

winne schrieb:
> Aber ich schaffe es mit dem Verfahren die Auflösung so zu vergrößen,
> dass es so ausssieht als ob es mehr Bit an Auflösung sind.

falsch. Mit Oversampling ist die Auflösung tatsächlich höher, da du 
sozusagen das Rauschen "mittelst" und damit noch ein paar Bits rausholen 
kannst. Filtert man geschickt, kann man durch "Rauschformung" das 
Rauschen in ein Frequenzbereich schieben, wo es nicht mehr stört. 
Zumindest theoretisch. Praktisch wirst du schon damit ein Problem haben, 
alle x Messungen exakt das gleiche Eingangssignal anzulegen. Ein SAR hat 
prinzipbedingt einen Eingangskondensator (S&H), der sorgt schon dafür 
dass diese Forderung nur schlecht erfüllt werden kann. Besser ist da ein 
DSM, aber auch nicht ideal.

winne schrieb:
> Da will ich hin:
> Nun was bei 11-Bit geht, sollte doch prinzipiell auch bei 1-Bit gehen,
> oder ?

Nicht so, wie du es oben beschrieben hast. wenn du schon bei 3/4 U_max 
das selbe Ausgangssignal wie bei u_max hast, so kannst du aus dem Signal 
nichts mehr rausholen. Da bringt dir dein Rauschsignal auch nichts mehr.

von winne (Gast)


Angehängte Dateien:

Lesenswert?

Also ich habe mir das ganze mal in Excel nachgerechnet. Dabei ist mir 
aufgefallen, ich habe bei meiner Eingangsbetrachtung den Offset 
vergessen. Der kommt zum Sägezahn noch dazu.

Das Rechenbeispiel geht von 32 Samples aus.

Als Vereinfachung wird das Ergebnis aus der Summe aller Samples, geteilt 
durch 32 gebildet.

Verändert man den Wert im blauen Feld zwischen 0 und 1 erscheint das 
Ergebnis unten in rot.

Formeln könnt Ihr in den Feldern nachschauen.

Beispielrechnungen:
Usignal, Ergebnis
1,00 , 1,00
0,90 , 0,91
0,80 , 0,81

...
0,20 , 0,22
0,10 , 0,13
0,00 , 0,03

von Nosnibor (Gast)


Lesenswert?

Durch Überlagern des Sägezahns und anschließendes Digitalisieren 
entsteht ein PWM-Signal, dessen Tastverhältnis die Eingangsspannung 
repräsentiert. Das würde man normalerweise durch Zeitmessung auswerten.

Stattdessen kann man natürlich auch regelmäßig nach dem Bit sehen und 
zählen, wie oft es H oder L ist. Solange man des nicht länger als eine 
PWM-Periode macht, bringt jede Verdoppelung der Samplezahl ein 
zusätzliches Bit Auflösung.

von Bernd N (Gast)


Lesenswert?

Das läuft aber eher in der Rubrik wir bauen uns einen ADC. Im Grunde 
kannst du auch mit nem R2R Netzwerk eine Treppenspannung erzeugen und 
diese an den Minus Eingang deines Komparators legen. Kippt der 
Komparator bei dem Vergleich mit der zu messenden Spannung dann 
entspricht der ADC Wert dem DAC. Ist es das worauf es hier hinaus läuft 
? Ansonsten erschließt sich mir dir Berechnung in den Excel Tabellen 
nicht.

von Helmut L. (helmi1)


Lesenswert?

1
Das mit den 1 Bit Wandler scheint zu funktionieren. Ich habe das mal simuliert.
2
3
4
#include <stdio.h>
5
#include <stdlib.h>
6
7
void main(void)
8
{
9
  double  Umess,URnd,UOut,UVer;
10
  int  i;
11
12
  Umess = 0.85;    // Messspannung 0 .. 2.5V
13
  UOut = 0.0;
14
15
  // Mittelwert bilden ueber 8192 Samples
16
  for(i=0;i < 8192;i++)
17
  {
18
    // Rauschen erzeugen mit Pegel von 0..2.5V
19
    URnd = ((double)rand()/(double)RAND_MAX)*2.5;
20
    //Rauschen zum Messsignal addieren
21
    UVer = URnd+Umess;
22
23
    // 1Bit Vergleich mit 2.5V und wenn groesser 2.5V auf UOut 1 addieren
24
    if(UVer >= 2.5) UOut += 1.0;
25
26
  }
27
  // UOut durch anzahl der Samples dividieren
28
  UOut /= 8192.0;
29
30
  // Und Skaliert ausgeben
31
  printf("UOut:%.2lf\n",UOut*2.5);
32
33
}

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Nosnibor schrieb:
> Durch Überlagern des Sägezahns und anschließendes Digitalisieren
> entsteht ein PWM-Signal, dessen Tastverhältnis die Eingangsspannung
> repräsentiert. Das würde man normalerweise durch Zeitmessung auswerten.
>
> Stattdessen kann man natürlich auch regelmäßig nach dem Bit sehen und
> zählen, wie oft es H oder L ist. Solange man des nicht länger als eine
> PWM-Periode macht, bringt jede Verdoppelung der Samplezahl ein
> zusätzliches Bit Auflösung.

Nochmal: Vervierfachung bringt ein 1-Bit mehr. Warum lest ihr nicht was 
ich schreibe?

Und einen Unterschied zwischen Oversampling und delta-sigma oder 
sigma-delta gibt es auch nicht.

Die Kunst liegt im Rauschsignal und dem nachfolgenden Filter. Achso, 
einen extrem stabilen Clock brauch man auch noch, denn es werden 
DIAC-Impulse integriert. Liegt der Abtastzeitpunkt nicht ander gleichen 
Stelle, integriert sich dies auch an anderer 'Bitzeit'.

von Harald W. (wilhelms)


Lesenswert?

Bernd N schrieb:

> Das läuft aber eher in der Rubrik wir bauen uns einen ADC.

Genau, und als Simulation lässt sich problemlos ein AD-Wandler
mit Hundert Bit Auflösung bei ein Bit Genauigkeit basteln. :-)
Gruss
Harald

von Bernd N (Gast)


Lesenswert?

>> Genau, und als Simulation lässt sich problemlos ein AD-Wandler
>> mit Hundert Bit Auflösung bei ein Bit Genauigkeit basteln. :-)

So isses :-) nur ziemlich Sinnfrei und mit der ursprünglichen Frage hat 
es auch nix zu tun. Wenigstens habe ich jetzt die Frage verstanden :-)

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Harald Wilhelms schrieb:
> Bernd N schrieb:
>
>> Das läuft aber eher in der Rubrik wir bauen uns einen ADC.
>
> Genau, und als Simulation lässt sich problemlos ein AD-Wandler
> mit Hundert Bit Auflösung bei ein Bit Genauigkeit basteln. :-)
> Gruss
> Harald

Genau Harald. Diese Frage stellte ich öfters, aber niemand konnte mir 
eine gescheite Antwort drauf geben. Es hängt auf jeden Fall mit der 
Verlustleistung des Wandlers zusammen.

von winne (Gast)


Lesenswert?

> Das läuft aber eher in der Rubrik wir bauen uns einen ADC.
Ja, so profan kann man das auch sehen. Aber hier geht es ums Verständnis 
des Prinzips. Ich will das Rad nicht neu erfinden und würde in der 
Praxis auch andere Verfahren bevorzugen.

> Ansonsten erschließt sich mir dir Berechnung in den Excel Tabellen
> nicht
schade

> Nochmal: Vervierfachung bringt ein 1-Bit mehr. Warum lest ihr nicht was
> ich schreibe?

Wer redet hier nur von Vervierfachung ? Je mehr Samples du hast, desdo 
größer ist im Prinzip die Auflösung.

Sinnfrei ist das ganze bestimmt nicht.
Ich glaube auch nicht das alle das Prinzip vestanden haben oder wollen.

>Die Kunst liegt im Rauschsignal und dem nachfolgenden Filter.
richtig

> Genauigkeit und Auflösung
Da schreib ich jetzt aber nix mehr zu.

von Peter D. (peda)


Lesenswert?

winne schrieb:
> Also lest die Theorie dort nach.
> Oder hier
> http://www.atmel.com/images/doc8003.pdf

Du unterliegst einem großen Irrtum.

Application-Notes werden von Leuten geschrieben, die einfach nur das 
Bauteil promoten sollen.
Sie sind weder vom Programmierstil, vom Ablauf, noch von den Grundlagen 
der Hit. Sie müssen auch garnicht praktisch nutzbar sein.
Sie enthalten in der Regel auch keine Fehlerbehandlung, sondern tun so, 
als wären sie die einzige Task und haben 100% CPU-Zeit zur Verfügung.
Auch bleiben einmal erstellte Application-Notes stehen, wenn sie sich 
technisch überholt haben oder mit den neueren ICs garnicht mehr 
funktionieren.

Du kannst daher nicht die Anforderungen daran stellen, wie z.B. an eine 
Diplom- oder Doktorarbeit.
Oder an einen Entwicklungsingenieur, der praktisch nutzbare Geräte 
entwickeln muß, die auch zuverlässig und reproduzierbar funktionieren.

Zu DDR-Zeiten gab es einen Edelbastler und Buchautor namens Hagen 
Jakubaschk. Er war berühmt dafür, daß seine Schaltungen fast niemand 
nachbauen konnte und sie auch zuverlässig funktionierten.

Es gibt Ausnahmen an Application-Notes, die auch praktisch einsetzbar 
sind, aber wirklich nur sehr wenige.

von winne (Gast)


Lesenswert?


von winne (Gast)


Lesenswert?

>Du kannst daher nicht die Anforderungen daran stellen, wie z.B. an eine
>Diplom- oder Doktorarbeit.
>Oder an einen Entwicklungsingenieur, der praktisch nutzbare Geräte
>entwickeln muß, die auch zuverlässig und reproduzierbar funktionieren.

Habe ich nicht gemacht.

von Peter D. (peda)


Lesenswert?

winne schrieb:
> http://www3.alcatel-lucent.com/bstj/vol27-1948/articles/bstj27-3-446.pdf
> Du hast den anderen Beitrag nicht erwähnt.

Weil er sich nicht mit Deinem Thema beschäftigt.

Ich habe den Artikel nur kurz überflogen. Ich konnte darin nichts 
entdecken, wie man zusätzliche gelogene Bits aus einem n-Bit ADC 
rauskitzelt.

von Peter D. (peda)


Lesenswert?

Hier mal ein interessanter Artikel zu einem 1 bzw. 1,5 Bit Wandler:

http://www.romanblack.com/BTc_alg.htm

von winne (Gast)


Lesenswert?

@Peter
das wird man so direkt in diesem Artikel auch nicht finden.

Aber hier mal ein anderer Erklärungsansatz zu den "zusätzliche gelogene 
Bits"

- Nehmen wir einen 1-Bit-Wandler, der einen bekannten, feststehenden 
Schaltpunkt (z.B. U/2) mit zwei "digitalen" Zuständen hat .

- Alles über Uschalt ist "1" und alles darunter ist "0".

- Egal was am Eingang anliegt es ist entweder "1" oder "0".

- Es ist auch völlig egal wie oft wir das abfragen.

- Zur Vereinfachung sollte hier ein Gleichpannungspegel  (z.B. 0,6*U ) 
als Eingangssignal in Betracht gezogen werden.

- Das Ergebnis ist bei 0,6*U immer 1 bzw U.

Nun kommt der Trick

- Nehmen wir an, dass der Schaltpunkt Uschalt verschoben werden kann.
z.B. auf U/4 , U/2 und auf 3/4 U.

- Es gibt dadurch weiter zusätzliche Schaltpunkte, die mit EINMEM 
(Hardware)-Bit quasi abgetastet werden.

- Verschiebe ich den Schaltpunkt kontinuierlich z.B. mit Sägezahn und 
Frage regelmäßig den LogigZustand ab, erhalte ich eine Menge an Samples 
die das Eingangssignal mit einer größeren Auflösung als 0 und 1 
wiedergeben.

- In unserem Beispiel
Uschalt(U/4)= 1
Uschalt(U/2)= 1
Uschalt(3U/4)= 0

Summe der Samples ist 2 (*U) und der Mittelwert ist 0,666

- Alle mögliche Zustände sind:

000 = 0 * U
100 = 0,333 * U
110 = 0,666 * U
111 = 1 * U

- insgesamt vier Zustände, das sind dann 2 (gelogene) Bit ;-)

- Der Rest ist Mathematik.

(Ich weis das ist ganz schön an den Haare herbei gezogen, aber macht die 
Sache doch recht verständlich)

- Es gibt natürlich veschiedene Möglichkeiten den Schaltpunkt zu 
verschieben (siehe auch DA-Wandler mit Komparator)

von batman (Gast)


Lesenswert?

Ich dachte immer, so funktioniert der ADC im AVR?
Wobei ich zugebe, nicht in die docs geguckt zu haben.

von winne (Gast)


Lesenswert?

Ja fast.
Gemeinsam haben beide Verfahren den EINEN Komparator
(den "1-Bit-AD-Wandler" wie ich ihn genannt hatte)

Beim AVR wird mit einem Rechenwerk gearbeitet.
Stichwort Successive approximation

Bei wikipedia werden 13 ! verschiedene AD-Wandelverfahren beschrieben.

ist empfehlenswert
http://de.wikipedia.org/wiki/Analog-Digital-Umsetzer

von batman (Gast)


Lesenswert?

Aus dem "1-Bit-Wandler" macht der AVR ja auch schon 10 Bit. Heißt doch 
eigentlich, daß die Auflösung nur durch die Rasterung der Auswertung 
bestimmt wird. Ob das nun Stufen oder Zeitintervalle sind. Je kleiner 
die Schritte, desto höher die Auflösung - im Prinzip unbegrenzt.

von winne (Gast)


Lesenswert?

Ja, so sehe ich es auch.

von Helmut L. (helmi1)


Lesenswert?

batman schrieb:
> Aus dem "1-Bit-Wandler" macht der AVR ja auch schon 10 Bit. Heißt doch
> eigentlich, daß die Auflösung nur durch die Rasterung der Auswertung
> bestimmt wird. Ob das nun Stufen oder Zeitintervalle sind. Je kleiner
> die Schritte, desto höher die Auflösung - im Prinzip unbegrenzt.

Naja, ein bisschen anders funktioniert der ADC im AVR nun doch.
Es wird dazu ein DAC gebraucht. Bei dem wird zuerst das werthoechste Bit 
gesetzt. Dann entscheidet der Komparator ob die zu messende Spannung 
grosser oder kleiner ist. Je nachdem bliebt diese Bit gesetzt oder wird 
wieder auf 0 gesetzt. Jetzt kommt das naeachste Bit dran und wieder 
entscheidet der Komparator gesetzt lassen oder loeschen. Das Spiel wird 
so lange fortgesetzt bist alle 10 Bit durch sind.

Das Verfahren das Winne da ueberlegt hat funktioniert anders. Hier wird 
das Messsignal mit einem Rauschsignal beaufschlagt. Beim Rauschsignal 
sind ja alle Amplitudenwerte enthalten. Der Mittelwert dieses 
Rauschsignales ist allerdings dabei 0. Die Addition des Rauschsignales 
mit dem Messsignal ist allerdings nicht Mittelwert frei. Das heist dann 
hinter dem Komparator hat man zwar ein Rauschsignal das alledings auch 
nicht Mittelwert frei ist. Integriert man nun in Software diese 
Impulsfolge faellt der Rauschanteil raus und ueberig bleibt dein 
Messsignal. Oben habe ich ein kleines C Programm eingestellt das dieses 
Verhalten simuliert.

von batman (Gast)


Lesenswert?

Im Sägezahnsignal sind auch alle Amplitudenwerte vorhanden und ob man 
die Referenzwerte nun zum Meßwert addiert oder damit vergleicht, macht 
auch keinen wesentlichen Unterschied.

von Bernd N (Gast)


Lesenswert?

>> Im Sägezahnsignal sind auch alle Amplitudenwerte vorhanden und ob man
>> die Referenzwerte nun zum Meßwert addiert oder damit vergleicht, macht
>> auch keinen wesentlichen Unterschied.

Und die 10 BIT stecken dann im Sägezahn, es will und will damit nicht 1 
BIT werden und wir haben uns 1x im Kreis gedreht aber endlich verstanden 
wie ein ADC funktioniert :-)

Peter Danegger schrieb...
>> Hier mal ein interessanter Artikel zu einem 1 bzw. 1,5 Bit Wandler:

http://www.romanblack.com/BTc_alg.htm

Mh, obwohl das eher ein DAC ist. Auch hier stecken die BITs in der PWM, 
wieder mehr als 1 BIT :-(

von winne (Gast)


Lesenswert?

batman schrieb:
> Im Sägezahnsignal sind auch alle Amplitudenwerte vorhanden und ob man
> die Referenzwerte nun zum Meßwert addiert oder damit vergleicht, macht
> auch keinen wesentlichen Unterschied.

Ja das stimmt. Aber hier ging es um das Verständnis eines spezielles 
Verfahren was ohne Rechenwerk und nur durch Eihnkoppeln eines 
Rauschsignals auskommt. Der AD-Wandler sollte nicht neu erfunden werden.

In einer Applikation wurde sogar auf die Eihnkoppeln verzichtet.
http://www.mcselec.com/index.php?option=com_content&task=view&id=325&Itemid=57
Hier macht man sich das vermutlich sowieso vorhandene Rauschen zu nutze.

Fazit: Mehr AD-Auflösung durch Rauschen oder AD-Wandlung durch Rauschen.

Controller ohne AD-Wandler könnten im Prinzip so leicht mit einem 
AD-Wandler ausgestattet werden.

Ja ich weis die meisten denken nicht drüber nach, sondern nehmen einfach 
zusätzlich einen fertigen teuren AD-Chip oder einen Controller mit 
intergriertem AD-Wandler.
Aber darum ging es bei diesem Thread auch gar nicht.

von Peter D. (peda)


Lesenswert?

winne schrieb:
> Ja ich weis die meisten denken nicht drüber nach, sondern nehmen einfach
> zusätzlich einen fertigen teuren AD-Chip oder einen Controller mit
> intergriertem AD-Wandler.

Nö, die meisten denken sogar sehr gründlich darüber nach, wie sie ihr 
Produkt zuverlässig und reproduzierbar designen.

Bei Konsumgütern mag das natürlich anders aussehen. Z.B. viele digitale 
Personenwaagen haben zwar gelogene 100g Anzeigen, sind aber oft 
ungenauer als alte mechanische Waagen mit 0,5kg Strich.
Man nehme einen Meßbecher mit 100ml Teilung und stelle sich damit auf 
eine billige Digitalwaage. Dann fülle man jeweils 100ml Wasser hinzu, 
messe und staune, was für einen Unsinn man angezeigt kriegt.
Oder man gehe einfach ins Geschäft, greife sich 10 Waagen und stelle 
sich drauf.

: Bearbeitet durch User
von batman (Gast)


Lesenswert?

Ich glaube nicht, daß zusätzliche Rausch- oder Rampenüberlagerung + 
Oversampling an einem vorhandenen ADC etwas "dazulügen" muß. Sowas hab 
ich auch schon mal verwendet, wenn das Rauschen schon im Signal 
vorhanden ist. Für mich ist nicht die Frage, ob es funktioniert, sondern 
welchen Sinn es generell hat, aufwandsmäßig quasi 2 ADC 
hintereinanderzuhängen, von denen im Prinzip jeder einzelne schon jede 
gewünschte Auflösung bringen kann. So ein geeignetes Rauschen nur für 2 
Bit extra künstlich zu erzeugen und zu verifizieren, ist ja auch kein 
Pappenstiel.

Wirtschaftlich dürfte es doch meist günstiger sein, gleich den passenden 
ADC zu bauen ODER zu kaufen - aber nicht 2 halbe, wo einer den anderen 
verbessert.

von winne (Gast)


Lesenswert?

@batman
Peter Danneggers Beispiel mit der Waage beschreibt so eine Anwendung.

> quasi 2 ADC hintereinanderzuhängen ...

Nee, bei einem vorhandenen ADC mit z.B.11-Bit Auflösung lässt sich die 
Auflösung so auf 13-, 14-, 16-, oder mehr Bit steigern.

Ein 2. ADC ist nicht erfordelich sondern nur das Rauschsignal (und 
Berechnung )

siehe hierzu
http://www.mcselec.com/index.php?option=com_content&task=view&id=325&Itemid=57

Was wirtschaftlicher ist muss jeder selbst entscheiden.
Da gibt es Gründe dafür und dagegen.

von batman (Gast)


Lesenswert?

winne schrieb:
> Ein 2. ADC ist nicht erfordelich sondern nur das Rauschsignal (und
> Berechnung )
>
"Nur das Rauschsignal" ist gut. Da liegt ja gerade der Hauptteil des 
ADC. Der Rest ist im Wesentlichen ein Komparator für ein paar Cent. Wie 
will man daran was sparen.
Wo ist denn dein Rauschgenerator. In deinem iranischen 
BASIC-Progrämmchen da sehe ich auch keinen, sondern bloß ein 
verrauschtes Sensorsignal, was oversampled wird.

von winne (Gast)


Lesenswert?

@batman
Ich werd jetzt nicht alles nochmal wiederholen.
aber bitte hier
http://www.atmel.com/images/doc8003.pdf

von Davis (Gast)


Lesenswert?

Peter Dannegger schrieb:
> winne schrieb:
>> http://www3.alcatel-lucent.com/bstj/vol27-1948/articles/bstj27-3-446.pdf
>> Du hast den anderen Beitrag nicht erwähnt.
>
> Weil er sich nicht mit Deinem Thema beschäftigt.
>
> Ich habe den Artikel nur kurz überflogen. Ich konnte darin nichts
> entdecken, wie man zusätzliche gelogene Bits aus einem n-Bit ADC
> rauskitzelt.

Mensch, bist du borniert.

von Peter D. (peda)


Lesenswert?

Davis schrieb:
> Mensch, bist du borniert.

Dieses Kompliment möchte ich uneingeschränkt zurück geben.

von Davis (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Davis schrieb:
>> Mensch, bist du borniert.
>
> Dieses Kompliment möchte ich uneingeschränkt zurück geben.

Viel zu passiv, obwohl es zu dir passt.

So schreibt man das: Dieses Kompliment gebe ich uneingeschränkt 
zurück.

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Das Rauschsignal ist oftmals bereits im Signal enthalten. Das wurde 
bereits erwähnt.

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
Noch kein Account? Hier anmelden.