Die Frequenzauflösung ist abhängig von der Beziehung zwischen der FFT-Länge und der Abtastrate des Eingangssignals.
Wenn wir 8192 Samples für die FFT sammeln, haben wir:
8192 samples2=4096 FFT bins
Wenn unsere Abtastrate 10 kHz beträgt, besagt das Nyquist-Shannon-Abtasttheorem, dass unser Signal einen Frequenzgehalt von bis zu 5 kHz enthalten kann. Dann ist unsere Frequenzbereichauflösung:
5 kHz4096 FFT bins≃1.22 Hzbin
Dies ist möglicherweise die einfachere, aber vereinfachte Art der Erklärung: Ihre Bin-Auflösung ist einfach , wobei die Abtastrate des Eingangssignals und N die Anzahl der FFT-Punkte ist gebraucht (Stichprobenlänge).fsampNfsamp
Wir können aus dem Obigen ersehen, dass wir, um kleinere FFT-Bins zu erhalten, entweder eine längere FFT ausführen können (d. H. Mehr Samples mit der gleichen Rate nehmen, bevor die FFT ausgeführt wird) oder unsere Sampling-Rate verringern können.
Der Fang:
Es gibt immer einen Kompromiss zwischen zeitlicher Auflösung und Frequenzauflösung.
Im obigen Beispiel müssen 8192 Abtastwerte erfasst werden, bevor die FFT ausgeführt werden kann. Wenn bei 10 kHz abgetastet wird, dauert dies 0,82 Sekunden.
Wenn wir versuchen würden, kleinere FFT-Bins zu erhalten, indem wir eine längere FFT ausführen, würde das Sammeln der benötigten Samples noch länger dauern.
Das mag in Ordnung sein, es mag nicht sein. Der wichtige Punkt ist, dass bei einer festen Abtastrate eine zunehmende Frequenzauflösung die zeitliche Auflösung verringert. Je genauer Ihre Messung im Frequenzbereich ist, desto ungenauer können Sie im Zeitbereich sein. Sie verlieren effektiv alle Zeitinformationen innerhalb der FFT-Länge.
Wenn in diesem Beispiel ein 1999-Hz-Ton in der ersten Hälfte der 8192-Sample-FFT startet und stoppt und in der zweiten Hälfte des Fensters ein 2002-Hz-Ton abgespielt wird, sehen wir beide, aber sie scheinen gleichzeitig aufgetreten zu sein Zeit.
Sie müssen auch die Bearbeitungszeit berücksichtigen. Eine 8192-Punkt-FFT benötigt eine angemessene Verarbeitungsleistung. Eine Möglichkeit, diesen Bedarf zu verringern, besteht darin, die Abtastrate zu verringern. Dies ist die zweite Möglichkeit, die Frequenzauflösung zu erhöhen.
Wenn Sie in Ihrem Beispiel die Abtastrate auf etwa 4096 Hz senken, benötigen Sie nur eine 4096-Punkt-FFT, um 1-Hz-Bins zu erzielen * 4096 Hz. Sie benötigen nur eine 4096-Punkt-FFT, um 1-Hz-Bins zu erzielen, und können trotzdem a auflösen 2-kHz-Signal. Dies verringert die FFT-Bin-Größe, verringert jedoch auch die Bandbreite des Signals.
Letztendlich wird es bei einer FFT immer einen Kompromiss zwischen Frequenzauflösung und Zeitauflösung geben. Sie müssen einen kleinen Spagat machen, um alle Ziele zu erreichen.
Grundlegende FFT-Auflösung ist , wobei die Abtastfrequenz ist.fsN fs
Die Fähigkeit, zwei sehr nahe beieinander liegende Signale zu unterscheiden, hängt stark von den relativen Amplituden und der verwendeten Fensterfunktion ab.
Sie werden vielleicht feststellen, dass das Spielen mit dem Baudline-Signalanalysator eine gute Möglichkeit ist, eine gewisse Intuition in dieser Angelegenheit zu entwickeln - und nein, einige FFTs auszuführen und jeweils ein Spektrum in Matlab oder Python / Numpy zu zeichnen, ist wirklich nicht dasselbe.
EDIT: Es gibt auch einen Trick, um den Eingang mit Nullen aufzufüllen und eine größere FFT zu nehmen. Dies wird Ihre Unterscheidungsfähigkeit nicht verbessern, das Spektrum jedoch möglicherweise besser lesbar machen. Dies ist im Grunde ein Trick, der dem Antialiasing in Vektorgrafiken ähnelt.
quelle
Es ist erwähnenswert, dass eine FFT eine Alternative zur Berechnung mehrerer separater Summenpaare (k = 0 ... sample_length-1) von Sample [k] * SineRefWave [j] [k] und Sample [j] * CosRefWave [j ist ] [k] für alle j bis zur halben Probenlänge. Wenn man bei all diesen Frequenzen Amplitudenauslesungen benötigt, berechnet eine FFT alle in O (NlgN) -Zeit, wohingegen die individuelle Berechnung O (N ^ 2) -Zeit benötigt. Wenn man andererseits nur Amplitudenauslesungen bei einigen Frequenzen benötigt, ist es oft besser, diese einzeln zu berechnen, insbesondere wenn man einen Prozessor oder DSP verwendet, der diesen Summenstil effizient berechnen kann.
Es ist auch erwähnenswert, dass eine FFT mit z. B. einem 20-ms-Abtastfenster nicht in der Lage ist, zwischen einem einzelnen 1975-Hz-Ton oder einer Kombination von Frequenzen (1975-N) Hz und (1975 + N) Hz für N <25 zu unterscheiden. Es kann verwendet werden, um isolierte Frequenzen mit einer Genauigkeit zu messen, die feiner als das Abtastfenster ist, wenn kein anderer spektraler Inhalt in der Nähe ist. Eine einzige 1975-Hz-Frequenz wird in den 1950-Hz- und 2000-Hz-Bins ebenso aufgenommen wie eine Kombination von 1974-Hz- und 1976-Hz-Tönen. Ein isolierter 1974-Hz-Ton würde jedoch im 1950-Hz-Bin stärker ansteigen als im 2000-Hz-Bin, und ein 1976-Hz-Ton würde im 2000-Hz-Bin stärker ansteigen.
quelle
Die Frequenzauflösung hängt nicht von der Länge der FFT ab, sondern von der Länge der gesamten Abtastzeit T, dh 1 / T, die auch die niedrigste Frequenzkomponente ist, die Sie erhalten haben.
Beachten Sie, dass das Auffüllen mit Null die Frequenzauflösung nicht erhöht. Die DFT des Null-Auffüllsignals ist lediglich eine bessere Annäherung an die DTFT des ursprünglichen Signals.
quelle
Wenn Sie den Bereich der möglichen Eingangsfrequenzen kennen und der Bereich eng ist, können Sie eine Unterabtastung anwenden, um die Anzahl der Abtastungen und die Zeit für die Berechnung der FFT zu verringern. Mit 256 Samples und einer Samplefrequenz von 256 Hz erhalten Sie die gewünschte 1-Hz-Auflösung und eine aliasfreie Bandbreite von 128 Hz.
quelle
Schau dir dieses Bild an. es ist klar. Beziehung zwischen fs und fft Auflösung
quelle