Was macht das in meinem LP-gedrehten HP-Filterausgang?

10

Ich versuche, ein Signal durch LP-Filterung zu filtern und die Ausgabe vom Originalfilter zu subtrahieren. Um das LP-gefilterte Signal zu erhalten, habe ich mit einem Butterworth-Filter dritter Ordnung für ein Signal mit 16.000 Abtastwerten rückwärts-vorwärts gefiltert. Die Grenzfrequenz betrug 0,5 Hz bei 250 Hz. Es wurde kein Fenster verwendet.

In den ersten 85% der Abtastungen scheint sich die Ausgabe dieser Methode vollständig mit dem tatsächlich HP-gefilterten Signal zu überlappen. Am Ende der Ausgabe gibt es jedoch ein überaus aufrichtiges Phänomen.

  • Was verursacht es?
  • Was könnte ich ändern, um diese Methode durchführbar zu machen?

Hier sind die beiden Signale überlagert. Das blaue ist HP-gefiltert und das rote durch Subtraktion erhalten.

HP- und Orig-LP-Signale

Hier ist die absolute Differenz pro Probe. Sie sind niemals genau gleich; Die minimale Differenz beträgt 8e-12. 87% der Werte liegen unter 0,01.

Unterschied zwischen den beiden Methoden

H(z)

Andreas
quelle
Können Sie den MATLAB-Code einfügen, mit dem Sie die Diagramme erstellen? Die Daten sind nicht wichtig; Sie können es stattdessen bei Bedarf einfach mit Zufallsstichproben simulieren.
Jason R

Antworten:

0

Methinks @ hotpaw2 ist auf dem richtigen Weg. Ich vermute, dass filtfilt die Anfangsbedingungen für den Rückwärtsfilter nicht ganz richtig handhabt. Es klingt nach einem wirklich schwierigen Problem - ich glaube nicht, dass ich Mathworks etwas vorwerfen kann, wenn es falsch verstanden wird ...

Die Korrektur scheint mir einfach zu sein: Füllen Sie das Ende Ihres Signals auf Null, bis der Sinc verschwindet, und löschen Sie die (jetzt ungleich Null!) Auffüllung nach dem Filter.

rtollert
quelle
0

Sie führen für einen einen Rückwärts-Vorwärts-Filter und für den anderen einen Nur-Vorwärts-Filter durch. Somit verhalten sich die beiden Filter an einer oder beiden Kanten unterschiedlich.

Wenn Ihr Signal in der Länge des Datenfensters stark stationär und genau periodisch ist, können Sie versuchen, die Daten kreisförmig zu umwickeln und Ihre Filter zunächst anhand ihrer Impulsantwortlängen zu starten.

hotpaw2
quelle
Entschuldigung, wenn ich nicht klar genug war. Das Signal, mit dem ich vergleiche (blau), wird auch vorwärts-rückwärts gefiltert ( filtfiltund butter(3,0.5/250,high)). Das Signal stammt von einem EKG, von dem ich nicht erwarten kann, dass es genau periodisch ist.
Andreas
Verstehe ich etwas falsch? Ich kann die Gegenstimme nicht verstehen, da der erste Absatz eindeutig falsch ist.
Andreas