Apakah menggunakan algoritma Goertzel sebenarnya memberikan resolusi frekuensi yang lebih baik?

19

Saya membaca artikel ini , dan saya sedikit bingung dengan penggunaan 'resolusi frekuensi' oleh liberal mengenai Algoritma Goertzel.

Pertanyaan dasar: Apakah menggunakan algoritme Goertzel benar-benar memberi Anda lebih banyak resolusi frekuensi daripada pita frekuensi tertentu, atau apakah itu secara efisien menghitung FFT hanya pada pita frekuensi tertentu, tetapi pada resolusi frekuensi yang sama yang ditentukan oleh frekuensi sampel dibagi dengan angka sampel?

Sebagai contoh, katakanlah adalah 100 KHz, (tetap) dan jumlah sampel data adalah 10000. (Juga diperbaiki). Jika saya menghitung FFT normal, di mana panjang FFT juga , resolusi frekuensi saya adalah seperti yang diharapkan, dan itu akan sama dengan 10 Hz. Ini berarti tempat sampah saya dipisahkan oleh 10 Hz, dari -50.000 Hz hingga 50.000 Hz.FsNNFsN

Sekarang katakanlah saya ingin menggunakan Algoritma Geortzel untuk hanya melihat frekuensi dalam kisaran katakanlah, 20.000-21.000 Hz. Jika saya menggunakan sama untuk jumlah sampel, dan menggunakan sama untuk ukuran FFT saya, lalu apa resolusi frekuensi saya? Masih 10 Hz? Atau apakah itu Hz?NN21,000-20,00010000=0,1

Saya merasa bahwa saya tidak benar-benar meningkatkan resolusi frekuensi saya, sebanyak hanya interpolasi poin pada lobus utama, dengan menggunakan sama untuk mengevaluasi frekuensi dari 21.000 menjadi 20.000 seperti yang saya lakukan dari 0 hingga 50.000.N

Apakah ini pemahaman yang benar?

Spacey
sumber

Jawaban:

18

Pemahaman Anda benar.

Algoritma Goertzel memberikan hasil yang hampir sama persis seperti 1 nampan DFT atau FFT dengan panjang yang sama atau jumlah sampel (dan di mana faktor-faktor teka-teki FFT dihasilkan oleh rekursi trigonometri), ketika digunakan untuk frekuensi yang persis bilangan bulat periodik dalam Panjang Goertzel. Tetapi banyak bentuk algoritma Goertzel hanya menyediakan besarnya, bukan hasil kompleks atau fase hasil bin FFT 1. Selain itu, secara komputasi, Goertzel generik mungkin sedikit lebih stabil daripada FFT generik. Untuk frekuensi non-integer-periodik-dalam-apertur, hasilnya setara dengan interpolasi tulus antara nampan DFT atau FFT dengan panjang yang sama (yang bisa sedikit lebih akurat dari interpolasi daripada interpolasi parabola yang lebih khas dari hasil FFT ).

Interpolasi dapat dikatakan untuk meningkatkan resolusi dalam arti grafis (lebih banyak titik plot), atau membuatnya lebih mudah untuk melihat secara visual maksimal, tetapi tidak dalam pengertian teoretik informasi, atau untuk memisahkan 2 garis spektral jarak dekat yang lebih dekat dengan 2 puncak terpisah.

hotpaw2
sumber
3
Paragraf kedua: Kata hotpaw2 sangat bagus. Inilah yang menurut saya membingungkan banyak orang. Ya, jadi sepertinya Goertzel Algo adalah cara cepat menghitung FFT melalui subband terpilih, dengan interpolasi domain-F bawaan yang dilemparkan juga, jika Anda menjaga semuanya tetap sama seperti jika Anda menggunakan normal FFT.
Spacey
1

Saya tidak dapat mengakses artikel yang Anda maksud, tetapi saya pikir Anda mungkin menemukan yang ini cukup menarik. Para penulis mempresentasikan versi mereka dari algoritma Goertzel yang dapat digunakan untuk menemukan amplitudo dan fase pada frekuensi yang merupakan kelipatan non-integer dari frekuensi fundamental dalam sinyal yang diberikan. Itu berarti algoritma mereka meningkatkan resolusi frekuensi. Artikel ini berisi bukti matematis dan kode algoritma.

mac13k
sumber