如何实时查看输入信号频率?

时间:2017-12-14 21:20:04

标签: java audio signal-processing fft

我希望(实时)看到输入信号的频率(一次谐波)(来自笔记本电脑麦克风)。我搜索了如何计算FFT,我需要实时看到它,有没有简单的方法来做到这一点?

2 个答案:

答案 0 :(得分:2)

FFT是衡量频率的完美合法方式。您通常不需要实时运行,因为您只需要以您想要更新频率读数的速率执行FFT。即便如此,现代计算机可以比实时更好地进行FFT(IOW,您将受到音频样本的I / O限制)。 FFT频率测量的一个问题是FFT频段的频率间隔相等。这意味着您在高频时具有更高的频率分辨率,在低频时具有更低的频率分辨率。要测量低频,您需要一个非常长的FFT并测量高频,您可以使用非常短的频率。

另一个选择是使用频率计数器(计算过零点),但如果信号有噪音或存在其他信号,则存在缺陷。

答案 1 :(得分:0)

根据其中一个stackoverflow答案中的建议使用滑动DFT:Doing FFT in realtime。那里也有一个源代码。但是,除非遇到一些已编写的代码,否则没有简单易行的实现。

相关问题