Erzielt die Verwendung des Goertzel-Algorithmus tatsächlich eine bessere Frequenzauflösung?

19

Ich lese diesen Artikel und bin ein wenig verwirrt über die freizügige Verwendung der „Frequenzauflösung“ des Autors in Bezug auf den Goertzel-Algorithmus.

Grundfrage: Bietet die Verwendung des Goertzel-Algorithmus tatsächlich eine höhere Frequenzauflösung für ein bestimmtes interessierendes Band oder berechnet er die FFT einfach effizient nur für das angegebene interessierende Band, jedoch bei derselben Frequenzauflösung, die durch die Abtastfrequenz geteilt durch die Zahl angegeben wird von Proben?

Zum Beispiel kann das sagen 100 kHz ist, (fest) und die Anzahl der Datenproben N ist 10000. (auch festgelegt). Wenn ich eine normale FFT berechnen, wo FFT - Länge ist auch N , meine Frequenzauflösung ist F sFsNN wie erwartet, und es wird gleich 10 Hz sein. Dies bedeutet, dass meine Fächer durch 10 Hz von -50.000 Hz bis 50.000 Hz getrennt sind.FsN

Angenommen, ich möchte den Geortzel-Algorithmus verwenden, um nur Frequenzen im Bereich von beispielsweise 20.000 bis 21.000 Hz zu untersuchen. Wenn ich die gleiche verwenden für die Anzahl der Proben, und verwenden die gleiche N für meine FFT - Größe, was ist dann meine Frequenzauflösung? Noch 10 Hz? Oder ist es 21 , 000 - 20 , 000NNHz?21,000-20,00010000=0,1

Ich habe das Gefühl, dass ich meine Frequenzauflösung nicht wirklich erhöhe, sondern lediglich Punkte auf der Hauptkeule interpoliere, indem ich das gleiche in verwende, um die Frequenzen von 21.000 bis 20.000 zu bewerten, wie ich es von 0 bis 50.000 getan habe.N

Ist das ein korrektes Verständnis?

Spacey
quelle

Antworten:

18

Dein Verständnis ist korrekt.

Goertzel-Algorithmen liefern fast genau das gleiche Ergebnis wie 1 Bin einer DFT oder FFT mit der gleichen Länge oder Anzahl von Abtastwerten (und bei denen die FFT-Twiddle-Faktoren durch eine Trigger-Rekursion erzeugt werden), wenn sie für Frequenzen verwendet werden, die in der Periode genau ganzzahlig sind Goertzel Länge. Viele Formen des Goertzel-Algorithmus liefern jedoch nur die Größe, nicht das komplexe Ergebnis oder die Phase des FFT 1-Bin-Ergebnisses. Auch rechnerisch kann ein generisches Goertzel zahlenmäßig etwas weniger stabil sein als eine generische FFT. Für Frequenzen mit nicht ganzzahliger Periodizität in der Apertur ist das Ergebnis gleichbedeutend mit einer Sin-Interpolation zwischen Bins einer DFT oder FFT gleicher Länge (die für eine Interpolation etwas genauer sein kann als die typischere parabolische Interpolation von FFT-Ergebnissen) ).

Man könnte sagen, dass die Interpolation die Auflösung in grafischer Hinsicht erhöht (mehr Diagrammpunkte) oder das visuelle Erkennen der Maxima erleichtert, jedoch nicht in informationstheoretischer Hinsicht, und auch die Trennung von 2 nahe beieinander liegenden Spektrallinien als 2 getrennte Peaks erleichtert.

hotpaw2
quelle
3
Zweiter Absatz: Sehr gut gesagt, hotpaw2. Ich denke, das verwirrt viele Menschen. Ja, so scheint es, als ob das Goertzel Algo eine schnelle Methode ist, die FFT über ein ausgewähltes Subband zu berechnen, wobei auch eine eingebaute F-Domain-Interpolation integriert ist, wenn Sie alles so lassen, als würden Sie normal arbeiten FFT.
Spacey
1

Ich konnte auf den Artikel, auf den Sie sich bezogen haben, nicht zugreifen, aber ich denke, Sie finden diesen Artikel möglicherweise sehr interessant. Die Autoren stellten ihre Version des Goertzel-Algorithmus vor, mit der Amplituden und Phasen bei Frequenzen ermittelt werden können, die nicht ganzzahlige Vielfache der Grundfrequenz im gegebenen Signal sind. Das heißt, ihr Algorithmus verbessert die Frequenzauflösung. Der Artikel enthält den mathematischen Beweis und den Code des Algorithmus.

mac13k
quelle