Warum sollte ich digitale Filter zum Bandpassieren verwenden, anstatt nur Signale im Frequenzbereich zu manipulieren und sie dann im Zeitbereich wiederherzustellen?

15

Ich bin ein Anfänger in der Signalverarbeitung und ich weiß, dass diese Frage zu weit gefasst sein kann. Aber ich würde immer noch gerne Hinweise von Experten hören.

Mir wurde beigebracht, die Funktionen butter(Butterworth-Filter, auch bekannt als Filter mit maximal flacher Größe) und filtfilt(Nullphasen-Digitalfilterung) für die Bandpassfilterung von EEG-Signalen (Elektroenzephalogramm) in MATLAB offline (dh nach Abschluss der Aufzeichnung) zu verwenden. Auf diese Weise können Sie unvermeidliche "Verzögerungen" vermeiden, die durch das Digitalfilter (dh Nullphasenfilterung) verursacht werden.

Dann fragte mich jemand, warum wir fftdie Frequenzdomänendarstellung des Signals nicht mit (schnelle Fouriertransformation) erhalten und dann die Leistung unerwünschter Frequenzen auf Null setzen können, gefolgt von ifft(inverse schnelle Fouriertransformation), um die gefilterten Daten rechtzeitig wiederherzustellen Domain für den gleichen Zweck. Diese Manipulation im Frequenzbereich klang für mich einfacher und vernünftiger, und ich konnte nicht wirklich antworten, warum.

Was sind die Vor- und Nachteile der einfachen fft/ifftMethode zur Bandpassfilterung? Warum bevorzugen Menschen digitale FIR- oder IIR-Filter?

Ist das fft/ifftVerfahren beispielsweise anfälliger für spektrale Streuungen oder Welligkeiten im Vergleich zu den etablierten digitalen Filtern? Leidet das Verfahren auch unter Phasenverzögerung? Gibt es eine Möglichkeit, die Impulsantwort für diese Filtermethode zum Vergleich zu visualisieren?

Kouichi C. Nakamura
quelle
Verwandte (aber nicht unbedingt doppelte) Frage: electronics.stackexchange.com/questions/100348/why-use-a-filter/…
helloworld922
Die Verwendung einer FFT zum Filtern eines Signals ist absolut gültig, aber es gibt ein paar Dinge, auf die Sie achten müssen. Siehe diese ähnliche Frage / Antwort für weitere Informationen: stackoverflow.com/a/2949227/565542
sbell
5
Fragen wie diese sind möglicherweise besser für die Signalverarbeitungssite geeignet .
Jason R
2
Ich denke, dass der Leitfaden für Wissenschaftler und Ingenieure zur digitalen Signalverarbeitung von Steven W. Smith eine Antwort hat. Ich denke, dass er sagt, dass Sample In - Sample Out mit einem digitalen Filter viel effizienter ist. Es gibt jedoch eine minimale Breite des Fensters (64 Samples oder mehr, an die ich mich nicht genau erinnere), wenn es geeigneter ist, die FFT-Konvertierung durchzuführen, bei der Sie einen Blockfilter in der Freq-Domäne haben können. Effizienz ist nicht das einzige Problem. Der Blockfilter impliziert, dass Sie Samples aus der Zukunft verwenden müssen, was in Echtzeit unmöglich ist.
Val
Vielen Dank, ich habe nach so etwas wie der Signalverarbeitungssite gesucht, es aber nicht gefunden.
Kouichi C. Nakamura

Antworten:

9

Der Hauptgrund, warum die Frequenzdomänenverarbeitung nicht direkt durchgeführt wird, ist die damit verbundene Latenz. Um beispielsweise eine FFT für ein Signal zu erstellen, müssen Sie zuerst das gesamte Zeitbereichssignal von Anfang bis Ende aufzeichnen, bevor Sie es in einen Frequenzbereich konvertieren können. Anschließend können Sie die Verarbeitung durchführen, sie zurück in den Zeitbereich konvertieren und das Ergebnis wiedergeben. Auch wenn die beiden Konvertierungen und die Signalverarbeitung in der Mitte tatsächlich sofort erfolgen, erhalten Sie das erste Ergebnis-Sample erst, wenn das letzte Eingangs-Sample aufgenommen wurde. Sie können jedoch "ideale" Frequenzbereichsergebnisse erzielen, wenn Sie dies in Kauf nehmen möchten. Zum Beispiel würde ein 3-minütiger Song, der mit 44100 Samples / Sekunde aufgenommen wurde, 8 Millionen Punkttransformationen erfordern, aber das ist bei einer modernen CPU keine große Sache.

Sie könnten versucht sein, das Zeitdomänensignal in kleinere Datenblöcke mit fester Größe zu unterteilen und diese einzeln zu verarbeiten, um die Latenz auf die Länge eines Blocks zu reduzieren. Dies funktioniert jedoch aufgrund von "Kanteneffekten" nicht - die Samples an beiden Enden eines bestimmten Blocks werden nicht ordnungsgemäß mit den entsprechenden Samples der benachbarten Blöcke ausgerichtet, was zu störenden Artefakten in den Ergebnissen führt.

Dies geschieht aufgrund von Annahmen, die in dem Prozess impliziert sind, der zwischen dem Zeitbereich und dem Frequenzbereich konvertiert (und umgekehrt). Beispielsweise "nehmen" die FFT und die IFFT an, dass die Daten zyklisch sind; mit anderen Worten, die Blöcke mit identischen Zeitbereichsdaten kommen vor und nach dem Block, der verarbeitet wird. Da dies im Allgemeinen nicht zutrifft, erhalten Sie die Artefakte.

