LabVIEWForum.de
Filter initialisieren - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: Filter initialisieren (/Thread-Filter-initialisieren)



Filter initialisieren - eg - 23.10.2008 14:34

Hallo!

Habe folgendes Problem:

ich habe ein Signal (1 Hz). Nun will ich das Signal mit Tiefpass und Hochpass filtern um bestimmte Ereignisse im Signal zu identifizieren. Hochpassfilter zeigt ja immer nur die Änderungen des Signals, damit kann ich z.B. mit einer Schwelle eine plötzliche Änderung im Signal detektieren.

Das Problem dabei ist, dass die Filter eine Bestimmte Zeit brauchen um einzuschwingen. Wie kann ich die Filter direkt mit dem ersten Sample einschwingein lassen, so dass die Filterungnicht bei Null anfängt, sondern beim ersten Sample?

Danke, eg


Filter initialisieren - eg - 23.10.2008 18:53

Gelöst Rolleyes


Filter initialisieren - eg - 20.11.2008 21:48

Also das lässt mir doch keine Ruhe. Ich habe es durch ein Workarround gelöst, und zwar habe ich um den Filter auf eine bestimmte Größe zu setzen den Filter in einer Forschleife mehrmals durchlaufen lassen. Es ist also so, als ob er schon lange Daten gesammelt hat und schon eingeschwungen ist.
Gibt es eine Möglichkeit direkt die Filterkoeffizienten so zu ändern, dass er sich auf eine bestimmte Größe setzt, oder gibt es andere Möglichkeiten den Filter richtig einschwingen zu lassen ohne lange zu warten?

Gruß, eg


Filter initialisieren - jg - 20.11.2008 22:33

Hallo, Eugen,

so weit ich weiss, ist es ein häufig genutztes Verfahren, ein Signal z.B. zu spiegeln, um ein Einschwingen eines Filters zu ermöglichen. Soweit ich verstehe, entspricht das im Prinzip deinem Vorgehen.

Gruß, Jens


Filter initialisieren - eg - 20.11.2008 22:36

' schrieb:Hallo, Eugen,

so weit ich weiss, ist es ein häufig genutztes Verfahren, ein Signal z.B. zu spiegeln, um ein Einschwingen eines Filters zu ermöglichen. Soweit ich verstehe, entspricht das im Prinzip deinem Vorgehen.

Gruß, Jens
:hmm:was meinst du mit "spiegeln"?
Man sagt dass es in Matlab oder PSpice und ähnliches ganz einfach durch Init-Koeffizienten zu lösen ist.


Filter initialisieren - jg - 20.11.2008 22:40

Also, ich gehe bei meiner Antwort davon aus, dass du ein Signal aufgezeichnet hast, und erst "offline" filterst. Spiegeln ist wirklich bildlich zu verstehen, du invertierst dein Daten-Array und setzt es vor den Anfang deiner "realen" Daten. Dann wendest du auf dieses künstlich verlängerte Signal deine Filterung an. Analoges am Ende des Signals, wenn du einen phasenkorrekten Filter hast.

Gruß, Jens


Filter initialisieren - eg - 20.11.2008 22:55

Nö, ich muss live filtern.


Filter initialisieren - jg - 20.11.2008 23:18

' schrieb:Nö, ich muss live filtern.
Aber wenn ich richtig verstehe, machst du doch im Prinzip nichts anderes?! Anfang des Signals ein paar mal zum Einschwingen verwenden, entspricht doch dem Spiegeln beim Offline-Filtern. Oder sehe ich das jetzt falsch?

Gruß, Jens


Filter initialisieren - eg - 20.11.2008 23:26

Ja, ich habe gedacht, dass es ein Workarround ist, denn wenn die Zeitkonstante beim Tiefpass sehr groß ist, dann muss ich sehr oft den Filter durchlaufen lassen, damit er einschwingt. Das nimmt bei drei zu filternden Größen pro Gerät und 40 Geräten viel CPU und Zeit. Aber ohne Einschwingen kann ich meine Schwellwertalgorithmen nicht anwenden, denn die werden spinnen. Ohne Filter geht es auch nicht, denn das Signal zu stark rauscht.
Ich denke also man kann es mit dem Setzen der Forwärts- und Rückwärts-koeffizienten des Filters in einem Aufruf erledigen.

Noch Vorschläge? Thx Jens.


Filter initialisieren - jg - 20.11.2008 23:41

Ne, erst mal nicht, aber unser Filterexperte Lucki hat hoffentlich noch was.