估计特定频率的幅度

信息处理 频谱 频率 估计 DSP核心 振幅
2022-02-11 11:19:03

我对 DSP 比较陌生,并且在互联网上阅读了很多。我有一些问题。

我有一个函数形式的信号

f(x)=A0+A1cos(ω1x)+A2cos(ω2x)+...+Ancos(ωnx).
我有f(x)我知道最小和最大频率。f(x)可以有非常高的频率。

a) 我需要找到幅度Ap特定频率的ωpf(x). 一种方法是,我可以从f(x)以大于 Nyquist 速率进行采样并进行 FFT 并找到幅度。但如果f(x)具有非常高的频率,采样将花费大部分时间。如果我只对估计幅度感兴趣Ap,是否有另一种方法,一种更快的方法来做到这一点。在最好的情况下,我想估计Ap到其实际值的 0.5 以内。

b) 如果我愿意A0,直流分量,我可以计算的平均值f(x)但在高频f(x)这意味着高采样率。还有其他更快的方法吗?

c) FFT 取O(nlog(n))如果n是输入的大小并返回大小n不同的频率。如果我们只对一个特定频率感兴趣,我们应该能够更改源代码,以便只需要O(log(n)), 对?

谢谢回答!

2个回答

估计特定频率幅度的常用方法是使用Goertzel 算法。Rick Lyons 在这里 有一篇很好的文章。

尽管 Rick 的文章是关于单音检测的,但它也可以在存在多个音的情况下应用。

也许你看看Goertzels Algorithm