如何从PCM样本中解析频率

时间:2014-05-08 03:46:48

标签: audio arduino signal-processing fft pcm

我想建立一个使用LED灯条的音频可视化显示器,以便在派对上使用。构建显示和编程渲染引擎非常简单,但除了渲染PCM样本外,我没有任何信号处理经验。

我想要实现的主要功能是由可听频率驱动的动画。为了让事情变得非常简单并掌握它,我想首先根据输入信号的可听频率简单地渲染颜色(例如,最高可听频率将呈现为白色)。

据我所知,将输入样本读取为PCM可以得到气压(强度)相对于时间的幅度,使用傅里叶变换输出信号作为相对于频率的强度。但是从那里我迷失了如何解决实际频率。

数值频率是否需要作为傅里叶变换的逆变换来解析(例如,强度是参数,频率是结果)?

据我所知,有不同类型的傅立叶变换适用于不同的目的。哪个对这样的应用有用?

2 个答案:

答案 0 :(得分:1)

您可以使用DFT或FFT将样本从时域变换到频域。它输出频率和强度。实际上你得到的一组频率不仅仅是一组。基于LED灯条可以点亮。见DFT spectrum tracer

答案 1 :(得分:0)

“频率”,如单个数字音频频谱值,几乎所有声音都不存在。这就是为什么FFT可以为您提供全音频频谱的所有N / 2个频率区间,高达采样速率的一半,其分辨率由FFT的长度决定。