从哪里开始傅立叶分析

时间:2012-05-02 00:25:01

标签: vb.net signal-processing fft

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

Spectrum Analyser

我现在所拥有的是:

Input from microphone

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

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

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

我在VB中进行编码,因此任何.Net库/示例(最好是在NuGet上)都是最常用的。我认为实施方式差异很大,所以我按摩数据越少越好。

1 个答案:

答案 0 :(得分:2)

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