23.10.2012, 12:33
Beitrag #1
|
dimitri84
Astronaut
Beiträge: 1.496
Registriert seit: Aug 2009
2020 Developer Suite
2009
DE_EN
53562
Deutschland
|
Nullphasenfilter im Onlinebetrieb
Hallo,
einen Filter ohne Phasenversatz hab ich soweit hinbekommen, wenn man den kompletten Signalverlauf auf einmal reinjagt. Im Onlinebetrieb, wenn also das Signal nur blockweise zur Verfügung steht, sieht es anders aus.
Nullphasenshift_filter.vi (Größe: 379,47 KB / Downloads: 280)
Geht das überhaupt? Den Nullphasenfilter gibt es auch nicht als Punkt-für-Punkt Variante ...
Gruß Dimitri
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
|
|
|
23.10.2012, 14:09
Beitrag #2
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
RE: Nullphasenfilter im Onlinebetrieb
Nein, das geht nicht. Es gibt zu jedem Frequenzgang eine minimale frequenzabhängige Phasendrehung, die nicht unterschritten werden kann. Das Filter kann beliebig mehr Phasendrehung haben, aber nicht weniger. Jeder lineare Vierpol lässt sich zerlegen in eine Kettenschaltung (Hintereianderschaltung) eines "Minimalphasensystems" und eines "Allpasses" (=System mit Phasendrehung ohne Frequenzgang)
Die Minimalphasen-Bedingung im Frequenzbereich korrespondiert im Zeitbereich mit der Bedingung, das sich das System "kausal" verhalten muss: Das Ausgangssignal kann immer erst nachträglich auf ein Eingangssignal reagieren, nicht schon vorher.
Habe mal in Deinem VI statt des vorgegebenes Signal eine Sprungfunktion eingegeben. Dann kommt das heraus:
d.h man hat ein Systemantwort vor dem Sprung - was im realen Leben nicht möglich ist.
|
|
|
23.10.2012, 14:32
(Dieser Beitrag wurde zuletzt bearbeitet: 23.10.2012 14:36 von dimitri84.)
Beitrag #3
|
dimitri84
Astronaut
Beiträge: 1.496
Registriert seit: Aug 2009
2020 Developer Suite
2009
DE_EN
53562
Deutschland
|
RE: Nullphasenfilter im Onlinebetrieb
(23.10.2012 14:09 )Lucki schrieb: d.h man hat ein Systemantwort vor dem Sprung - was im realen Leben nicht möglich ist.
Das muss es auch nicht im realen Leben geben. Die digitale Welt reicht völlig.
Das Problem ist: ich habe zwei Signale - eins muss gefiltert werden, das andere ( darf) nicht. Die resultieren Phasenverschiebung aus dem Filtern verfälscht mein Ergebnis beim verrechnen der Signale. Liegen die Signale komplett vor - kein Problem, siehe VI. Jetzt, und das ist der Unterschied zu damals, muss das auch online funktionieren.
Ich dacht mit den "Init-Anschlüssen" oder mit Anfangsbedingungen würde man das Problem in den Griff bekommen.
Danke für die Antowrt Lucki!
Gruß
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
|
|
|
23.10.2012, 16:10
Beitrag #4
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
RE: Nullphasenfilter im Onlinebetrieb
(23.10.2012 14:32 )dimitri84 schrieb: (23.10.2012 14:09 )Lucki schrieb: d.h man hat ein Systemantwort vor dem Sprung - was im realen Leben nicht möglich ist.
Das muss es auch nicht im realen Leben geben. Die digitale Welt reicht völlig.
Mit "realem Leben" meinte ich "in Echtzeit". Offline ist alles kein Problem.
Zitat:Das Problem ist: ich habe zwei Signale - eins muss gefiltert werden, das andere (darf) nicht. Die resultieren Phasenverschiebung aus dem Filtern verfälscht mein Ergebnis beim verrechnen der Signale. Liegen die Signale komplett vor - kein Problem, siehe VI. Jetzt, und das ist der Unterschied zu damals, muss das auch online funktionieren.
Ist doch kein Problem: Wenn die Verzögerung des gefilterten Echtzeit-Signals unvermeidlich ist, dann kann man doch zumindest das ungefilterte Originalsignal um die gleiche Zeit verzögern, so dass bei der Darstellung im Diagramm keine Zeitverschiebung zwischen den Plots sichtbar ist.
Gruß
Ludwig
|
|
|
23.10.2012, 16:24
Beitrag #5
|
dimitri84
Astronaut
Beiträge: 1.496
Registriert seit: Aug 2009
2020 Developer Suite
2009
DE_EN
53562
Deutschland
|
RE: Nullphasenfilter im Onlinebetrieb
(23.10.2012 16:10 )Lucki schrieb: Ist doch kein Problem: Wenn die Verzögerung des gefilterten Echtzeit-Signals unvermeidlich ist, dann kann man doch zumindest das ungefilterte Originalsignal um die gleiche Zeit verzögern, so dass bei der Darstellung im Diagramm keine Zeitverschiebung zwischen den Plots sichtbar ist.
..."um die gleiche Zeit" ... Und die steht wo?
Das wäre sicher ein möglicher Weg. Nur hängt die Phasenverschiebung von 1) Ordnung 2) Grenzfrequenz und 3) Eingangsignal ab. Das habe ich "damals" mit einer Kreuzkorrelation dann ganz ordentlich quantifizieren können (offline!). Das mit der Kreuzkorrelaton funktioniert aber nicht mit 50-Samples-langen Päckchen, von dem Overhead ganz zu schweigen.
Einfach um eine konstante (empirisch ermittelte) Zeitspanne verschieben, finde ich, nicht verkaufbar. Was wenn sich die Filterparameter ändern ...
Wahrscheinlich ist das kleinste Übel dann doch beide Kanäle zu filtern und damit zu leben.
Gruß Dimitri
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
|
|
|
23.10.2012, 16:52
(Dieser Beitrag wurde zuletzt bearbeitet: 23.10.2012 16:53 von Lucki.)
Beitrag #6
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
RE: Nullphasenfilter im Onlinebetrieb
Es geht hier nicht um Phasenverschiebungen, sonder um die Filterlaufzeit, und die hängt nicht vom Eingangssignal ab, sondern ist eine alleinige Eigenschaft des Filters.
Die Laufzeit eines TP ist so definiert: Sie ist der Schwerpunkt das Antwortsignals auf einen Nadelimpuls zurt Zeit t=0.
Die Signalverzögerung ist eindeutig mit den Filterkoeffizienten verknüpft und lässt sich aus ihnen berechnen. Für Labview wohl kein Problem. Nur weiß ich jetzt die Formel nicht.
In vielen Fällen hat man es aber nur mit immer unterschiedlichen Signalen zu tun, alles andere, also auch die Filtereinstellung, bleibt gleich. In diesem häufigen Fall tut es auch eine einmalige empirische Anpassung.
|
|
|
23.10.2012, 18:53
(Dieser Beitrag wurde zuletzt bearbeitet: 23.10.2012 18:54 von dimitri84.)
Beitrag #7
|
|
|
23.10.2012, 22:32
Beitrag #8
|
|
|
24.10.2012, 08:24
(Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2012 08:26 von Lucki.)
Beitrag #9
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
RE: Nullphasenfilter im Onlinebetrieb
Und die Probe stimmt auch: Bei einem einfachen RC-Glied (TP erster Ordnung) sollte die Laufzeit gleich der Zeitkonstanten sein, also
Td = 1/(2*pi*fg)
Macht bei fg=5Hz 31.8ms.
Übrigens: für die Erzeugung einen Nadelimpulses gibt es das VI "Impulse Pattern". Allerdings gehört das, wie man an Deinem Beispiel sieht, zu den eher entbehrlichen Funktionen.
Gruß Ludwig
|
|
|
| |