Czy użycie algorytmu Goertzela faktycznie zapewnia lepszą rozdzielczość częstotliwości?

19

Czytam ten artykuł i wprawia mnie w zakłopotanie liberalne użycie przez autora „rozdzielczości częstotliwości” w odniesieniu do algorytmu Goertzela.

Podstawowe pytanie: czy użycie algorytmu Goertzela faktycznie zapewnia większą rozdzielczość częstotliwości w określonym zakresie zainteresowania, czy po prostu skutecznie oblicza FFT tylko w określonym zakresie zainteresowania, ale z tą samą rozdzielczością częstotliwości określoną przez częstotliwość próbkowania podzieloną przez liczbę próbek?

Na przykład załóżmy, że wynosi 100 KHz ((ustalony), a liczba próbek danych N wynosi 10000. (Również ustalony). Jeśli obliczę normalną FFT, gdzie długość FFT wynosi również N , moja rozdzielczość częstotliwości wynosi F sfasN.N. jak można się spodziewać, i będzie równa 10 Hz. Oznacza to, że moje pojemniki są oddzielone o 10 Hz, od -50 000 Hz do 50 000 Hz.fasN.

Powiedzmy teraz, że chcę użyć algorytmu Geortzela, aby spojrzeć tylko na częstotliwości w zakresie powiedzmy 20 000–21 000 Hz. Jeśli użyję tego samego dla liczby próbek i użyję tego samego N dla mojego rozmiaru FFT, to jaka jest moja rozdzielczość częstotliwości? Nadal 10 Hz? Czy jest to 21 , 000 - 20 , 000N.N.Hz?21,000-20,000dziesięć tysięcy=0,1

Mam wrażenie, że tak naprawdę nie zwiększam rozdzielczości częstotliwości, a jedynie interpoluję punkty na głównym płacie, używając tego samego do oceny częstotliwości od 21 000 do 20 000, jak to zrobiłem od 0 do 50 000.N.

Czy to prawidłowe zrozumienie?

Spacey
źródło

Odpowiedzi:

18

Twoje zrozumienie jest prawidłowe.

Algorytmy Goertzela dają prawie dokładnie taki sam wynik jak 1 przedział DFT lub FFT o tej samej długości lub liczbie próbek (i gdzie współczynniki drgań FFT są generowane przez rekurencję wyzwalacza), gdy są używane dla częstotliwości, które są dokładnie całkowite okresowe w Długość Goertzela. Ale wiele form algorytmu Goertzela podaje tylko wielkość, a nie wynik złożony lub fazę wyniku bin FFT 1. Również pod względem obliczeniowym ogólny Goertzel może być liczbowo nieco mniej stabilny niż ogólny FFT. W przypadku częstotliwości niecałkowicieokresowych w aperturze wynik jest równoważny interpolacji sinc między przedziałami DFT lub FFT o tej samej długości (która może być nieco bardziej dokładna interpolacji niż bardziej typowa interpolacja paraboliczna wyników FFT ).

Można powiedzieć, że interpolacja zwiększa rozdzielczość w sensie graficznym (więcej punktów wykresu) lub ułatwia wizualne dostrzeżenie maksimów, ale nie w sensie teoretycznym informacji, ani też dla lepszego oddzielenia 2 bliskich linii widmowych jako 2 oddzielnych pików.

hotpaw2
źródło
3
Drugi akapit: Bardzo dobrze powiedziane hotpaw2. Myślę, że to myli wiele osób. Tak, więc wygląda na to, że Goertzel Algo to szybki sposób obliczania FFT w wybranym podzakresie pasma, z wbudowaną interpolacją w domenie F, jeśli zachowasz wszystko tak, jakbyś szedł normalnie FFT.
Spacey,
1

I nie był w stanie uzyskać dostęp do artykułu odnoszącego się pan, ale myślę, że można znaleźć ten jeden bardzo interesujący. Autorzy przedstawili swoją wersję algorytmu Goertzela, za pomocą której można znaleźć amplitudy i fazy przy częstotliwościach, które nie są liczbami całkowitymi wielokrotności częstotliwości podstawowej w danym sygnale. Oznacza to, że ich algorytm poprawia rozdzielczość częstotliwości. Artykuł zawiera matematyczny dowód i kod algorytmu.

mac13k
źródło