Ich dachte, dass DSP durch Verwendung von FFT von Teilen von durchgeführt würde ein Signal, modifizieren Sie die Samples, die sich aus der FFT ergeben (da sie das Spektrum unseres Signals + Rauschens darstellen) und entfernen Sie alle unerwünschten Signale und führen Sie dann eine inverse FFT durch, um eine Zeitbereichsdarstellung des gefilterten Signals zu erhalten (Rauschen wurde jetzt entfernt). . Dies wird jedoch nicht durchgeführt, sondern wir erledigen die gesamte Arbeit im Zeitbereich mithilfe von Fensterfunktionen. Warum?

Wenn wir die Fensterfunktion im Zeitbereich multiplizieren, als wir den Frequenzgang der Fensterfunktion mit dem Spektrum unseres Signals im Frequenzbereich falten, wie funktioniert das? Ich meine, wenn wir nur alle getan haben Die Arbeit im Frequenzbereich durch Multiplikation unseres Signals mit dem Frequenzgang des Filters wäre wie eine Filterung, oder? Aber hier erledigen wir alles im Zeitbereich, indem wir stattdessen das Fenster verwenden.

-> Mal sehen, wo Meine Verwirrung kommt von. Für analoge Filter, z. B. Tiefpassfilter, haben wir diesen impulsartigen Frequenzgang. Wenn wir ein Signal filtern, multiplizieren wir effektiv das Spektrum unseres Signals mit dem impulsartigen Frequenzgang des Filters. Dadurch werden alle Frequenzen in unserem Signal oberhalb eines Grenzwerts auf 0 reduziert. So funktioniert ein Tiefpassfilter im Wesentlichen. Warum nicht auch mit digitalen Filtern?

Kommentare

Antwort

Durch das Fenster wird das Spektrum reduziert Leckage.

Angenommen, Sie beginnen mit einem $ \ sin (y) = \ cos (\ omega_0 t) $. Der Zeitraum beträgt offensichtlich $ 2 \ pi / \ omega_0 $.

Aber wenn Ihnen niemand gesagt hat, dass die Periode $ 2 \ pi / \ omega $ ist und Sie blind den Bereich $ [0, 1,8 \ pi / \ omega_0] $ wählen und die FFT dieser abgeschnittenen Wellenform nehmen, Sie beobachtet Frequenzkomponenten in anderen Frequenzen, die alle gefälscht sind, da die Sprünge, die durch Kopieren der abgeschnittenen Wellenform für die Periodizität erzeugt werden, im ursprünglichen Signal nicht wirklich vorhanden sind – es ist ein Artefakt einer unglücklichen Kürzung, die den Übergang zwischen Perioden nicht reibungslos erfasst . Idealerweise gibt es bei $ \ omega = \ omega_0 $ nur eine Spektralkomponente.

Der Zweck der Fensterung im Zeitbereich besteht darin, alle diese fiktiven Spektralkomponenten zu reduzieren.

Antwort

Das Fenster wird verwendet, weil die DFT-Berechnungen mit der unendlichen periodischen Erweiterung des Eingangssignals arbeiten. Da viele tatsächliche Signale entweder überhaupt nicht periodisch sind oder über ein Intervall abgetastet werden, das sich von ihrer tatsächlichen Periode unterscheidet, kann dies zu falschen Frequenzkomponenten an der künstlichen „Kante“ zwischen wiederholten Intervallen führen, die als Leckage . Indem Sie zuerst das Zeitbereichssignal mit einer Fensterfunktion multiplizieren, die an beiden Enden auf Null geht, erzeugen Sie einen reibungslosen Übergang zwischen wiederholten Intervallen in der unendlichen periodischen Erweiterung, wodurch die Erzeugung dieser künstlichen Frequenzkomponenten verringert wird, wenn wir dann die DFT nehmen.

Dieses -Papier bietet einen tieferen Einblick in dieses Phänomen sowie einige Einblicke in die Auswirkungen verschiedener Fensterfunktionen.

Antwort

Ich denke, Sie verwechseln zwei verschiedene Operationen.

