c++ - 分频波形

标签 c++ audio signal-processing fftw waveform

我想生成同时显示低频、中频和高频的波形:ala traktor for ipad http://www.dawsons.co.uk/blog/wp-content/uploads/2013/02/TRAKTOR_DJ_main-2_L.jpg

我已经设法使用 fft 获取音频的频率数据,然后根据频率范围(低:0 - 300Hz,中:300 - 2000Hz,高:2000Hz +)总结 bin 中的振幅,但是当绘制这些不类似于相同声音的通常 RMS 图。

谁能告诉我 Traktor 波形是如何生成的? 非常感谢!

最佳答案

我不会使用 FFT 数据来完成如此简单的工作。相反,请考虑通过 3 个简单的时域 IIR 滤波器运行输入信号,这些滤波器将信息分成低、中和高信号。这会产生 3 个易于绘制的时域信号。这种方法的优点是您不必担心反向 FFT 过程会为您提供每个频段的时域波形。它还应该减少处理器密集度,因为您在时域中执行所有操作。

我的一个 github 存储库中的第 120 行 of this file 中包含一些用于二阶巴特沃斯带通滤波器的简单代码。欢迎您将其用作起点。

关于c++ - 分频波形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16278455/

相关文章:

c++ - 奇怪的执行行为

android - 更改当前正在播放的声音的频率 (Android)

android - 应用关闭时如何停止MediaPlayer的声音?

swift - 尝试播放声音时如何解决 "found nil while unwrapping optional value"错误?

math - 在频域中乘以图像

python - 为什么 scipy.io 中的 Scipy 的 wavefile.py 无法打开波形文件?

image - MATLAB 中的部分卷积

c++ - 如何强制调用 move 构造函数(C++)?

c++ - 使用 boost::shared_ptr 的集合中的不同模板类

c# - 抑制 HTTP_X_FORWARDED_FOR http header ,c# .net C++