首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >改进音乐频率分析器的参数

改进音乐频率分析器的参数
EN

Stack Overflow用户
提问于 2011-10-20 08:10:30
回答 3查看 809关注 0票数 2

我正在对音频数据使用FFT来输出分析器,就像你在Winamp或Windows Media Player中看到的那样。然而,输出结果看起来并不那么好。我使用对数标度进行绘图,并将FFT的线性结果平均到相应的对数框中。作为一个例子,我使用了像这样的bin:

16k,8k,4k,2k,1k,500,250,125,62,31,15 hz

然后我绘制幅度(dB)与频率hz的关系图。曲线图肯定会对音乐产生“反应”,我可以看到鼓样本或高音的反应。但这张图非常“饱和”,接近于较低的频率,总体上看起来并不像你在应用程序中看到的那样,这些应用程序往往更均匀地分布。我觉得显示视觉输出的应用程序倾向于对数据做不同的处理,以使其看起来更好。

我可以对数据做些什么,让它看起来更像典型的音乐播放器应用程序?

一些有用的信息:我下采样到单通道,32 and,并指定时间窗口为35ms。这意味着FFT得到了大约1100分。我改变这些值进行实验(例如,尝试16 get,增加/减少间隔长度),但我得到了类似的结果。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-20 12:27:11

使用1100点的FFT,你可能无法以很高的频率分辨率捕捉到低频。

想想看,30 Hz相当于33ms的周期,在32 33ms下,大约是1000个样本。所以在这段时间内你只能捕获大约1个周期。

因此,你需要一个更长的FFT窗口来捕捉那些具有清晰频率分辨率的低频。

您可能需要4000个或更多样本的时间窗口,才能开始在低频下获得明显更高的频率分辨率。这也是很好的,因为你仍然会得到大约8-10频谱更新每秒。

还有一种选择,如果你想要高频箱的快速更新,但在低频下有很好的频率分辨率,那就是更快地更新高频箱(例如使用你当前使用的窗口),但不太频繁地计算低频箱(以及使用较大的窗口来获得好的频率)。解决方案。)

票数 4
EN

Stack Overflow用户

发布于 2011-10-20 08:21:49

我认为很多这样的应用程序都有可变的FFT存储区。

你可以做的是从非常宽的均匀间隔的FFT bin开始,然后跟踪每个FFT bin中放置的元素的数量。如果有些柱子根本没有被大量使用(通常是较高的频率),那么将这些柱子加宽,使它们更大(因此具有更多的频率条目),并切碎低频率柱子。

我曾经在项目中工作过,我们只是花了很多时间来调整特定输入源的存储箱,但让软件实时调整要好得多。

票数 0
EN

Stack Overflow用户

发布于 2011-10-20 23:47:44

典型的可视化工具将使用恒定Q带通滤波器,而不是单个FFT。

您可以通过将FFT结果乘以频域中的一组恒定Q滤波器响应,然后求和来模拟一组恒定Q带通滤波器。对于低频,您应该使用比最低频率滤波器的有效脉冲响应更长的FFT。对于高频,您可以使用较短的FFT以获得更好的响应性。您可以通过重叠(重用)数据以任何所需的更新速率滑动任意长度的FFT,也可以考虑插值。您可能还希望对每个FFT进行预窗处理,以减少频带之间的“频谱泄漏”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7829713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档