資源簡介
之前下載了某位大神的基2fft時間抽取的算法,我將其改了一下變成了一個測頻的小實驗,我覺得自己動手寫fft代碼能加深理解,現在很多地方要用到fft,不過頻域抽取是主要的,所以我基于時間抽取法改了一下,改成了頻域抽取,結果應該是大致一樣的。但由于是自己改的,(大家也知道時間抽取和頻域抽取的蝶形運算是不一樣的)所以我自己改的代碼有可能會有小bug,但是運行試驗是完全沒有問題的。能更優化的畫希望大家提意見,然后哪位大神指導一下基4和分裂基的蝶形程序怎么寫,想試試,在這里感激不盡!
代碼片段和文件信息
//base2fft-DIF??編譯器?GCC?32??debug?
#include?
#include?
#include?
#include?
#define?N?2048???//用?fft點數????
#define?M?256????//generate序列點數?
#define?ts?0.0005???//周期?
#define?Fs?(1/ts)???//頻率?
/*定義復數類型*/
typedef?struct
{
??double?real;
??double?img;
}complex;
typedef?struct?
{
??double?value;??????//值?
??double?position;???//所在位置?
}Spectrum_analysis;???//頻譜分析?
?
?
Spectrum_analysis?y[N];
complex?x[N]*W;
double?fre[N];
double?xn[M];
double?frequency=0.0;
???/*輸入序列變換核*/
int?size_x=N;??????/*輸入序列的大小,在本程序中僅限2的次冪*/
float?PI=3.1415;?????????/*圓周率*/
void?fft();?????/*快速傅里葉變換*/
void?initW();???/*初始化變換核*/
void?change();?/*變址*/
void?add(complex?complex?complex?*);?/*復數加法*/
void?mul(complex?complex?complex?*);?/*復數乘法*/
vo
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-05-08?20:30??基2fft頻域抽取法\
?????文件????????6105??2019-05-08?20:28??基2fft頻域抽取法\ba
- 上一篇:AMD顯卡更新工具
- 下一篇:相機成像系統數學模型仿真
評論
共有 條評論