编程语言
首页 > 编程语言> > java – 是否有可能为2 ^ 14个音频帧实现65微秒FFT?

java – 是否有可能为2 ^ 14个音频帧实现65微秒FFT?

作者:互联网

我正在开发一个Java项目,我需要在65微秒内实现FFT转换. FFT的输入是2 ^ 14个实数.我已经尝试过evey Java FFT库,我可以在互联网上找到它,比如JTransforms和Apache Common Math,但它们都不能达到这个速度.最快的库是JTransforms,但它仍然需要大约1毫秒.那么有人能告诉我是否有可能在JAVA中达到这样的速度(65微秒)?据我所知,在这种情况下,C库FFTW可以足够快,但我不能在这里使用JNI,我需要一个纯Java实现,因为它将在网站中部署为Applet.

附:我的工作是用FFT将2 ^ 14个音频帧转换到频域,然后对它们应用声学回声消除算法(MDF). 2 ^ 14由正常房间中的标准回声延迟决定.

谢谢!!!

解决方法:

执行时间高度依赖于主机配置,并且小程序在客户端计算机上执行.这意味着不同的客户可能会观察到不同的表现.并且在中等配置下,在65微秒内获得2 ^ 14个数字的FFT不太可能.

在这里,您可以看到these benchmarks最好的库,如FFTW.即使使用FFTW,在具有2.80 Ghz,具有4Gb内存的Intel Core i7 CPU的计算机上计算2 ^ 13点FFT也需要50多微秒.

标签:java,fft,performance,aec
来源: https://codeday.me/bug/20190630/1331927.html