Das Fenster im Zeitbereich wird durch @ erklärt sam, also werde ich das nicht wiederholen. Aber es wird keine Fensterung durchgeführt, um eine Filterung durchzuführen. Die Filterung durch Multiplizieren der FFT eines Signals mit dem Filterfrequenzgang ist in vielen Situationen völlig vernünftig und wird tatsächlich durchgeführt. Die Alternative für die Filterung ist die Zeit -Domänenfaltung (die sich von der Fensterung unterscheidet) Dies hat seine eigenen Vorteile, wie das Bearbeiten eines Signals in „Echtzeit“ e „wie es gemessen wird, ohne darauf zu warten, dass das Ganze gespeichert und dann transformiert wird.

Auf Ihre Frage“ Warum nicht auch mit digitalen Filtern? „lautet die Antwort einfach“ wir tun es. “ , wenn es passt. „

Kommentare

  • Ich habe auch den Eindruck, dass Faltung und Fenster in der Frage verwechselt wurden. Gut, dass Sie darauf hingewiesen haben!

Antwort

Auf diese Frage gab es mehrere gute Antworten. Ich bin jedoch der Meinung, dass ein wichtiger Punkt nicht ganz klargestellt wurde. Ein Teil der Frage war, warum wir die FFT eines Signals nicht einfach mit der gewünschten Filterantwort multiplizieren. Wenn wir beispielsweise unser Signal tiefpassfiltern möchten, können wir einfach alle Frequenzkomponenten auf Null setzen, die höher als die gewünschte Grenzfrequenz sind Dies ist in der Tat eine einfache Anwendung des bekannten Frequenzabtastverfahrens zum Entwerfen von FIR-Filtern. Das Problem besteht darin, dass wir die von der FFT berechneten diskreten Frequenzkomponenten nur auf Null setzen können. Wir haben keine Kontrolle darüber, was zwischen diesen diskreten Frequenzen geschieht .Es stellt sich heraus, dass eine so einfache Version der Filterung nur eine schlechte Sperrbanddämpfung ergibt (unabhängig von der FFT-Länge). Wenn Sie Zugriff auf Matlab oder Oktave haben, ist es sehr lehrreich, es selbst zu versuchen:

x=2*rand(1024,1)-1; X=fft(x); Y=X.*[ones(200,1);zeros(625,1);ones(199,1)]; % lowpass filter y=real(ifft(Y)); % real() just to remove numerical errors Y=fft(y,4096); plot(20*log10(abs(Y(1:2048)))),axis([0,2048,-30,50]) 

Antwort

Wenn Sie kein nicht rechteckiges Fenster verwenden, werden die FFT-Ergebnisse bereits mit der Transformation eines rechteckigen Standardfensters (eines periodischen Sinc) gefaltet, bevor eine Frequenzbereichsfilterung durchgeführt wird. z.B. Sie erhalten zwei Filter, von denen einer wahrscheinlich nicht gewünscht wird.

Durch Fensterung im Zeitbereich vor der FFT- und Frequenzbereichsfilterung ersetzen Sie alle Filter (sogenannte „Leckage“). ) durch rechteckiges Fenster gemacht werden und somit keine zusätzliche unerwünschte Filterfaltung erhalten.

Die andere Möglichkeit, dies zu tun, besteht darin, in aufeinanderfolgenden Fenstern Überlappungsadditions- oder Überlappungsspeichermethoden zu verwenden, bei denen die Auswirkungen von einem Rechteckige Fenster werden durch ähnliche Effekte aus den benachbarten Fenstern gelöscht.

Antwort

Fenster im Zeitbereich, weil

  • wir können Null an den Rändern des Fensters garantieren
  • Fensterfunktionen haben einen schönen analytischen Ausdruck im räumlichen Bereich
  • viele Fensterfunktionen haben ein seltsam geformtes Spektrum, das wäre schwer zu approximieren
  • es wird nur eine begrenzte Anzahl von Abtastwerten benötigt (Fensterung kann durchgeführt werden, wenn die Signalströme eingehen)

z von wikipedia

geben Sie hier die Bildbeschreibung ein

