我正在试图想出一种有效的方法来描述两个间隔约900 1MHz的窄带音调(一个在100 1MHz左右,另一个在转换为基带后在1 1MHz左右)。随着时间的推移,它们的频率变化不大,但可能会有我们想要监控的振幅变化。
每个音调大约100 Hz宽,我们需要在很长一段时间内描述这两种野兽的特征,分辨率大约为0.1 Hz。样本以超过2M样本/秒(待定)的速度进入,以充分获得最高音调。
我正在努力避免(如果可能的话)每秒对数据执行一次>2MSample FFT来提取频域数据。有没有一种有效的方法?类似于在感兴趣的波段周围执行两个(小得多)的FFT?我看过Goertzel和chirp z方法,但我不确定它是否有助于节省处理时间。
发布于 2015-08-25 15:54:59
类似于在感兴趣的波段周围执行两个(小得多)的FFT
有,它被称为Goertzel,是一种用于单箱的FFT,你已经看过了。它将为您节省CPU时间。
无论如何,没有理由做2M点的FFT;首先,你只想要采样率的1/20的分辨率,因此,20点的FFT完全可以,并且在这些低速率下对你的CPU来说应该是相当可行的;因为你似乎不关心你的音调的相位,FFT->complex_ to _mag。
然而,有一件事你应该经常做:查看你感兴趣的信号,然后抽取到与之完全匹配的速率。由于GNU无线电的滤波器被巧妙地实现,滤波器本身将只以抽取速率运行,您可以将节省的CPU周期花在更好的滤波器上。
因为从2 2MHz到100 an的直接抽取(抽取: 20000)会有一个丑陋的滤波器长度,你应该这样做多额定:
我会先试着抽取100,然后在第二步中抽取100,留下200 by的可观察频谱。转换fir滤波器块将允许您使用一个简单的低通滤波器(使用“低通滤波器抽头”块来定义一个包含此类抽头的变量)作为频带选择器。
https://stackoverflow.com/questions/32195322
复制相似问题