【发布时间】:2011-12-11 09:32:24
【问题描述】:
我正在对音频数据使用 FFT 来输出分析器,就像您在 Winamp 或 Windows Media Player 中看到的那样。但是输出看起来并不那么好。我正在使用对数刻度进行绘图,并将 FFT 的线性结果平均到相应的对数 bin 中。例如,我使用的垃圾箱如下:
16k,8k,4k,2k,1k,500,250,125,62,31,15 [hz]
然后我绘制幅度 (dB) 与频率 [hz] 的关系。图表肯定会对音乐产生“反应”,我可以看到鼓样本或高音的响应。但是该图在接近较低频率时非常“饱和”,并且总体看起来不像您在应用程序中看到的那样,它们往往分布更均匀。我觉得显示视觉输出的应用倾向于对数据做不同的事情以使其看起来更好。
我可以对数据执行哪些操作以使其看起来更像典型的音乐播放器应用?
一些有用的信息: 我下采样到单通道 32kHz,并指定 35ms 的时间窗口。这意味着 FFT 获得约 1100 点。我改变这些值进行实验(即尝试 16kHz,并增加/减少间隔长度)但我得到了类似的结果。
【问题讨论】:
-
我认为你在正确的轨道上(双关语?)。最高频率将是谐波,因此您会期望它们的幅度较低。确保您显示的是 db(日志)而不是 FFT(线性)的输出。
-
您个人 FFT 的时间窗口是什么样的?
-
@Mark R:我正在显示 dB。 @ Chris A。我正在使用一个为我包装 FFT 的工具,只是给我填充了幅度和相位的线性箱,所以我不知道我是否能回答这个问题。不过我已经更新了帖子中的信息。
标签: c++ audio fft frequency equalizer