在java中过滤PCM数据

信息处理 过滤器 fft 声音的 低通滤波器
2022-02-08 10:49:22

我正在为android平台开发基于音频的应用程序,我正在尝试使用低通滤波器来达到固定或可变的最大频率“取决于开发成本”。首先,我一直在玩 FFT,我相信我可以“通过将高于所需频率的频率静音,然后进行逆 FFT”从中获得结果。但处理时间似乎很长,所以我再次搜索,发现可以实现实时 LPF 并将其应用于 PCM 数据“IIR,Butterworth”。关于最佳方法的任何建议,请记住低处理速度“CPU”和小可用内存“dalvik 虚拟机大约 20MB”

1个回答

通过 FFT 输入音频均衡器?!?请不要那样做。CPU 使用率将是您最不必担心的问题。http://blog.bjornroche.com/2012/08/why-eq-is-done-in-time-domain.html最近linkedin dsp群里也有相关讨论

这篇文章介绍了如何在时域中进行钟形滤波器,但它与创建低通非常相似(实际上低通更容易),并且比尝试进行 FFT 容易得多(这不会做什么无论如何你想要):http ://blog.bjornroche.com/2012/08/basic-audio-eqs.html

您完全不必担心内存(它只需要 2 个内存插槽)并且 CPU 使用率非常低。加上延迟是最小的。最终的实现就像 10 行代码。

原始“食谱”参考在这里:https ://www.w3.org/TR/audio-eq-cookbook/

现在,就是说,这个过滤器可能不适合你的目的,但你还没有真正弄清楚那是什么,所以请随时澄清。