Wie wähle ich Frequenzauflösung und Fenstergröße in FFT aus?


9

Ich mache eine Spektrumanalyse eines zeitlich variierenden Signals mit einer Frequenzänderung von 200 Hz bis 10 kHz. Ich verwende die FFT zur Analyse der Frequenzkomponente im Signal. Meine Fragen sind:

  1. Wie entscheidet man über die Frequenzauflösung und Fensterbreite für das Signal?
  2. Welche Art von Fensterfunktion ist für das zeitlich veränderliche Signal geeignet?
  3. Was sollte die optimale Größe für FFT sein?

Die Abtastrate des Signals beträgt 44,1 kHz.


2
Was ist das Frequenzänderungsmuster? Springt das Signal abrupt zwischen verschiedenen Frequenzen oder ist die Frequenzänderung kontinuierlich? Wenn das Signal springt, für welchen Zeitraum können Sie davon ausgehen, dass das Signal auf derselben Frequenz bleibt? Wenn die Frequenzänderung kontinuierlich ist, welches Muster hat diese Änderung (linear, Gauß, andere)?
Vasiliy

Es hüpft nicht, es variiert weiterhin das Signal ähnlich dem Chirp-Signal. Die Amplitude für jede Frequenz kann sich zufällig ändern.
Nitin

4
Sie sagen, Sie nehmen die FFT, um die Frequenzkomponente zu analysieren. Dies ist ein Zwischenschritt. Um Ihre Frage genau zu beantworten, müssen wir wissen, was Sie erreichen möchten. Was beabsichtigen Sie mit diesen Informationen zu tun? Warum müssen Sie die Frequenzkomponente kennen? Wie oft müssen Sie diese Informationen aktualisieren? Ohne uns dieses Zeug zu erzählen, sind Sie der einzige, der wissen kann, wie die Auflösung aussehen muss. Wenn Sie die Antwort nur bei einer oder zwei Frequenzen kennen müssen, ist FFT möglicherweise nicht der beste Weg.
Scott Seidman

@ ScottSeidman, du hast meine Gedanken gelesen.
Vasiliy

1
@ trav1s, wir unterrichten alle unterschiedlich. Wenn ein Schüler von mir mit dieser auf diese Weise gestellten Frage zu mir kam, würde ich versuchen, ihm dieselbe Nachricht zum Mitnehmen zu geben, die ich mit meinem ausführlichen Kommentar oben erhalten habe: "Ein Ingenieur sollte verstehen, warum er oder sie es tut etwas vor dem Beginn ". Es gibt Tausende von Ressourcen, in denen man die Gleichungen finden kann, die die Frequenzauflösung als Funktion von N beschreiben, und es schien, als hätte der Fragesteller sie zur Verfügung, aber diese Nachricht ist nicht an sie angehängt! Hoffentlich machte das Anstupsen dem Fragesteller klar, dass er die Antwort bereits hielt.
Scott Seidman

Antworten:


4

Da Sie mit einer festen Abtastrate arbeiten, erhöht Ihre FFT-Länge (für die Ihr Fenster die gleiche Breite haben muss) Ihre Frequenzauflösung. Eine feinere Frequenzauflösung hat zwei Vorteile: Der offensichtliche Vorteil besteht darin, dass Sie eine feinere Frequenzauflösung erhalten, sodass Sie möglicherweise zwei Signale unterscheiden können, deren Frequenz sehr nahe beieinander liegt. Das zweite ist, dass mit einer höheren Frequenzauflösung Ihr FFT-Grundrauschen niedriger ist. Das Rauschen in Ihrem System hat eine feste Leistung, die nicht mit der Anzahl der Punkte Ihrer FFT zusammenhängt, und diese Leistung wird gleichmäßig (wenn es sich um weißes Rauschen handelt) auf alle Ihre Frequenzkomponenten verteilt. Wenn mehr Frequenzkomponenten vorhanden sind, wird der individuelle Rauschbeitrag Ihrer Frequenzbereiche verringert, während das gesamte integrierte Rauschen gleich bleibt. was zu einem geringeren Grundrauschen führt. Auf diese Weise können Sie einen höheren Dynamikbereich unterscheiden.

