1

我想将一个算法从 Android 移植到用 C 编写的 iOS。对于 Android,我使用 fftw3 库。它能够对任何大小的输入数据运行算法。例如我在调试中看到的大小是 14996。而且它非常有效。当我从这里阅读文档时:https ://developer.apple.com/documentation/accelerate/1449739-vdsp_dft_zrop_createsetup?language= objc 我发现输入长度有一些特殊要求。有没有办法避免这种情况或修改输入数据以满足要求?

4

1 回答 1

2

抱歉,不,Accelerate DFT 例程仅支持记录的大小。仅支持 2 乘以 1、3、5 或 15 的幂。

(这些包括以前有用的大小。如果我们对它们有足够的请求,将来可能会支持其他大小,但 14996 似乎不寻常。通常只有小的素因数的数字是首选的,但 14996 的因数为 151 . 是什么使它成为有趣的 DFT 大小?)

至于修改您的输入数据,一些应用程序会用零填充其数据以使其成为支持的长度。但随后可能需要进行调整,具体取决于应用程序。

当然,您也可以在 iOS 上使用 FFTW。

于 2017-12-09T04:04:00.840 回答