频率分割波形

3
我想生成同时显示低、中和高频的波形图:类似于iPad上的Traktorhttp://www.dawsons.co.uk/blog/wp-content/uploads/2013/02/TRAKTOR_DJ_main-2_L.jpg
我已经使用fft获取了音频的频率数据,然后根据频率范围(低:0-300Hz,中:300-2000Hz,高:2000Hz +)将箱中的振幅相加,但绘制出来的波形图与同一声音的RMS图不相似。
请问有人能指点一下Traktor波形图是如何生成的吗? 非常感谢!

1
@learnvst是正确的,过滤是更好的方法。但是,如果您将来需要FFT,我强烈推荐Mark Borgerding的Kiss FFT(http://sourceforge.net/projects/kissfft/files/kissfft/)。它比FFTW更易于使用,并且足够快以满足任何可能的音频应用程序。 - mtrw
你确定Traktor显示的是这个吗?在我看来,它显示的是峰值、均方根和另外一些东西(绝对平均值)。 - Bjorn Roche
我非常确定那个粗低线是低音,而最外面的看起来像是RMS。中间的那条线我猜应该是高于低音的频率,但这只是我的猜测,因为我从未使用过iPad版本 :) - Val
三频带rms假设是正确的(非常明显)--再加上一些特殊成分和微调,以获得更好的外观,但这是保密的 ;) - André Bergner
啊,安德烈,非常有趣!也许只有当变化在阈值以下时才会平滑处理? - Val
1个回答

6
我不建议使用FFT数据来完成这样一个简单的任务。相反,考虑将输入信号通过三个简单的时域IIR滤波器进行处理,将信息分成低、中、高三个信号。这样可以得到三个易于绘制的时域信号。这种方法的优点是您不必担心逆FFT过程,从而可以获得每个频带的时域波形。同时,在时域中处理一切应该也会更少占用处理器资源。
在我GitHub仓库的一个文件(大约在第120行)链接里有一个2阶Butterworth带通滤波器的简单代码,你可以作为起点。

谢谢Nick,我会尝试实现这个 :) - Val
1
有关FFT不适用的更多信息,请参见:http://blog.bjornroche.com/2012/08/why-eq-is-done-in-time-domain.html,以及基本音频EQ的教程:http://blog.bjornroche.com/2012/08/basic-audio-eqs.html。 - Bjorn Roche
很棒的博客文章Bjorn,希望我早点发现它! - Val

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接