Forum: Mikrocontroller und Digitale Elektronik Digitale Daten entrauschen


von Guest (Gast)


Lesenswert?

Salu zusammen

Habe hier mal ne Frage:

Wenn ich einen Sensor, sagen wir z.B. Beschleunigungssensor nehme, sagen 
wir mit 14 Bit breite, dann sind ja die untersten paar Bit immer 
verrauscht. Kann mir jemand einen Tipp geben wie man dem entgegenwirken 
könnte? Klar ist, das das Layout auch seinen Teil dazu beiträgt, da ich 
aber als Layouter arbeite, traue ich mir das noch zu. Irgendwann ist 
dann aber Schluss mit Layout optimieren. Wie hole ich "mehr Bits" aus 
dem Sensor raus die ich gebrauchen kann.

Gruss

PS: Gibt es eine Aussage darüber wieviel ich bei einer Herstellerangabe 
von 14 Bit wirklich gebrauchen kann? Will hier keine eindeutige Zahl, 
ist ja Sensorabhängig, aber was sagt die Praxis. Bei 14 Bit z.B. immer 2 
wegschmeissen? :o)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wenn das Schaltungsdesign anständig ist, dann sollte höchstens das 
unterste Bit "wackeln". Wobei aufgrund externer Störeinflüsse oft die zu 
messende Größe bereits verfälscht ist, nach dem Motto "Wer misst, misst 
Mist".

Abhilfe schafft hier eine diese externen Störeinflüsse berücksichtigende 
Messweise. Bei Gleichspannungssignalen ließe sich über einen ausreichend 
langen Zeitraum integrieren oder aber ein Mittelwert über eine 
definierte Anzahl von Messungen über einen definierten Messzeitraum 
berechnen.

Da das "meiste" Störsignal der Netzbrumm mit 50 Hz ist, empfiehlt es 
sich, den Messzeitraum darauf abzugleichen, also über eine ganzzahlige 
Anzahl von 20 msec-Intervallen zu messen. Wenn dann die durchgeführten 
Messungen gleichmäßig in diesem Messzeitraum untergebracht werden 
(beispiel: 32 Messungen in einem 40 msec-Intervall, also alle 1.25 
msec), dann fällt bei einer Mittelwertbildung der Netzbrumm recht 
effektiv 'raus.

Wird der Mittelwert mittels Integer-Arithmetik gebildet, so sind alle 
Messwerte zu summieren und zur Rundungskompensation die halbe 
Sampleanzahl hinzuzufügen. Bei 32 Messungen also der Wert 16.

So gebildete Werte sind sehr viel "ruhiger" als die anfallenden 
Einzelmesswerte, die bereits bei einem 12-Bit-ADC oft mit mehr als den 
unteren 3 Bit "wackeln".
Zu beachten ist noch, daß der ADC genau synchron zum 
Prozessor-/Controller-takt angesteuert werden sollte, auch dessen 
interner Takt sollte sich auf den Referenztakt beziehen.
Andernfalls können sich das Messergebnis beeinflussende Schwebungen 
bilden.

Soll sehr viel schneller gemessen werden, müssen andere 
Kompensationsmaßnahmen ergriffen werden. Der Netzbrumm als Hauptstörer 
ist aber so gut wie immer vorhanden ...

von Thomas B. (Firma: Druckerei Beste) (virtupic)


Lesenswert?

Soso, Thermometer mit 14 Bit... Welchen Temperaturbereich hast du denn? 
Ich gehe mal von 0°C bis 100°C aus. Dann digitalisierst du mit eineer 
Auflösung von ungefähr 0,0061°C. Gibt dein Sensor das überhaupt her? An 
Eichung, Liearität, Rauuscharmut? Brauchst du das?

virtuPIC
/ggadgets for tools & toys

von Nitram L. (nitram)


Lesenswert?

Thomas Bremer wrote:
> Soso, Thermometer mit 14 Bit... Welchen Temperaturbereich hast du denn?

Warum Thermometer???
Habe ich was verpasst???

nitraM

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Vielleicht ist ja "Beschleunigungssensor" ein geheimes Codewort für 
"Thermometer" ...

Man kann ja nie wissen.

von Leser (Gast)


Lesenswert?

Wer lesen kann ist klar im Vorteil...

von Leser (Gast)


Lesenswert?

Bezieht sich natürlich auf den Beschleunigungsthermosensor...

von Nitram L. (nitram)


Lesenswert?

Leser wrote:
> Bezieht sich natürlich auf den Beschleunigungsthermosensor...

den verstehe ich leider auch nicht... :-(

nitraM

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Vielleicht ist es irgendwo* zu warm, so daß sich irgendwo das Wort 
"thermo" quasi automatisch einschmuggelt.


*) oder woanders, jedenfalls dort und nicht hier.

von Guest (Gast)


Lesenswert?

lol also das mit dem Beschleunigungssensor war nur ein Beispiel. Habe 
zwar gerade das Prob, aber ob Beschleunigungssensor, Termofühler ect. 
ist doch egal. Es geht lediglich darum wenn bereits ein verrauschtes 
Signal vorhanden ist, was man dann noch machen kann. Klar sollte man es 
immer versuchen zu vermeiden, aber man ist halt nicht alleine auf dieser 
Welt (leider :o)

Vielen Dank auf alle Fälle an Rufus! Hast mir nen guten Tipp gegeben!

Merci und en schönes Weekend

von 3352 (Gast)


Lesenswert?

@ Thomas Bremer (Firma Druckerei Beste) (virtupic)
>Soso, Thermometer mit 14 Bit... Welchen Temperaturbereich hast du denn?
>Ich gehe mal von 0°C bis 100°C aus. Dann digitalisierst du mit eineer
>Auflösung von ungefähr 0,0061°C. Gibt dein Sensor das überhaupt her? An
>Eichung, Liearität, Rauuscharmut? Brauchst du das?

Ich verklopp Temperaturcontroller, die haben 16bit. Macht fast ein 
milliKelvin Aufloesung. Der Witz daran ist nicht die absolute
Genauigkeit, sondern die relative Stabilitaet. Wenn man damit einen 
Oszillator stabilisiert, so ist der je nach Charakteristik auf
ein ppm oder so stabil.

von luxnix (Gast)


Lesenswert?

digital filtern.

FilterAusgang_long+=(long)FilterEingang-(long)FilterAusgang;
FilterAusgang=FilterAusgang_long/32;

Die "32" geben praktisch die Zeitkonstante des Filters an.
Zahl sollte 1,2,4,8,16,32 ... sein.

1: keine Filterung
2: schnelle Filterung, jedoch noch wenig Filterwirkung
...
256: langsames Filter, gute Filterwirkung.

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.