Ich habe eine 1-mal-10000-Matrix von Double`s in einer Datei namens "fecg.mat" gespeichert. Die Matrix repräsentiert die Größe eines aufgezeichneten FECG-Signals.
Ich habe es gegen die Zeit geplottet (von 0 bis 9999):
Zum Entfernen der Grundlinie frage ich mich, ob ich einen Hochpassfilter verwenden kann. Wie entwerfe ich einen richtigen Filter?
PS Signalverarbeitung ist nicht mein Fachgebiet. Ich habe keine Ahnung, wie man ein diskretes Zeitbereichssignal filtert.
Antworten:
Der einfachste Weg, die Basislinie zu entfernen, besteht darin, den Durchschnitt zu entfernen:
Tatsächlich ist der Durchschnitt der erste Koeffizient der Fourier-Transformation, es handelt sich also um eine sehr scharfe Filterung: Sie eliminieren den Gleichstromkoeffizienten.
Wenn Sie eine klassischere Filterung wünschen, überprüfen Sie Funktionen wie
butter
und Freunde, die einen IIR-Filter synthetisieren, undfilter
filtern Sie dann Ihr Signal heraus.Matlab enthält auch ein Filterdesign-Tool.
quelle
MATLAB verfügt über ein Filterdesign-Tool namens fdatool. Führen Sie das fdatool in MATLAB aus. Es bietet Ihnen eine visuelle Benutzeroberfläche, in der Sie die Filterparameter ändern können. Wählen Sie dort einen Hochpassfilter und eine Grenzfrequenz. Wenn Sie mit der Filterform zufrieden sind, exportieren Sie sie in den MATLAB-Arbeitsbereich. Angenommen, Ihr Filtername ist myFilter und Ihr Signalname ist mySignal. Um das Signal in MATLAB zu filtern, geben Sie Folgendes ein: filteredSignal = conv (mySignal, myFilter).
quelle
Wenn Sie den Frequenzinhalt des gewünschten Signals kennen, können Sie etwas unter dieser Frequenz hochpassieren. Angenommen, Sie interessieren sich nur für Signale über 2 Hz und Ihre Abtastrate beträgt 100 Hz. Dann können Sie dies wie folgt tun:
In diesem speziellen Beispiel wird ein Butterworth-Hochpass 3. Ordnung verwendet.
quelle
Welcher Filter wirklich verwendet werden soll, hängt von der jeweiligen Anwendung ab. - Ein zu grober Filter könnte die gesuchten Informationen entfernen!
Der weit verbreitete Pan-Tompkins-Algorithmus (zur QRS-Erkennung) spezifiziert einen Filter zum Entfernen der Basislinie in EKG-Daten. Anhand der begrenzten Informationen, die Sie angegeben haben, ist es jedoch schwierig festzustellen, ob dieser Filter für Ihre Anwendung geeignet ist. Bitte erläutern Sie eine genauere Antwort.
quelle
LPF
wie Castilho sagte. aber die Grundlinie, die ich erhielt, war verzögert. Wenn ich die Grundlinie und das ursprüngliche Signal abgleichen möchte, um sie zu subtrahieren, sollte ich eines davon verschieben, oder gibt es einen besseren Weg?Ich würde Ihnen empfehlen, einen adaptiven Filter zum Entfernen des 50-Hz-Grundrauschens zu verwenden. Ein lms adaptiver Filter würde gut funktionieren:
quelle