LabVIEWForum.de
Tiefpassfilter lässt Signal bei Null beginnen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Tiefpassfilter lässt Signal bei Null beginnen (/Thread-Tiefpassfilter-laesst-Signal-bei-Null-beginnen)

Seiten: 1 2


Tiefpassfilter lässt Signal bei Null beginnen - Matze - 01.07.2010 12:05

Hallo zusammen,

ich nutzen den Filter "Digitaler IIR Filter" (Tiefpass, Butterworth, 3. Ord.).
Egal, welches Signal ich hier übergebe, das Ausgangssignal des Filters beginnt immer bei Null, auch wenn mein Signalverlauf z.B. beim Wert 30 beginnt.

Kann man das ändern?


Tiefpassfilter lässt Signal bei Null beginnen - dimitri84 - 01.07.2010 12:15

Blockdiagramm..........


Eventuell musst du die Punkt-für-Punkt Filter benutzen.


Tiefpassfilter lässt Signal bei Null beginnen - Matze - 01.07.2010 12:27

Das Blockdiagramm ist nichts besonderes (hab's aus mehreren SubVIs heraus kopiert, daher ist es nicht vollständig verdrahtet).

Den anderen Filter schaue ich mir an.


Tiefpassfilter lässt Signal bei Null beginnen - dimitri84 - 01.07.2010 12:45

Versuch mal diese Methode. Mit dem IIR hab ich noch nie was gemacht...
Lv09_img2
[attachment=27512]
[attachment=27511]

Achtung! Das VI klappt nur für max 10 Kanäle. Und den Initialisierungsanschluss bitte ordentlich verwenden.


Tiefpassfilter lässt Signal bei Null beginnen - Matze - 01.07.2010 12:56

Dankesehr. Da fängt das Signal ebenfalls bei Null an, auch wenn "Init" true ist.
Oder muss dieser nur beim 1. Wert "true" sein?

Beim IIR-Filter benötige ich keinen Initialisierungsanschluss und in der Hilfe steht nur "Initialisieren muss TRUE sein, damit das VIs initialisiert wird."


Tiefpassfilter lässt Signal bei Null beginnen - dimitri84 - 01.07.2010 13:36

' schrieb:Da fängt das Signal ebenfalls bei Null an, ...
Kann ich nicht nachvollziehen. VI?
' schrieb:Oder muss dieser nur beim 1. Wert "true" sein?
Ja. Siehe Hilfe.


Tiefpassfilter lässt Signal bei Null beginnen - Matze - 01.07.2010 14:11

Ich wollte dir ein Test-VI basteln, doch dort kann ich es nicht reproduzieren.
Naja, dann teste ich mal weiter. Dennoch danke.

Das Originalprojekt kann ich nicht anhängen, es wäre auch viel zu komplex.


Tiefpassfilter lässt Signal bei Null beginnen - dimitri84 - 01.07.2010 14:17

Naja, auf jeden Fall kenne ich das Problem, dass die Ränder von Signalblöcken auf Null gezogen werden. Mit der Punkt für Punkt Methode trat das aber nie auf.

So initialisiere ich immer:
[attachment=27518]
Gibt auch ein VI "erster Aufruf".


Tiefpassfilter lässt Signal bei Null beginnen - Matze - 01.07.2010 14:25

Ich puffere die Messwerte in einem Array und habe so initialisiert:

[attachment=27520]

Das müsste folglich passen.

Das Ergebnis:

ungefiltert:
[attachment=27522]

gefiltert:
[attachment=27523]

Mit dem digitalen IIR-FIlter sieht's genau so aus.

Das Signal beginnt gar nicht genau bei 0/0 wie folgende Werte zeigen.

ungefiltert:
[code]14,817694


Tiefpassfilter lässt Signal bei Null beginnen - Lucki - 01.07.2010 15:31

' schrieb:Egal, welches Signal ich hier übergebe, das Ausgangssignal des Filters beginnt immer bei Null, auch wenn mein Signalverlauf z.B. beim Wert 30 beginnt.

Das ist ganz natürlich und das wäre bei einem analog aufgebauten TP-Filter auch nicht anders. Bevor dort eine Spanuung angelegt wird, sind alle im Filter verwendeten Kondensatoren ohne Ladung, die Ausgansspannung ist Null. Und das ändert sich nach Anlegen der Spannung nur stetig. Oder anders ausgedrückt: Eine Anfangsspannung ungleich Null wird vom Filter immer als Sprung von Null auf diesen Wert gewertet.

Ich weiß jetzt nicht, ob es Filter-VIs in der Palette gibt, bei denen man die die Anfangsbedingungen einstellen kann. Das würde auch schwieirg sein.

Die beste und zugleich einfachste Möglichkeit ist: Die Messungwertaufnahme sollte genügend lange vor dem Zeitpunkt beginnen, zu dem die Messwerte anfangen interessant zu werden. Auf diese Weise erhält das Filter Gelegenheit, sich einzuschwingen.

Eine Behelfsmaßnahme könnte sein, den Anfangswert zu vervielfältigen und dem eigentlichen Array voranzustellen. Das Filter wäre dann vom ersten echten Wert an schon eingeschwungen.