安卓上的傅里叶变换

3

有没有使用设备的DSP实现傅里叶变换的Android API?或者有没有允许使用设备的DSP的API?

谢谢。


请查看此帖子:https://dev59.com/dFPTa4cB1Zd3GeqPoPyL希望能对您有所帮助! - Dimitris Makris
你好,Dimitris感谢您的回复,但问题不在FFT实现上,而是在它的实现方式。我不能消耗CPU时间进行FFT计算。我不知道JTransform的消耗情况,但也许我可以使用它。谢谢。 - Chris
4个回答

3

没有公共API可以执行硬件加速FFT。

您可以通过针对armeabi-v7a ABI来优化本地代码,以便使用FPU。这对于浮点FFT非常有用。

请参阅Android NDK的docs/目录中的。


2
抱歉有些晚了,但如果您想在Android上计算实数或复数的傅里叶变换,最好使用jTransfrom或libgdx.FFT。 libgdx使用KissFFT后端,不太确定jTransform使用什么。请查看此示例以了解如何实现libgdx:http://www.digiphd.com/android-java-simple-fft-libgdx/希望对您有所帮助。

1

首先,并非所有设备都有 DSP。事实上,大多数只有 CPU 和 GPU。

截至今天,您可能不能在没有自定义 ROM/firmware 的情况下实现您想要的操作。好消息是他们正在开发中。请查看 Renderscript ,它从 Honeycomb 开始提供。目前仅在 CPU 上运行(尽管它可以使用多个核心),但计划在未来的版本中也允许在 GPU(以及可能的 DSP)上执行,并且您无需进行任何或很少的代码更改。请参见 this post 了解更多信息。


0

你好Konstantin,谢谢你快速的回复,但我需要傅里叶变换的数据,因此我需要计算它。我可以在本地代码中实现FFT,但会消耗大量CPU。如果我可以访问设备的DSP,我将释放CPU的FFT计算。 - Chris
我怀疑是否有暴露的API可以做到这一点。 - Konstantin Pribluda

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