Die Verwendung einer längeren FFT weist jedoch Nachteile auf. Erstens benötigen Sie mehr Rechenleistung. Die FFT ist ein O (NlogN) -Algorithmus, wobei N die Anzahl der Punkte ist. Es ist zwar möglicherweise nicht so dramatisch wie die naive DFT, aber der Anstieg von N führt zu einer Blutung Ihres Prozessors, insbesondere wenn Sie in einem eingebetteten System arbeiten. Zweitens, wenn Sie N erhöhen, gewinnen Sie an Frequenzauflösung, während Sie an Zeitauflösung verlieren. Bei einem größeren N müssen Sie mehr Proben entnehmen, um zu Ihrem Frequenzbereichsergebnis zu gelangen. Dies bedeutet, dass Sie Proben länger entnehmen müssen. Sie können einen höheren Dynamikbereich und eine feinere Frequenzauflösung erkennen. Wenn Sie jedoch nach Sporen suchen, haben Sie eine weniger klare Vorstellung davon, wann dieser Sporn genau aufgetreten ist.

Die Art des Fensters, das Sie verwenden sollten, ist ein ganz anderes Thema, über das ich nicht so gut informiert bin, um Ihnen eine Antwort darauf zu geben, welches besser ist. Unterschiedliche Fenster haben jedoch unterschiedliche Ausgabeeigenschaften, von denen die meisten (wenn nicht alle) nach der Verarbeitung des FFT-Ergebnisses reversibel sind. Bei einigen Fenstern können Ihre Frequenzkomponenten in Seitenfächer bluten (wenn ich mich nicht irre, werden Ihre Komponenten im Hanning-Fenster auf drei Fächern angezeigt.), Bei anderen Fenstern erhalten Sie möglicherweise eine bessere Frequenzgenauigkeit, während Ihre Komponenten einen Verstärkungsfehler aufweisen. Dies hängt vollständig von der Art des Ergebnisses ab, das Sie erzielen möchten. Daher würde ich einige Nachforschungen (oder Simulationen) anstellen, um herauszufinden, welches für Ihre spezifische Anwendung am besten geeignet ist.


Beachten Sie, dass es zwar intuitiv sein kann, FFT-Auswertungen für sequentielle Blöcke auszuführen, es aber auch möglich ist, sie für überlappende Blöcke von Eingabedaten auszuführen , dh alle 256 Abtastwerte eine 1024-Punkte-FFT zu starten, was natürlich eine etwas bessere Zeitauflösung ergibt die Kosten für noch mehr Berechnung.
Chris Stratton

0

Als erstes muss die Abtastfrequenz mindestens doppelt so hoch sein wie die maximale Frequenz des Signals (44,1 kHz> 2 x 10 kHz). Wenn die Länge des Fensters im Zeitbereich T ist, beträgt die Frequenzauflösung mit FFT genau 1 / T. Die Auflösung im Frequenzbereich mit der FFT hat nichts mit der Abtastfrequenz im Zeitbereich zu tun. Wie bereits in früheren Antworten erwähnt, kann das Zeitbereichsfenster jedoch nicht zu groß sein, da Sie dann Informationen über die Störsignale verlieren würden, die nur vorübergehend auftreten. Es muss also einen Kompromiss zwischen Frequenzauflösung und Erkennung von Störsignalen geben. Schließlich ist FFT nicht der einzige Algorithmus, der ein Signal vom Zeitbereich zum Frequenzbereich überträgt. Wenn Sie eine hohe Auflösung im Frequenzbereich mit einer begrenzten Anzahl von Abtastwerten im Zeitbereich suchen, können Sie hochauflösende Spektralschätzungstechniken wie MUSIC und ESPIRIT verwenden. Diese werden auch für die Schätzung der Ankunftsrichtung (DOA) verwendet, die dem Problem der Spektralschätzung ziemlich ähnlich ist.


ähm nein ... nyquist noch einmal lesen. Wenn Sie eine Frequenz zuverlässig rekonstruieren möchten, benötigen Sie 5-10x. Ebenso ermöglicht ein breiteres Fenster die Rekonstruktion der niedrigsten interessierenden Frequenz für Subharmonische. Ein Störsignal wird in einer FFT ohnehin nicht zuverlässig gesehen, da ein Dirac-Impuls einen hohen Frequenzgehalt haben kann. Seine Aufgabe ist "zufällig". Nur eine zuverlässige / periodische Komponente wird mit einer signifikanten Amplitude
angezeigt

Der Frequenzbereich des interessierenden Signals reicht von 200 Hz bis 10 kHz. Die Abtastfrequenz beträgt also mindestens das 4,41-fache der Signalfrequenz. Wenn wir uns das untere Ende des Spektrums ansehen, beträgt die Abtastfrequenz das 220,5-fache. wir müssen vielleicht wissen, wie die Frequenz statistisch verteilt ist ... trotzdem denke ich, dass die Abtastfrequenz hier kein Problem ist!
Yasir Ahmed
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.