Die Verarbeitung in der Zeitdomäne kann Probleme bereiten, aber die Tatsache, dass Sie die Latenz steuern können und keine periodischen Artefakte auftreten, macht sie in den meisten Echtzeit-Signalverarbeitungsanwendungen zu einem klaren Gewinner.

(Dies ist eine erweiterte Version meiner vorherigen Antwort .)

Dave Tweed
quelle
1
Vielen Dank für die ausführliche Antwort in einfachen Worten. Jetzt kann ich sehen, dass ich in meiner Frage hätte erwähnen sollen, dass mein Job hauptsächlich für die Offline-Analyse und nicht für die Online- oder Echtzeitverarbeitung bestimmt ist. Ich werde die Frage bearbeiten. Ihr Punkt ist ganz klar: Da FFT die gesamte Dauer der Daten benötigt, müssen Sie warten, bis die Aufzeichnung abgeschlossen ist.
Kouichi C. Nakamura
1
OK Fair genug. Lassen Sie mich noch etwas zur Frequenzbereichsfilterung erwähnen, das für Sie möglicherweise ein Problem darstellt oder nicht: Die Filter sind im Zeitbereich nicht kausal . Mit anderen Worten, ihre Impulsantworten erstrecken sich sowohl auf die positive als auch auf die negative Zeit. Dies kann einige überraschende Effekte haben, wenn Sie sich dessen nicht bewusst sind.
Dave Tweed
Vielen Dank. Ich habe in Wikipedia nach "Kausalfilter" gesucht. Per Definition kümmert sich der FFT-Güterwagen nicht um die Zeit, daher sehe ich, dass sie nicht kausal ist. Diese Art erklärt, warum Sie es nicht für Echtzeitfilterung verwenden können.
Kouichi C. Nakamura
3
@ DaveTweed: Ihre Behauptung, eine 8-Millionen-Punkt-FFT zu benötigen, um einen mit 44,1 kHz abgetasteten 3-Minuten-Song zu filtern, ist falsch. FFT-basierte Faltungsalgorithmen werden in der Praxis häufig eingesetzt. Methoden wie Überlappungsspeicherung und Überlappungsaddition werden verwendet, damit geringere FFT-Größen (und damit Verarbeitungslatenz) erforderlich sind. Diese Techniken machen genau das, was Ihr zweiter Absatz vorschlägt: Verwenden Sie kleinere Blöcke, während Sie die "Kanteneffekte" behandeln, die zwischen ihnen auftreten.
Jason R
2
@ DaveTweed: Ich bin anderer Meinung. Schnelle Faltungsmethoden wie Überlappungsspeicherung und Überlappungsaddition entsprechen (bis zur numerischen Genauigkeit) der direkten linearen Faltung (dh Implementierung des Filters im Zeitbereich). Es gibt keine Leistungseinbußen bei Randbedingungen jeglicher Art im Vergleich zur Verarbeitung im Zeitbereich, und ihre begrenzte Latenz macht sie für viele Echtzeitanwendungen immer noch nützlich. Ich behaupte, dass die Behauptung, die Frequenzbereichsfilterung erfordere eine große FFT über das gesamte Eingangssignal, falsch ist, und ich bin mir nicht sicher, was Sie in diesem Zusammenhang unter "reiner" Frequenzbereichsverarbeitung verstehen.
Jason R
2

Sie können durchaus "Boxcar" -Idealfilter im Frequenzbereich verwenden. Die Dualität sagt, dass dies einer Faltung mit einer Sinusfunktion von unendlicher Länge entspricht. Um Artefakte zu reduzieren, die mit der Endlichkeit der Länge verbunden sind, wird die sinc-Funktion häufig mit einem Fenster multipliziert. Sie haben vielleicht von Hamming, Hanning (eigentlich von Hann), Raised Cosine und anderen Fenstertechniken gehört. Die Faltung mag rechnerisch einfacher sein als der fft / ifft-Ansatz, aber die Antworten sind die gleichen.

Jede Methode hat Vor- und Nachteile. Der Butterworth ist IIR, und die Güterwagen sind FIR. Die Butterworths sind wahrscheinlich flacher im Passband, aber wahrscheinlich mit weniger steilem Rolloff, abhängig von der Reihenfolge des IIR und der Breite der FIR. filtfilt wäre schwieriger in echtzeit umzusetzen.

Scott Seidman
quelle
1
Eine wirklich klare Erklärung zu Fenstern und Blockfiltern finden Sie in dem Buch Digital Filters von RW Hamming. Erhältlich in Dover, also sehr günstig. (Übrigens, Scott, ich denke, dies ist das Hamming, nach dem das Fenster benannt ist, und von Hann ist derjenige, der seinen Namen bei der Benennung seines Fensters abgeschlachtet hat.)
Das Photon
Außerdem bin ich mir ziemlich sicher, dass ein mit FFTs implementierter Güterwagen per Definition vollkommen flach im Durchlassbereich liegt. Wenn wir sagen, dass der Butterworth-Filter "maximal flach" ist, sprechen wir meiner Meinung nach nur im Zusammenhang mit kausalen Filtern darüber (und Wiki sagt, dass es trotzdem möglich ist, einen inversen Chebychev-Filter zu erstellen, der flacher als ein Butterworth ist).
Das Photon
1
Vereinbart für eine ideale unendliche Länge, aber nicht so sicher nach dem Abschneiden und Fenstern
Scott Seidman
@ThePhoton Danke für die Hamming / von Hann Korrektur. Konnte mein Bücherregal von zu Hause aus nicht richtig darstellen.
Scott Seidman
@ Das Photon; Vielen Dank für das Buch über digitale Filter von Hamming . Ich habe es angeschaut und es schien speziell für Grundschüler geschrieben zu sein. Ich habe es mit einer Hoffnung gekauft. :)
Kouichi C. Nakamura