8點FFT的C語言實現

2021-06-08 10:56:39 字數 1925 閱讀 8531

說明:(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 ...