LabVIEWForum.de
Signal Filtern - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Signal Filtern (/Thread-Signal-Filtern--14864)



Signal Filtern - Pascal - 30.08.2006 09:20

Hallo,

ich habe ein kleines Problem. Ich lese Impuls an einem Counter aus und bestimmt dadurch die Drehzahl. Irgendwie sind da ein paar Fehlimpulse dabei, siehe Bild. (Die Fehlimpulse sind nur die 3 Spitzen, alles andere muss so sein) Wie kann ich die am besten rausfiltern? Problem ist ja, dass die Spitze bei kleiner Drehzahl in dem Bereich von der großen Drehzahl ist.

Besten Dank

Pascal

[attachment=3117]


Signal Filtern - Achim - 30.08.2006 09:25

Hi,

vielleicht hilft das weiter:

http://www.LabVIEWforum.de/index.p...ost&p=12927

Gruss
Achim


Signal Filtern - Lucki - 30.08.2006 21:47

Vor gleitender Mittelwertbildung, ohne die Störwerte zu eliminieren, würde ich warnen, damit vesaust Du Dir auch noch die Umgebung des Störwertes. Ich würde das Array differenzieren. Die Störspitzen sind dann weit über dem Normalwert liegende Doppelimpukse Damit erhält Du Index und Länge jeder Störung (In Deinem Diagramm ist die Länge der Störung immer nur 1 Impuls, aber das muß ja nicht immer so sein) ) . Die gestörten Werte der Originalkurve würde ich dann durch interpolierte Werte ersetzten.
Wenn Du nicht klar kommst, dann ein VI schicken, welches nur aus 1 Bedienelement (oder aus 1 Diagramm) besteht und in dem so ein Array als Default-Wert gespeichert ist.


Signal Filtern - ahlers01 - 31.08.2006 05:12

' schrieb:Hallo,

ich habe ein kleines Problem. Ich lese Impuls an einem Counter aus und bestimmt dadurch die Drehzahl. Irgendwie sind da ein paar Fehlimpulse dabei, siehe Bild. (Die Fehlimpulse sind nur die 3 Spitzen, alles andere muss so sein) Wie kann ich die am besten rausfiltern? Problem ist ja, dass die Spitze bei kleiner Drehzahl in dem Bereich von der großen Drehzahl ist.

Besten Dank

Pascal

[attachment=29117:attachment]
Das 'Median Filter.vi' dürfte hier die richtige Medizin sein.


Signal Filtern - Pascal - 31.08.2006 09:20

Also erst mal Danke für eure Antworten.

Ich glaube auch, dass das mit der Mittelwertbildung nicht die optimale Lösung ist. Ich habe mir das so gedacht, dass ich jeden Messpunkt durch den davorliegenden dividiere. Falls nicht ungefähr 1 raus kommt, soll der Messpunkt durch den davor ersetzt werden. Prinzipiell ist das ja sop ähnlich, wie du Lucki das gemeint hast, oder? Kann du vielleicht doch mal ein VI anhängen, was du beschrieben hast. Hab das noch nicht ganz kappiert. Mit meiner Methode hab ich Probleme, falls der Impuls über zwei Messpunkte geht.

Das Filter sieht auch gut aus, bekomme es nur nicht zum laufen. Kommt immer die Fehlermeldung -20008: "Eingangsarray enthält für die Funktion nicht die richtige Anzahl an Werten". Kann hier jemand entwas damit anfangen? Mein Signal kommt aus dem DAQ-Lesen und ist von Typ DBL. Hab dann vor dem Filter aus dem Signal ein Array erstellt, um es überhaupt an das Filter anschließen zu können, ist das richtig?

Gruß Pascal


Signal Filtern - Lucki - 31.08.2006 10:02

Zitat:Ich glaube auch, dass das mit der Mittelwertbildung nicht die optimale Lösung ist.
Bei Mittelwertbildung ersetzt Du die Nadelimpulse durch dreieckfömige Spitzen, deren Amplitude zwar nicht mehr so hoch ist, die "Fehlerfläche" ist jedoch die gleiche, d.h der Fehler wird nur breiter, geht aber nicht weg.

Zitat:Kann du vielleicht doch mal ein VI anhängen, was du beschrieben hast.
Ein solches VI gibt es nicht, da waren nur Gedankenspiele. wie man vorgehen könnte. Und ohne Deine Originaldaten habe ich auch keine Lust, aus dem luftleren Raum heraus so etwas zu erstellen.
Angesichts neuerer "Forschungsergebnisse" sind diese Gedanken wahrscheinlich sogar überholt. Die neue Erkenntnis ist: Es gibt im
Funktionsmenü/Signalverarbeitung/Signaloperationen
die VIs
"Spitzenwerterkennung" und "Spitzenwerterkennung mit Schwellwert".
Eines davon würde ich verwenden, um die Spitzenwerte zu erkennen. Die erkannten Spitzenwerte würde ich dann, wie schon erwähnt, durch einen Interpolationswert ersetzen.
Das VI "Spitzenwerterkennung mit Schwellwert" eignet sich auch dazu, zu erkennen, ob es merere falsche Werte hintereinander sind. Ein Ausgangswert des VIs ist die zweite Ableitung, d.h. die Krümmung an der Spitze. Ist diese extrem hoch, dann hat man nur eine einzelne Nadel, andernfalls sind es mehrere zu hohe Werte.


Signal Filtern - Lucki - 31.08.2006 10:27

Damit aber Dein Wunsch nach einem kleinen VIlein dennoch befriedigt wird, hänge ich hier etwas ganz Einfaches an. Es setzt voraus, daß nicht gerade der allererste Wert falsch ist, funktioniert aber auch mit mehreren falschen Werten hintereinander.
[attachment=3131]


Signal Filtern - Pascal - 31.08.2006 10:55

Danke,

sieht sehr interessant aus. Werde das nun auch noch probieren. Das mit dem Filter und der Spitzenwerterkennung hat mittlerweile auch geklappt, man sollte den "Punkt für Punkt" wählen.

Pascal