The hard Das Abschalten der Fensterfunktionen auf Null bedeutet, dass sie im Spektralbereich Nebenkeulen haben, die sehr langsam auf Null gehen. Wenn wir diese Einschränkung aufheben, können wir Funktionen haben, die sowohl in räumlichen als auch in spektralen Bereichen kompakt sind, wie das Gaußsche Filter. Dies bedeutet, dass Sie über den Spektralbereich filtern können, dafür muss jedoch das gesamte Signal bekannt sein.

Wenn Sie bereits über das gesamte Signal verfügen, können Sie auch Wavelets

Antwort

Ich hatte dieselbe Frage.

Eine Faltung ist die integrale / kumulative Summe des Zeitbereichssignals multipliziert mit dem Fenster. Dies sollte nicht mit dem Zeitfenstersignal mit „Fenster“ verwechselt werden.

Das Ende von dieses Artikels hat mir sehr geholfen.

Grundsätzlich heißt es, dass reale Signale endlich sind und das plötzliche Abschneiden eines realen Signals zu vielen unerwünschten Frequenzen / Artefakten im Frequenzbereich führt.

Um diese Artefakte zu vermeiden / zu minimieren Sie können eine glatte (z. B. glockenförmige) Fensterfunktion verwenden, sodass Ihre Probe mit einer Null beginnt und endet, anstatt abrupt mit einem Skalarwert ungleich Null zu enden.

Glatter Schnitt

Das oben gezeigte Beispiel mit Fenster weist im Frequenzbereich weniger Artefakte auf als das unten stehende Rohmuster.

Abrupte Abschaltung

Antwort

Mit einer FFT sind zwei große Kategorien verknüpft: 1) eine effiziente Methode zur Implementierung eines FIR-Filters und 2) eine Spektralanalyse.

Für FIR-Filterung, man macht sich keine Sorgen um Fenster und verwendet sie nicht, es sei denn, das Fenster entspricht einem Filter, aber das ist nicht üblich dünn g zu tun. Leckage ist kein Problem.

Bei der Spektralanalyse werden Fenster verwendet. Hier sehen Sie sich einen Sensor an, der an einer großen Industriemaschine angebracht ist, und versuchen herauszufinden, ob tief im Darm ein Lager ausfällt. Die Lager quietschen, wenn sie ausfallen, aber das Geräusch, das sie verursachen können, ist normalerweise viel geringer als die anderen Geräusche, die die Maschine macht. Hier kommt die Leckage und Mittelwertbildung ins Spiel. Bei starken Tönen wird die Leckage das schwache Signal überfluten, nach dem wir ein paar Behälter suchen. Es verbessert die Empfindlichkeit der Spektralanalyse gegenüber schwachen Signalen bei Vorhandensein starker Signale. Es gibt einen ähnlichen Effekt, wenn das Hintergrundgeräusch geneigt ist. Die Informationen, die wir suchen, liegen im Frequenzbereich. Dies ist das gleiche Problem bei RADAR, SONAR und Geophysik. Das schwache Signal zu sehen ist das Ziel.

Antwort

Ein Fenster im Zeitbereich ist erforderlich, um zu vermeiden, dass sich eine einzelne Frequenz, die sich nicht genau in einem Frequenzbereich befindet, ausbreitet über das gesamte Spektrum. Vielleicht hilft diese Seite: http://www.sm5bsz.com/slfft/slfft.htm Linrad (mein 20 Jahre altes Projekt) verwendet eine FFT mit Fenster und wendet dann einen Filter an im Frequenzbereich (machen Sie Null, was wir nicht wollen.) Wenden Sie ein Fenster an – gehen Sie nicht abrupt von Gewicht 1 zu Gewicht 0 auf den Frequenzbereichen. Wenden Sie dann eine Rückwärts-FFT an – jetzt jedoch mit einer viel geringeren Anzahl von Punkten. Es ist nicht erforderlich, alle Frequenzbereiche einzuschließen, von denen wir wissen, dass sie Null sind !! Als Ergebnis erhalten wir eine Zeitfunktion mit einer viel kleineren Größe – das heißt mit einer viel niedrigeren Abtastrate. Das Verfahren filtert und dezimiert in einem einzigen Schritt.Dies ist sehr effizient, wenn mehrere Kanäle gleichzeitig herausgefiltert werden sollen. Die Linrad-Homepage befindet sich hier: http://www.sm5bsz.com/linuxdsp/linrad.htm

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.