說明:(1)處理的物件是複數,使用的是純c語言
(2)程式針對的是n=8的fft
(3)因為是按時間抽選,所以輸入為倒位序,輸出為正常序,因此輸入資料要進行倒位序
請注意後面的更正!!!
【.c檔案】
#include "fft.h"
complex wn0 = ;
complex wn1 = ;
complex wn2 = ;
complex wn3 = ;
complex complexmul(complex c1, complex c2)
complex complexadd(complex c1, complex c2)
complex reversecomplex(complex c)
/* * 8點基-2時間fft演算法
*/void fft(complex *x, complex *r)
/* * 倒位序變換
*/void bitreverse(complex *x, complex *r, uint8 n, uint8 l)
complex; //複數 fft中的乙個節點單元
//宣告
致歉及更正(2013.08.06)上面演算法中的bitreverse呼叫有一些問題,上面的bitreverse函式中的引數x與r不能傳入相同的引數,從而上面的結果是有誤的。
更正如下:
我將bitreverse作了修改,使用了乙個區域性的temp變數,下面的**能對形參x和r傳入相同的引數,其它不用修改,
更多詳細進一步的有關fft的資訊參考
在此對誤導的過的朋友表示歉意!
8點FFT的C語言實現
說明 1 處理的物件是複數,使用的是純c語言 2 程式針對的是n 8的fft 3 因為是按時間抽選,所以輸入為倒位序,輸出為正常序,因此輸入資料要進行倒位序 請注意後面的更正!c檔案 include fft.h complex wn0 complex wn1 complex wn2 complex ...
C語言實現FFT
參考 fft中的位反轉演算法 include include include define n 1024 int size 0 定義資料長度 double pi 4.0 atan 1 定義 因為tan 4 1 所以arctan 1 4 增加 的精度 typedef struct 定義乙個結構體表示複...
C語言實現FFT演算法
c語言實現fft演算法 fft1d.c和fft1d.h見 ifndef fft1d h define fft1d h include math.h define pi 3.1415926535897932384626433832795028841971 typedef struct complex ...