www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Noise rausrechnen?


Autor: Mirko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein Sensor liefert zappelnde Werte (ca +- 0,5%) und da er relativ 
langsam ist (5 Werte in der Sekunde), kann ich nicht 1000 Werte lesen 
und den Mittelwert bilden.

Hat jemand C-Sourcecode für einen Filter? Suche mit Google führt zu 
Butterworth-Filter für Noise-Eliminiation. Ist das díe richtige 
Richtung?

Autor: pfft. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine exponentielle Mittelung. Benoetigt jeweils nur den letzten Wert.

Autor: Mirko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bringt es nicht - falls Du das hier meinst:

gefilterter messwert(t) = Filter * messwert(t) + (1 - Filter) * 
messwert(t - 1) mit 0.0 < Filter <= 1.0

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der mittelwert ist auch schon eine Art Filter, und nicht mal einer der 
schlechtesten. Wenn der Mittelwert also immer noch zu sehr schwankt, muß 
man für ein besseres Signal sorgen oder die art der Störungen genauer 
untersuchen. Ein "allgemeiner" Filter ohne extra informationen über die 
STörungen wird kaum besser.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Eine exponentielle Mittelung. Benoetigt jeweils nur den letzten Wert.
Benötigt nur die Summe der letzten n Werte. Der Mittelwert wird 
abgezogen, und der neue Wert aufaddiert.

Such mal im Forum nach "+mittelwert +berechnen"
Beitrag "Re: Gleitender Mittelwert"
Beitrag "Re: gleitender Mittelwert im Atmel"

Autor: Mirko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> für ein besseres Signal sorgen oder die art der Störungen genauer
untersuchen

Der Sensor liefert, was er liefert, daran kann ich nichts ändern 
(digitales SPI-Interface).

Das Herumzappeln von 0.5% bis fast 0.75% ist problematisch für die damit 
verbundene Regelung.

Wenn ich das Signal mit meinem Smoothing-Filter (oben) glatt mache, ist 
das Zappeln zwar irgenwann weg, der Faktor muss nur extrem genug 
ausfallen, aber weil nur 3 - 5 Werte pro Sekunde kommen, ist das Signal 
(z.B. Sprung der Messwerte) danach zu stark verfälscht/verschoben

Ich hätte gerne einen Filter, der das mehr oder weniger symmetrische 
Zappeln nach oben und unten filtert, ohne die Tendenz des Signals so 
stark zu verändern/verzögern.

(mir fallen als Laie "fuzzy"-Lösungen ein, z.B. zwei aufeinanderfolgede 
Anstiege => Filterung reduzieren), aber eine mathematische Lösung wäre 
mir lieber.

Autor: pfft. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja. Wenn man das Sensor signal kuenstlich langsam macht, der Prozess 
aber schnell ist, so bekommt der regler ein Problem. Falls der Prozess 
noch langsamer ist, so wuerde ich das Raschen auf den Regler geben. Die 
Strecke mach das dann schon weg.

Autor: OlliW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Irgendwie sollten noch ein paar grundlegene physikalische Gesetze 
berücksichtigt werden. Wenn Ihr Rauschen wegbekomen wollt dann geht das 
NUR wenn Ihr i) die "Integrationszeit" länger macht wodurch die 
Responsezeit automatisch langsammer wird oder Ihr ii) irgendetwas über 
das Raussignal wisst was man ausnutzen könnte (es also kein 
statistisches Rauschen ist). Alle anderen Zauberlösungen können nicht 
gehen.

Wenn dein Zappeln mit einer gewissen Frequenz geschieht (bei 50 oder 
100Hz würde man soetwas Brumm nennen), dann hilft zB ein Notchfilter 
oder so, ansonsten bleibt nur Sensorsignal verbessern.

Die 0.5% sind hoffentlich nicht nur das Ergebnis eines 8-Bit Wandlers?

Wenn der Prozess langsamer wäre dann würde die Regelung ja keine 
Probleme machen => offensichtlich ist bei Mirko der Prozess zu schnell, 
bzw. die Regelung zu langsam...

Wie teils schon gesagt, Mirko, dir bleibt nichts anderes als dein Signal 
zu verbessern, mehr Messpunkte pro Zeit zu bekommen, oder ein langsames 
System zu akzeptieren (wenn alles in Echtzeit gehen soll).

Olli

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.