LabVIEWForum.de
Filtern von analogen Signalen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Filtern von analogen Signalen (/Thread-Filtern-von-analogen-Signalen)



Filtern von analogen Signalen - AgesKing - 07.03.2013 12:17

Hallo Leute,

ich bin sicher nicht der erste mit dieser Frage und habe hier im Forum auch schon einige Antworten gefunden aber bin trotzdem nicht ans Ziel gelangt. Vielleicht könnt ihr mir helfen?

Ich lese mit einem Arduino ein analoges Signal von einem Potentiometer ein und möchte damit servomotoren steuern.
leider ist das Signal
a) leicht verrauscht (siehe Bild) und
b) gibt es aus mir unerklärlichen Gründen manchmal riesige kurze Ausreisser wo das Signal von 2V auf 4 Volt oder so springt.

Hier im Forum las ich, dass der Medianfilter am besten geeignet ist um solche Ausreisser zu filtern. Stimmt das?
Mir erscheint ein Lowpass filter fast besser, da ich an dem Poti nur extrem langsam drehe und damit ja irgendwie filtern könnte wenn das Signal in 100ms um mehr als 0,1V verändert wird.

Problem ist, dass ich nicht die Frequenzen der Störungen kenne.

Momentan arbeite ich mit einem Medianfilter (Punkt für Punkt) und der verbessert das Bild zwar, aber leider ist es immer noch nicht besonders gut.

Könntet ihr mir helfen?
Ich hab das VI angehängt, was irgendwie doof ist da ihr vermutlich grad kein Arduino an einem Poti hängen habt, aber vielleicht macht das meine Idee trotzdem klarer.

danke schonmal


RE: Filtern von analogen Signalen - GerdW - 07.03.2013 12:58

Hallo AgesKing,

Zitat:Momentan arbeite ich mit einem Medianfilter (Punkt für Punkt)
Probier doch mal den Mean Pt-byPt statt des Median aus (mit einer Samplelänge von ca. 50)...

Dein Bild zeigt eine Schwankung des Messisgnals von 5mV bei einer Amplitude von 1,860V. Wie genau misst der Arduino denn überhaupt? Ist diese Schwankung nicht normal bei einer (vermuteten) 12bit ADC?


RE: Filtern von analogen Signalen - AgesKing - 07.03.2013 14:46

Da kannst du vielleicht Recht haben. Ich hatte gehofft dass dann das ständige Zucken des Servos abnimmt.
Am allerwichtigsten ist aber dass die richtig großen Ausreisser rausgefiltert werden. Da die nur recht selten kommen muss ich jetzt erstmal auf einen warten um Medianfilter vs meanfilter auszuprobieren :-)

Aber der Ansatz scheint schonmal zu stimmen oder? (Hatte befürchtet, dass ich das völlig falsch angehe)


RE: Filtern von analogen Signalen - Wall-E - 07.03.2013 14:47

Um die großen Sprünge raus zu kriegen, ist der Median meiner Ansicht nach schon genau richtig. Damit dürften diese kurzen, heftigen Ausreißer komplett verschwinden während das arithmetische Mittel sie nur dämpfen würde. (EDIT: Siehe Wikipedia und Co zum Thema Median...)

Die Schwankung da im abgebildeten Signal liegt bei nicht mal drei Promille, oder habe ich mich da verrechnet? Also wenn ich der Servo wäre, wäre mir das aber mal so was von egal. ;-)

EDIT: Jetzt erst Deine Antwort gesehen. Zucken die Servos denn auch, wenn Du ihnen eine Konstante als Steuersignal gibst? Wenn ja, liegt es nicht an Deinem Signal.


RE: Filtern von analogen Signalen - Lucki - 07.03.2013 14:57

(07.03.2013 12:58 )GerdW schrieb:  Ist diese Schwankung nicht normal bei einer (vermuteten) 12bit ADC?

Genau: 12 Bit = 2048 steps ergibt bei 10 V Messbereich gerundet 5 mV Steps, so wie sie zu sehen sind. Da Rauschen spielt natürlich eine Rolle: Wenn es nicht wäre, würde das Messergebnis nicht zwischen den Quantisierungsstufen hin- und her springen.
Wieso die Sprünge nach angeblicher Filterung unvermindert da sind, ist mir ein Rätsel - habe kein 2012 installiert.


RE: Filtern von analogen Signalen - GerdW - 07.03.2013 15:01

Hallo Lucki,

das ist der Nachteil des Median-Filters: Es wird nur der mittlere Wert einer sortierten Menge gewählt, nicht der Mittelwert der Menge...


RE: Filtern von analogen Signalen - Wall-E - 08.03.2013 00:23

Jetzt wo ich so drüber nachdenke: Eigentlich sollte die Kombination aus erst Median und dann Arithmetischem Mittel das Signal doch ziemlich vollständig plätten, oder? Der Medial killt die derben Spitzen ("wo das Signal von 2V auf 4 Volt oder so springt") und das Arithmetische Mittel das Quantisierungsrauschen.

Denn bei Arithmetischem Mittel _statt_ Median hauen die angesprochenen 2V Unterschied immer noch durch...


RE: Filtern von analogen Signalen - AgesKing - 08.03.2013 12:08

hi hab jetzt beide Filter drin und probiere es aus.
Das Diskretisierungsrauschen ist deutlich geringer, aber noch da.
Es kann aber sein dass das Servozucken damit nichts zu tun hat.
Die Spitzen muss ich in etwas längerer Zeit überprüfen. Gestern waren die trotz Medianfilter noch vorhanden, gingen dann aber auch nach Neustart und weniger Hintergrundprogrammen wieder weg. (keine Ahnung ob das Zufall oder wichtig war)

ich meld mich wieder und bedank mich schonmal