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