如何实时查看输入信号频率?
Posted
技术标签:
【中文标题】如何实时查看输入信号频率?【英文标题】:How to see input signal frequency in real time? 【发布时间】:2017-12-14 21:20:04 【问题描述】:我想(实时)查看输入信号(来自笔记本电脑麦克风)的频率(一次谐波)。我搜索了如何计算 FFT,我需要实时查看,有没有简单的方法可以做到这一点?
【问题讨论】:
如果基本组件的幅度比其他任何东西都高得多并且相对稳定,那么您可能可以使用软件Phase Locked Loop。 如果您只想“看到”丰富信号的一次谐波,您还需要一个音高检测器,它不同于 FFT 幅度峰值估计器。 “简单”的音高检测器具有非常高的错误率。 另外,您的视频刷新率可能是 60 Hz,这比音频的实时刷新率要慢得多, 【参考方案1】:FFT 是一种完全合法的频率测量方法。您通常不需要实时运行,因为您只需要以您想要更新频率读数的速率执行 FFT。即便如此,现代计算机可以比实时更好地执行 FFT(IOW,您将受到音频样本的 I/O 约束)。 FFT 频率测量的一个问题是 FFT 箱在频率上是等间距的。这意味着您将在高频处获得更高的频率分辨率,而在低频处获得更低的频率分辨率。要测量低频,您需要非常长的 FFT,而要测量高频,您可以使用非常短的 FFT。
另一种选择是使用频率计数器(计数零交叉),但如果信号嘈杂或存在其他信号,它就会有缺点。
【讨论】:
【参考方案2】:按照 *** 答案之一的建议使用滑动 DFT:Doing FFT in realtime。那里也有源代码。但是,它没有简单简单的实现,除非你遇到一些已经写好的代码。
【讨论】:
以上是关于如何实时查看输入信号频率?的主要内容,如果未能解决你的问题,请参考以下文章