以下是 Ooura 数字软件的主要来源链接:
http://www.kurims.kyoto-u.ac.jp/~ooura/
这些年来我一直在使用 Ooura 的许多 FFT,我至少应该给他发送一个“domo”,并且我在几个正在开发的 iPad 和 iPhone 应用程序中使用了他真正的 radix-4。我确实翻译了代码以在 ARM 上以 32 位单精度运行。查看使用 XCode 3.2.2 生成的程序集,它可以很好地使用 NEON SIMD 指令进行矢量化。实际上我有点失望,因为我愿意自己对代码进行一些矢量化以获得更高的性能。显然,如果不首先将 FFT 转换为单精度,就无法进行这些优化。
虽然我使用 Objective-C 多年,但我积极使用它进行开发,甚至使用它教授面向对象编程课程,但我没有准备这样的包装器(尽管我在 1992 年用不同的 FFT 做过同样的事情)出于性能原因。
我至少有 10 年没有针对 Ooura 的 FFT 测试过 FFTW,但是当我这样做时,Ooura 的库对于 1024 点的真实 FFT 来说更快。然而,FFTW 现在很可能会做得更好——但是为 ARM 授权和交叉编译它很不方便,而且我一直发现 FFTW 对于我的 DSP 需求来说过于庞大和突兀。Apple 的 VecLib 非常好,但不幸的是他们还没有将它移植到 iPhoneOS。我在 BugReporter 中打开了一个功能请求,您也可以: https ://bugreport.apple.com/