使用Goertzel算法实际上能提供更好的频率分辨率吗?


19

我正在阅读本文,而作者对于Goertzel算法对“频率分辨率”的广泛使用使我有些困惑。

基本问题:使用Goertzel算法实际上是否可以在特定的目标频段上为您提供更高的频率分辨率,还是仅在指定的目标频段上仅有效地计算FFT,但以采样频率除以数字指定的相同频率分辨率即可样本?

例如,假设为100 KHz(固定),数据采样数为10000(也固定)。如果我计算正常的FFT,其中FFT长度也是,那么我的频率分辨率就可以预期为,它将等于10 Hz。这意味着我的垃圾箱间隔了10 Hz,从-50,000 Hz到50,000 Hz。FsññFsñ

现在让我们说我想使用Geortzel算法仅查看例如20,000-21,000 Hz范围内的频率。如果我用同样的的样本数量,并使用相同的我的FFT的大小,那么什么是我的频率分辨率?还是10 Hz?还是 Hz?ññ21000-2000010000=0.1

我有一种感觉,我并没有像通过从0到50,000那样使用相同的 in来评估从21,000到20,000的频率,而是在主瓣上简单地插值,实际上并没有真正提高我的频率分辨率。ñ

这是正确的理解吗?

Answers:


18

您的理解是正确的。

当Goertzel算法用于频率为正整数周期的频率时,其结果与DFT或FFT的1 bin具有相同长度或相同数量的样本几乎完全相同(并且FFT旋转因子由trig递归产生)。鹅颈长度。但是许多形式的Goertzel算法仅提供幅度,而不提供FFT 1 bin结果的复数结果或相位。而且,在计算上,通用的Goertzel在数值上可能比通用FFT的稳定性稍差。对于非整数周期孔径频率,结果等于相同长度的DFT或FFT的仓之间的正弦插值(与更典型的FFT抛物线插值相比,插值的精度可能更高)。

可以说插值可以在图形意义上增加分辨率(更多的绘图点),或者可以更容易地在视觉上发现最大值,但在信息论的意义上则不然,也不能更好地将2条近距离光谱线分隔为2个单独的峰。


3
第二段:很好说hotpaw2。我认为这使很多人感到困惑。是的,所以看起来Goertzel Algo是一种在选定子带上计算FFT的快速方法,并且如果您将所有内容都保持与正常情况一样,则还内置F域插值FFT。
Spacey 2012年

1

我无法访问您所指的文章,但我认为您可能会发现很有趣。作者介绍了他们的Goertzel算法版本,该算法可用于查找给定信号中基频非整数倍的频率处的幅度和相位。这意味着他们的算法确实提高了频率分辨率。本文包含数学证明和算法代码。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.