我试图找到一个非常快速和有效的傅里叶变换(FFT).有谁知道任何好的.我需要在iPhone上运行它,所以它不能是密集的.相反,也许你知道一个像小波一样,我需要频率分辨率,但只需要一个窄带(声音音频范围高达10khz最大......甚至10Khz可能太高).我还想到截断这个FFT以保持频率分辨率,同时消除不需要的频带.这是一个iPhone
...我已经看过Aurio touch中的FFT但看起来这是一个int FFT,但是我的应用程序使用了浮点数......它是否会提高性能以尝试使程序适应int FFT或不(我真的不喜欢这样做...加上aurio touch使用基数2 FFT,这不是很好).
ale*_*xbw 12
iPhone OS4 SDK将包含Accelerate框架,它将(最终)为我们提供Apple编写的FFT功能
Accelerate提供数百种针对iPhone和iPod touch优化的数学函数,包括信号处理程序,快速傅里叶变换,基本矢量和矩阵运算,以及用于分解矩阵和求解线性方程组的行业标准函数.
我在Objective-C中包装了Ooura的FFT库.Ooura的代码具有与FFTW相当的性能,但完全免费.
此代码使用双精度,并具有多种内置窗口类型(矩形,Blackwell,三角形,汉明).我使用Ooura的FFT代码来实现Welch的方法,这种方法随着时间的推移会产生更平滑的光谱.
请访问:http: //github.com/alexbw/iPhoneFFT查看
FFTW 的性能为任意长度 FFT 设定了标准 - 特别是对于 2 维和更大维度的非 2 次幂长度。FFTW 的商业许可价格为 5000 美元,这可能符合也可能不符合您的预算。
然而,听起来您遇到了 1D 信号处理问题,在这种情况下您还有更多选择 - 如果您可以进一步将数据填充或采样到 2 的幂长度,那么许多库将提供合理的性能。查看FFTW 用于比较的 FFT 算法列表- 许多是免费的,有些可能就足够了。我可能会从良好的旧数值配方开始,它提供了简单的 2 次方、免费的 1D FFT 实现和一些打字 - 并且内存效率很高。
顺便说一句 - 对于语音,您可能只需要转到 3-4Khz....10Khz 对于人声来说已经很远了。
| 归档时间: |
|
| 查看次数: |
11876 次 |
| 最近记录: |