¿El uso del algoritmo de Goertzel realmente da una mejor resolución de frecuencia?

19

Estoy leyendo este artículo , y estoy un poco confundido por el uso liberal del autor de la "resolución de frecuencia" con respecto al algoritmo de Goertzel.

Pregunta básica: ¿El uso del algoritmo de Goertzel realmente le brinda más resolución de frecuencia en una banda de interés específica, o simplemente calcula eficientemente la FFT solo en la banda de interés especificada, pero a la misma resolución de frecuencia especificada por la frecuencia de muestreo dividida por el número? de muestras?

Por ejemplo, supongamos que es 100 KHz, (fijo) y el número de muestras de datos N es 10000. (También fijo). Si calculo una FFT normal, donde la longitud de la FFT también es N , mi resolución de frecuencia es F sFsnortenorte como era de esperar, y será igual a 10 Hz. Esto significa que mis contenedores están separados por 10 Hz, de -50,000 Hz a 50,000 Hz.Fsnorte

Ahora digamos que quiero usar el algoritmo Geortzel para ver solo las frecuencias en el rango de, digamos, 20,000-21,000 Hz. Si uso el mismo para la cantidad de muestras y uso el mismo N para mi tamaño de FFT, ¿cuál es mi resolución de frecuencia? ¿Todavía 10 Hz? ¿O son 21 , 000 - 20 , 000nortenorteHz?21,000-20,00010000=0.1

Tengo la sensación de que realmente no estoy aumentando mi resolución de frecuencia, sino simplemente interpolando puntos en el lóbulo principal, usando el mismo para evaluar las frecuencias de 21,000 a 20,000 como lo hice de 0 a 50,000.norte

¿Es esto un entendimiento correcto?

Spacey
fuente

Respuestas:

18

Su comprensión es correcta.

Los algoritmos de Goertzel dan casi exactamente el mismo resultado que 1 bin de un DFT o FFT de la misma longitud o número de muestras (y donde los factores de twid FFT son generados por una recursión trigonométrica), cuando se usan para frecuencias que son exactamente enteras periódicas en el Longitud de Goertzel. Pero muchas formas del algoritmo de Goertzel proporcionan solo la magnitud, no el resultado complejo o la fase del resultado del contenedor FFT 1. Además, computacionalmente, un Goertzel genérico puede ser numéricamente ligeramente menos estable que un FFT genérico. Para frecuencias de apertura periódicas no enteras, el resultado es equivalente a una interpolación sinc entre contenedores de un DFT o FFT de la misma longitud (que puede ser ligeramente más precisa de una interpolación que la interpolación parabólica más típica de los resultados de FFT )

Se podría decir que la interpolación aumenta la resolución en un sentido gráfico (más puntos de trazado), o hace que sea más fácil detectar visualmente los máximos, pero no en el sentido teórico de la información, ni para separar mejor 2 líneas espectrales espaciadas como 2 picos separados.

hotpaw2
fuente
3
Segundo párrafo: Muy bien dicho hotpaw2. Esto es lo que creo que confunde a muchas personas. Sí, parece que el Goertzel Algo es una forma rápida de calcular la FFT a través de una subbanda seleccionada, con una interpolación de dominio F incorporada también, si mantiene todo igual como si fuera normal FFT.
Spacey
1

Yo no era capaz de acceder al artículo que se está refiriendo a, pero creo que es posible que éste bastante interesante. Los autores presentaron su versión del algoritmo de Goertzel que se puede utilizar para encontrar amplitudes y fases en frecuencias que no son múltiplos enteros de la frecuencia fundamental en la señal dada. Eso significa que su algoritmo mejora la resolución de frecuencia. El artículo contiene la prueba matemática y el código del algoritmo.

mac13k
fuente