1

我正在从麦克风读取数据并想对其进行一些分析。我正在尝试生成一个类似这样的频谱分析仪:

频谱分析仪

我目前拥有的是这样的:

从麦克风输入

我的理解是我需要执行傅立叶分析 - 快速傅立叶变换?- 提取分量频率及其幅度。

有人可以确认我的理解是正确的以及我需要应用什么类型的傅立叶变换吗?

目前,我正在从麦克风(使用NAudio)获取包含 4k 样本的帧。我得到的缓冲区是 16 位/样本(有符号短)。作为参考,上图显示了大约半帧

我在 VB 中编码,因此任何 .Net 库/示例(最好在 NuGet 上)都将是最有用的。我相信实现会有很大差异,所以我对数据的处理越少越好。

4

1 回答 1

2

上图是光谱图,其中每条垂直时间线根据输入波形的时间切片(可能重叠)的 FFT(可能加窗)结果的大小进行着色。要绘制的垂直点数(频率分辨率)与 FFT 的长度有关。几乎任何 FFT 都可以。如果您使用最常见的复数到复数 FFT,只需将每个复数输入样本的虚部设置为零,将输入波形样本的时间片复制到“实部”部分 FFT,然后取幅值或记录每个复杂结果箱的大小,然后根据您的喜好将这些值映射到颜色。

于 2012-05-02T01:36:31.877 回答