https://www.cnblogs.com/xh0102/p/5777092.html
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
2. 函數(shù)接口
fftw_plan fftw_plan_dft_1d(int n, fftw_complex *in, fftw_complex *out, int sign, unsigned flags);
n為數(shù)據(jù)個數(shù),可以為任意正整數(shù),但如果為一些小因子的乘積計算起來可以更有效,不過即使n為素數(shù)算法仍然能夠達到O(nlogn)的復雜度。FFTW對N=2a?3b?5c?7d?11e?13f的變換處理得最好,其中e+f=0/1,其它冪指數(shù)可以為任意值。
如果in和out指針相同為原位運算,否則為非原位運算。
sign可以為正變換FFTW_FORWARD(-1),也可以為逆變換FFTW_BACKWORD(+1),實際上就是變換公式中指數(shù)項的符號。需注意FFTW的逆變換沒有除以N,即數(shù)據(jù)正變換再反變換后是原始數(shù)據(jù)的N倍。
flags參數(shù)一般情況下為FFTW_MEASURE 或 FFTW_ESTIMATE。FFTW_MEASURE表示FFTW會先計算一些FFT并測量所用的時間,以便為大小為n的變換尋找最優(yōu)的計算方法。依據(jù) 機器配置和變換的大?。╪),這個過程耗費約數(shù)秒(時鐘clock精度)。FFTW_ESTIMATE則相反,它直接構造一個合理的但可能是次最優(yōu)的方 案??傮w來說,如果你的程序需要進行大量相同大小的FFT,并且初始化時間不重要,可以使用FFTW_MEASURE,否則應使用 FFTW_ESTIMATE。FFTW_MEASURE模式下in和out數(shù)組中的值會被覆蓋,所以該方式應該在用戶初始化輸入數(shù)據(jù)in之前完成。