Hallo, ich habe mir schon mehrfach das Datenblatt AVR121 zum ADC-Oversamplen durchgelesen. Ich möchte die Auflösung meiner Messung mit einem analogen Sensor, der ein Ausgangssignal von 4-20mA liefert, erhöhen. Die Auflösung des Sensors liegt bei 0,1% bei einem Messbereich von 0-40Bar. Ich möchte eine Auflösung von 0,1Bar erreichen. Die Auflösung muss also möglichst von 0,4Bar auf 0,1Bar (künstlich) erhöht werden. Mir ist bewusst, dass die Genauigkeit niemals steigt. Ich benutze einen schnellen ADC ( 2MSPS ), der die Messwerte mit 11 Bit auflöst. Der Sensor tastet mit einer Frequenz von ca 1kHz ab. Es geht darum Pulsationen im Bereich von <10Hz zu messen. Die 1kHz Abtastfrequenz des Sensors reicht also aus das Signal mit über 100 Punkten abzutasten. Es ist wichtig die Amplitude des Signals zu detektieren. In den meisten Fällen reicht die Auflösung des ADC's nicht aus. In meinem Fall reicht aber die Auflösung des Sensors nicht ganz aus. Ist oversampling überhaupt eine sinnvolle Methode in meiner Situation? Eigentlich darf ich meine Messung ja nicht träger machen. Ich verstehe noch nicht ganz wie sich das Oversampling auf die dynamik der Messung auswirkt. Durch Oversampling beeinflusse ich ja lediglich die Samplerate des ADC's und nicht die des Sensors richtig? Oder muss ich die Messung im Gesamten betrachten und pro gewonnenem Bit die Geschwindigkeit vierteln? Zuerst einmal soll die Hardware so genutzt werden und die maximale Auflösung herausgekitzelt werden. Die Genauigkeit soll ersteinmal vernachlässigt werden Ich bitte um Antworten :)
:
Bearbeitet durch User
Tho S. schrieb: > Ich benutze einen schnellen ADC ( 2MSPS ), der die Messwerte mit 11 Bit > auflöst. > > Der Sensor tastet mit einer Frequenz von ca 1kHz ab. Um was für einen Sensor geht es dabei genau? Wenn der Sensor selbst eine ADC Wandlung macht, und das Signal lediglich als Analogwert wieder ausgibt, dann bringt Oversampling nicht viel (du kannst höchstens das Rauschen deines ADCs und der Messchaltung mindern). Falls der Sensor ein rein analoger Sensor wäre, erhöhst du durch Oversampling den Dynamikbereich insofern, dass du aus den unteren, verrauschten Bits noch einigermaßen stabile Werte herauskitzelst. Warum verwendest du einen 2 MSPS Wandler, wenn du nur 1 KHz brauchst? Bessere Alternative wäre ein Wandler mit geringerer Geschwindigkeit, dafür aber höherer Auflösung (16 Bit oder mehr). Ausserdem: benötigst du den gesamten Sensor-Messbereich von 0..40 Bar? Ansonsten könntest du mit entsprechender Vorverstärkung den Messbereich auf z.B. 0..10 Bar einschränken, und hast in diesem Bereich dann die 4-fache Auflösung.
:
Bearbeitet durch User
Tho S. schrieb: > Ist oversampling überhaupt eine sinnvolle Methode in meiner Situation? Nein. Da drehst du an der falschen Schraube. > Die Auflösung muss also möglichst von 0,4Bar auf 0,1Bar (künstlich) > erhöht werden. Das kann doch der Sensor schon prinzipiell gar nicht. Da hilft es dann auch nichts mehr, am Wandler zu schrauben. Mit Oversampling kann man nur den ADC "verbessern"...
:
Bearbeitet durch Moderator
0 bis 40 Bar mit 0.1 Bar Auflösung sind gerade mal 400 Schritte. Dein 11-Bit-ADC aber hat 2048 Schritte, liefert also eine deutlich höhere Auflösung, nämlich 0.02 Bar (vorausgesetzt, daß die analoge Eingangsbeschaltung und die Spannungsversorgung etc. das alles erlauben). Du musst also am ADC überhaupt nichts ändern, dessen Auflösung ist deutlich höher als das, was Du als "Sensorauflösung" bezeichnest (könntest Du damit dessen Genauigkeit gemeint haben?).
Tho S. schrieb: > . Die Genauigkeit soll ersteinmal vernachlässigt werden Tho S. schrieb: > Mir ist bewusst, dass die Genauigkeit niemals steigt. Rufus Τ. F. schrieb: > Du als "Sensorauflösung" bezeichnest (könntest Du damit dessen > Genauigkeit gemeint haben?). Offensichtlich kennt er den Unterschied...
Hallo, Hoppla mir ist selber ein Fehler unterlaufen. ich meine natürlich dass der Sensor auf 0,04 Bar auflöst. 0,001*40=0,04 Geforderte Auflösung 0,01! Ich möchte nämlich auf 0,1 Bar genau anzeigen lassen. Joe F. schrieb: > Warum verwendest du einen 2 MSPS Wandler, wenn du nur 1 KHz brauchst? > Bessere Alternative wäre ein Wandler mit geringerer Geschwindigkeit, > dafür aber höherer Auflösung (16 Bit oder mehr). > > Ausserdem: benötigst du den gesamten Sensor-Messbereich von 0..40 Bar? > Ansonsten könntest du mit entsprechender Vorverstärkung den Messbereich > auf z.B. 0..10 Bar einschränken, und hast in diesem Bereich dann die > 4-fache Auflösung. Mein AD-Wandler reicht aus um 400 Schritte darzustellen. Ja ich benötige den gesamten Messbereich von 0-40 Bar. Joe F. schrieb: > Um was für einen Sensor geht es dabei genau? Drucktransmitter mit keramischen Element. Keine Angabe von der Herstellerseite zur Elektronik. Durch oszilloskopieren lassen sich aber Digitalisierungsschritte von 1ms erkennen. ---> 1kHz Abtastrate Stefan S. schrieb: > Rufus Τ. F. schrieb: >> Du als "Sensorauflösung" bezeichnest (könntest Du damit dessen >> Genauigkeit gemeint haben?). > > Offensichtlich kennt er den Unterschied... Ich kenne den Unterschied. Genauigkeit spielt erstmal keine Rolle.
Tho S. schrieb: > Die Auflösung des > Sensors liegt bei 0,1% bei einem Messbereich von 0-40Bar. Ich möchte > eine Auflösung von 0,1Bar erreichen. Die Auflösung muss also möglichst > von 0,4Bar auf 0,1Bar (künstlich) erhöht werden. Also erstmal zu diesem Fehler. 0,1% von 40bar sind 0,04bar. Die Sensorauflösung reicht also. Tho S. schrieb: > Ist oversampling überhaupt eine sinnvolle Methode in meiner Situation? Im Prinzip immer, nur müßtest du hier das "magische Rauschen" (vmtl. in der Appnote genauer erklärt) schon vor dem Sensor einspeisen, also als Druckschwankung. Dahinter nützt es nichts mehr.
Hallo, Hoppla mir ist selber ein Fehler unterlaufen. ich meine natürlich dass der Sensor auf 0,04 Bar auflöst. 0,001*40=0,04 Geforderte Auflösung 0,01! Ich möchte nämlich auf 0,1 Bar genau anzeigen lassen. Joe F. schrieb: > Warum verwendest du einen 2 MSPS Wandler, wenn du nur 1 KHz brauchst? > Bessere Alternative wäre ein Wandler mit geringerer Geschwindigkeit, > dafür aber höherer Auflösung (16 Bit oder mehr). > > Ausserdem: benötigst du den gesamten Sensor-Messbereich von 0..40 Bar? > Ansonsten könntest du mit entsprechender Vorverstärkung den Messbereich > auf z.B. 0..10 Bar einschränken, und hast in diesem Bereich dann die > 4-fache Auflösung. Mein AD-Wandler reicht aus um 2047 Schritte darzustellen. Ja ich benötige den gesamten Messbereich von 0-40 Bar. Joe F. schrieb: > Um was für einen Sensor geht es dabei genau? Drucktransmitter mit keramischen Element. Keine Angabe von der Herstellerseite zur Elektronik. Durch oszilloskopieren lassen sich aber Digitalisierungsschritte von 1ms erkennen. ---> 1kHz Abtastrate Stefan S. schrieb: > Rufus Τ. F. schrieb: >> Du als "Sensorauflösung" bezeichnest (könntest Du damit dessen >> Genauigkeit gemeint haben?). > > Offensichtlich kennt er den Unterschied... Ich kenne den Unterschied. Genauigkeit spielt erstmal keine Rolle. Mir fällt grade auf, dass ich bei einer Auflösung von 0,01Bar eine ADC-Auflösung von 12Bit benötigen würde. Das könnte man über Oversamplen lösen. Das Problem also erstmal beiseitegestellt. Lothar M. schrieb: > Tho S. schrieb: >> Ist oversampling überhaupt eine sinnvolle Methode in meiner Situation? > Nein. Da drehst du an der falschen Schraube. Das Bilden des Zwischenwertes passiert doch aber in der Software. Da ist es doch eigentlich egal woher der Wert kommt. (Ob vom Sensor oder vom ADC) Der Zwischenwert wird doch trotzdem gebildet ? Angenommen ich möchte meine Auflösung nur verdoppeln...
Tho S. schrieb: > Mir fällt grade auf, dass ich bei einer Auflösung von 0,01Bar eine > ADC-Auflösung von 12Bit benötigen würde. Das könnte man über Oversamplen > lösen. Das Problem also erstmal beiseitegestellt. Was rechnest du eigentlich fürn Käse. 1%% (=0,1%) Auflösung bedeutet genau 1000 unterscheidbare Werte. Mit 11 bit kannst du schon 2048 darstellen. Tho S. schrieb: > Das Bilden des Zwischenwertes passiert doch aber in der Software. > Da ist es doch eigentlich egal woher der Wert kommt. (Ob vom Sensor oder > vom ADC) Der Zwischenwert wird doch trotzdem gebildet ? > Angenommen ich möchte meine Auflösung nur verdoppeln... Nein. Du kannst den Sensor so nicht dazu bringen, mehr Werte zu unterscheiden. Stell es dir mit einem Sensor vor, der nur 2 Werte 1/0 unterscheiden kann. Wo kann man da durch oversampeln was erreichen?
batman schrieb: > Im Prinzip immer, nur müßtest du hier das "magische Rauschen" (vmtl. in > der Appnote genauer erklärt) schon vor dem Sensor einspeisen, also als > Druckschwankung. Dahinter nützt es nichts mehr. Dieses "magische Rauschen" erledigen die Sensoren oft von ganz alleine, bzw die Natur. Besonders die Druckmessungen unterliegen oftmals Störschall von daher ist ein Oversampeln gerade bei dieser Form der Sensorik durchaus sinnvoll und nützlich. Aber: 1) Kompakte Sensoren mit digitalem Ausgang tun das bereits, d.h, sie Tasten den analogen Geber genügend gut ab und geben ein gefiltertes Signal aus. Geht man davon aus, dass der Designer richtig gerechnet hat, sollten Überabtastung und Auflösung zusammenpassen. 2) Das Gesagte gilt auch dann, wenn sie es für die 4-20mA Schnittstelle tun. Ich habe mehrere solcher Systeme entwickelt und oftmals war es so, dass analoge Werte aufbereitet-, entzerrt- und dann wieder analog für diese Schnittstelle verfügbar gemacht wurden. 3) Die Sensoren und ADCs haben Lagefehler, die genügend klein sind oder wegkalibiert wurden. Auch dies ist auf den Anwendungsfall zugeschnitten und limitieren letztlich jegliche Form der "Informationsverbesserung". Die Sensoren werden also durch das Überabtasten von Außen erst einmal nicht genauer! Will man da ran, muss der Anwendungsfall betrachtet werden, d.h. man muss schauen, in welchem Genauigkeitsfenster man arbeitet, mit sehr starker Überabtastung und Prozessierung arbeiten und das Rauschen erzeugen und abziehen. Also z.B. nur 1 statt 10 Messungen pro Sekunde, ein Rauschen im Bereich von 0,3 ... 3 Hz drauf und dann Filtern und mit dem 1HZ-Wert zufrieden sein. Dann hat man statistisch eine um etwa den Faktor 3 höhere Auflösung. Um diese nutzen zu können, muss man den Sensor aber auch entsprechend genauer kalibrieren. Einfach nur den Wert schön lange zu filtern, würde nur die dynamischen Fehler reduzieren, aber den Lagefehler unerkannt durchlassen.
batman schrieb: > Was rechnest du eigentlich fürn Käse. 1%% (=0,1%) Auflösung bedeutet > genau 1000 unterscheidbare Werte. Mit 11 bit kannst du schon 2048 > darstellen. Ach sorry, du wolltest jetzt ja 0,25%% Auflösung. Ja das sind dann 4096 (12bit). Jürgen S. schrieb: > Dieses "magische Rauschen" erledigen die Sensoren oft von ganz alleine, Ja, "oft" funktionierts, manchmal nicht.
Tho S. schrieb: > Durch oszilloskopieren lassen sich aber Digitalisierungsschritte von 1ms > erkennen. ---> 1kHz Abtastrate Wie erkennst du das? Siehst du "Treppenstufen" oder gibt der Sensor ein 1 KHz PWM/PDM Signal aus, das über einen Tiefpass in ein Analogsignal gewandelt werden muss?
:
Bearbeitet durch User
Tho S. schrieb: > Die Auflösung des Sensors liegt bei 0,1% bei einem Messbereich von 0-40Bar. Dann hast du vermutlich einen 10-Bit Sensor, dessen Wert als Analogsignal ausgegeben wird. Ein reiner Analogsensor hätte eine beliebig hohe Auflösung oder ist mit der Angabe irgend eine Art von SNR gemeint?
Wolfgang schrieb: > Ein reiner Analogsensor hätte eine > beliebig hohe Auflösung Wie kommst man denn auf die Idee? :)
batman schrieb: > Nein. Du kannst den Sensor so nicht dazu bringen, mehr Werte zu > unterscheiden. Stell es dir mit einem Sensor vor, der nur 2 Werte 1/0 > unterscheiden kann. Wo kann man da durch oversampeln was erreichen? Z.B. in CD-Spielern, die mit 1 Bit Wandlern 18 Bit Auflösung erreichen. :-)
batman schrieb: > Wolfgang schrieb: >> Ein reiner Analogsensor hätte eine >> beliebig hohe Auflösung > > Wie kommst man denn auf die Idee? :) Er hat eine unendliche hohe Auflösung. Das ist die Definition von analog (entgegen digital, bei dem es nur diskrete Werte gibt). Die Probleme beim analogen Sensor ist das Rauschen, Offsets und Nichtlinearitäten.
batman schrieb: > Wie kommst man denn auf die Idee? :) Weil ich mir unter einem analogen Sensor einen Sensor vorstelle, der primär ein Analogsignal liefert. https://de.wikipedia.org/wiki/Analogsignal
Peter schrieb: > Er hat eine unendliche hohe Auflösung. Das ist die Definition von analog Schön, es geht nur nicht um die Definition von "analog", sondern um einen analogen Sensor mit einer definierten Auflösung von 0,1%. Das bedeutet, sie ist nicht unendlich, oder? Die Empfindlichkeit eines analogen Sensors ist i.a. nicht unbegrenzt.
batman schrieb: > Peter schrieb: >> Er hat eine unendliche hohe Auflösung. Das ist die Definition von analog > > Schön, es geht nur nicht um die Definition von "analog", sondern um > einen analogen Sensor mit einer definierten Auflösung von 0,1%. Das > bedeutet, sie ist nicht unendlich, oder? Bei einem echten analogen Sensor wie zum Beispiel einem Temperatursensor PT1000 ist die Auflösung unendlich. Jede noch so kleine Temperaturänderung hat eine Änderung des Widerstands zur Folge. Die 0,1% beziehen sich entweder auf die Genauigkeit, die bei analogen Sensoren durchaus endlich ist oder der analoge Messwert wird zwischendurch digitalisiert. Dann ist das Ausgangssignal aber nicht mehr "echt" analog, da es nur diskrete Werte annehmen kann.
Also nochmal, es geht nicht um die Genauigkeit, sondern die Auflösung beträgt 0,1%. Das scheint wohl sehr schwer auseinanderzuhalten. Warum auch immer der Sensor diese Auflösungsgrenze hat, ob es ein Piezo oder ein Poti ist, der nicht auf beliebig kleine Druckänderungen reagieren will, sie ist eben physikalisch begrenzt, so wie praktisch alles in der realen Physik. Es gibt praktisch immer eine Grenze der Ansprechempfindlichkeit. Das macht aus realen Analogsensoren aber noch keine Digitalsensoren.
Beim Oszilloskopieren des Sensorsignals waren Treppen sichtbar. Die Treppen waren 1ms lang. Im Inneren des Sensors befindet sich ein oder mehrere Keramik-DMS. Übliche Auswerteschaltung ist ja die Wheatston*sche Messbrücke um Widerstandsänderungen in Spannungsänderungen zu transformieren. Daher ist für mich klar im Inneren sitzt entweder ein analoger Messverstärker oder eine digitale Auswertelektronik die am Ausgang ein analoges Signal bereitstellt. Fazit: Der vorliegende Sensor digitalisiert und gibt am Ausgang ein analoges Signal aus. --> kein rein analoger Sensor
Ok, meinetewegen ists dann ein "unreiner" analoger Sensor, wenns irgendwie hilft. :)
batman schrieb: > Also nochmal, es geht nicht um die Genauigkeit, sondern die Auflösung > beträgt 0,1%. Dann ist es wohl, wie vermutet, kein analoger Sensor, sondern einer, der nur diskrete Werte liefert.
Meine Einschätzung: Du bist am völlig falschen Weg, für das, was du höchstwahrscheinlich machen willst. Hardware ist hier nicht die richitge Stellschraube. Beschäftige dich doch mal mit Zustandsschätzer (z.B. Kalman-Filter). Damit kannst du deinen Sensor vollkommen ausreizen.
Tho S. schrieb: > Daher > ist für mich klar im Inneren sitzt entweder ein analoger Messverstärker > oder eine digitale Auswertelektronik die am Ausgang ein analoges Signal > bereitstellt. > > Fazit: Der vorliegende Sensor digitalisiert und gibt am Ausgang ein > analoges Signal aus. --> kein rein analoger Sensor Also ist das Signal schon mal zeitdiskret. Ob es auch wertediskret ist hängt davon ab, ob im Sensor ein ADC/DAC sitzt, oder evtl. eine analoge Sample&Hold Stufe, die eben alle 1ms einen neuen analogen Wert bereitstellt. Nur in diesem Fall nützt dir eine höhere Auflösung des eigenen ADC. Im ersteren Fall (ADC/DAC im Sensor) ist die Auflösung schlicht und einfach dort begrenzt. Mit noch so aufwändiger Filterung hinterher holst du in diesem Fall keine weiteren Informationen heraus. Der Sensor liefert einfach nichts unterhalb seines internen LSB. Mit welchem dieser Fälle du es zu tun hast, kann dir nur das Datenblatt bzw. der Hersteller des Sensors sagen.
:
Bearbeitet durch User
Im Datenblatt steht 0,1% Auflösung. Wieso, ist für den Anwender irrelevant.
Die AVR121 ist von 2005, also schon recht veraltet. Heutzutage gibt es reichlich ADCs mit hoher Auflösung (16Bit und höher) zu kaufen, da braucht es keine Schummeltricks mehr. Das Oversampling funktioniert auch nur dann, wenn der ADC noch im Subbitbereich monoton ist, das ist er aber in der Regel nicht. Man gewinnt also durch Oversampling nur noch Lottozahlen.
batman schrieb: > Im Datenblatt steht 0,1% Auflösung. Wieso, ist für den Anwender > irrelevant. Solange nicht klar ist, wie diese Angabe bei einem "analogen" Sensor zu Stande kommt, ist es müßig, über weitere Maßnahmen zur Auflösungssteigerung zu diskutieren.
Von irgendwelchen vom Support erfragten "Spezialinfos" außerhalb des Datenblattes macht man sich beim Design besser nicht abhängig. Da gibt es professionelle Lösungen, wie u.a.z.B. unter "Jürgen Schuhmacher" s.o.
batman schrieb: > Von irgendwelchen vom Support erfragten "Spezialinfos" außerhalb des > Datenblattes macht man sich beim Design besser nicht abhängig. Das sehen die Hersteller, die nicht ohne Grund application notes erstellen, und die Entwickler, die sie nutzen, durchaus anders. Das sind nicht "irgendwelche erfragten Spezialinfos".
Ja, Appnotes werden nicht irgendwo erfragt, das hast du richtig erkannt und ich habe nichts anderes geschrieben. Die offiziell rausgegebene Herstellerdokumentation enthält natürlich die verbindlichen Informationen. Dafür ist sie ja da. Alles, was da NICHT drinsteht, wird i.a. nicht garantiert bzw. ist Glückssache. Wenn du da auf eine bestimmte interne Taktfrequenz, Treppenstruktur oder was auch immer nicht dokumentiertes Feature baust, ist deine Platine bei der nächsten Produktrevision für die Tonne, wenn davon nix mehr stimmt.
Danke für die Diskussion! Ich werde ziemlich wahrscheinlich doch die Hardware ändern und keinen analogen/digitalen/analogen-Sensor verwenden (Drucktransmitter). Eine Überlegung wäre ein analoger! Sensor, d.h. offene Wheatstone Brücke(Druckmesszelle) und bastel einen Instrumentenverstärker, der meinen Bedürfnissen genügt. Alternative: digitaler Drucksensor Jedenfalls muss ein anderer Sensor her. Oder hat jemand noch einen letzten rettenden Vorschlag, bevor die Hardware geändert wird. Kalman Filter: Ich habe mir ein paar Simulationen angeguckt und Einiges gelesen aber ich bin mir nicht sicher, wie ich damit meinem Ziel näher kommme.
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.