O uso do algoritmo Goertzel realmente oferece uma melhor resolução de frequência?


19

Estou lendo este artigo e estou ficando um pouco confuso com o uso liberal do autor de "resolução de frequência" em relação ao algoritmo de Goertzel.

Pergunta básica: O uso do algoritmo Goertzel realmente oferece mais resolução de frequência em uma faixa de interesse específica ou simplesmente calcula a FFT com eficiência apenas na banda de interesse especificada, mas na mesma resolução de frequência especificada pela frequência de amostragem dividida pelo número de amostras?

Por exemplo, digamos que o seja 100 KHz (fixo) e o número de amostras de dados seja 10000. (Também fixo). Se eu calcular uma FFT normal, em que a duração da FFT também é , minha resolução de frequência é conforme o esperado, e será igual a 10 Hz. Isso significa que minhas caixas estão separadas por 10 Hz, de -50.000 Hz a 50.000 Hz. N N F sFsNNFsN

Agora, digamos que eu queira usar o algoritmo Geortzel para observar apenas as frequências no intervalo de 20.000 a 21.000 Hz. Se eu usar o mesmo para o número de amostras e usar o mesmo para o tamanho da minha FFT, qual é a minha resolução de frequência? Ainda 10 Hz? Ou é Hz?N 21 , 000 - 20 , 000NN21,00020,00010000=0.1

Sinto que não estou realmente aumentando minha resolução de frequência, mas apenas pontos de interpolação no lobo principal, usando o mesmo para avaliar as frequências de 21.000 a 20.000, como fiz de 0 a 50.000.N

Este é um entendimento correto?

Respostas:


18

Sua compreensão está correta.

Os algoritmos de Goertzel fornecem quase exatamente o mesmo resultado que 1 bin de uma DFT ou FFT do mesmo tamanho ou número de amostras (e onde os fatores de tweak da FFT são gerados por uma recursão trigonométrica), quando usados ​​para frequências que são exatamente inteiras periódicas no Comprimento de Goertzel. Porém, muitas formas do algoritmo de Goertzel fornecem apenas a magnitude, não o resultado complexo ou a fase do resultado do bin FFT 1. Além disso, computacionalmente, um Goertzel genérico pode ser numericamente menos estável do que um FFT genérico. Para frequências de abertura periódica não inteira, o resultado é equivalente a uma interpolação sinc entre compartimentos de uma DFT ou FFT do mesmo comprimento (que pode ser uma interpolação ligeiramente mais precisa do que a interpolação parabólica mais típica dos resultados da FFT )

Pode-se dizer que a interpolação aumenta a resolução em um sentido gráfico (mais pontos de plotagem) ou facilita a localização visual dos máximos, mas não no sentido teórico da informação, nem para melhor separar 2 linhas espectrais espaçadas como 2 picos separados.


3
Segundo parágrafo: Muito bem dito hotpaw2. Acho que é isso que confunde muitas pessoas. Sim, parece que o Goertzel Algo é uma maneira rápida de calcular a FFT em uma sub-banda selecionada, com uma interpolação de domínio F incorporada também, se você mantiver tudo igual como se estivesse normal. FFT.
Spacey

1

Não consegui acessar o artigo a que você estava se referindo, mas acho que você pode achar este artigo bastante interessante. Os autores apresentaram sua versão do algoritmo de Goertzel, que pode ser usada para encontrar amplitudes e fases em frequências que são múltiplos não inteiros da frequência fundamental no sinal fornecido. Isso significa que o algoritmo deles melhora a resolução da frequência. O artigo contém a prova matemática e o código do algoritmo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.