如何从 PCM 样本中解析频率

Joe*_*son 5 audio signal-processing fft arduino pcm

我想使用用于聚会的 LED 灯条构建一个音频可视化显示器。构建显示和对渲染引擎进行编程相当简单,但除了渲染 PCM 样本外,我没有任何信号处理经验。

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

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

是否需要将数字频率解析为傅立叶变换的逆变换(例如,强度是参数,频率是结果)?

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

rmi*_*rmi 1

您可以使用 DFT 或 FFT 将样本从时域变换到频域。它输出频率及其强度。实际上你得到的是一组频率而不仅仅是一个。以此为基础,LED灯带可以被点亮。请参阅DFT 频谱示踪剂

  • 感谢您的回答。是的,我意识到 FFT 的结果函数具有频域和强度范围。我感到困惑的是,这对于解析我想要将颜色关联到的频率意味着什么。例如,如果对音频数据的子集(可能是 1 毫秒)进行 FFT,那么如何从该 FFT 中实现频率?我的意思是,考虑到 FFT,该时间段内的可听频率是如何实现的?我的假设是,我可能必须取该时间片的所有频率的平均值。 (2认同)