資源簡介
快速傅里葉變換 (fast Fourier transform), 即利用計算機計算離散傅里葉變換(DFT)的高效、快速計算方法的統稱,簡稱FFT。本程序以C語言為平臺,實現了按時間抽取的基-2FFT算法(蝶形算法)。具體見https://blog.csdn.net/SXGY_07/article/details/87902235

代碼片段和文件信息
#include?
#include?
#include?“myfft.h“
#define?Ns?128
#define?Fs?50
/*?run?this?program?using?the?console?pauser?or?add?your?own?getch?system(“pause“)?or?input?loop?*/
int?main(int?argc?char?*argv[])?{
int?i;
float?xr[Ns]xi[Ns]y1r[Ns]y1i[Ns]y2r[Ns]y2i[Ns];//輸入信號和輸出信號的實部虛部
float?y1[Ns]y2[Ns];//傅里葉變換結果的幅度?
for(i=0;i xr[i]=mysin(2*3.1415926*i/Fs);
xi[i]=0;
}
dft(xry1ry1iNs1);
fft(xrxiy2ry2iNs1);
for(i=0;i y1[i]=mysqrt(y1r[i]*y1r[i]+y1i[i]*y1i[i]);
y2[i]=mysqrt(y2r[i]*y2r[i]+y2i[i]*y2i[i]);
}
printf(“傅里葉變換結果\n“);?
for(i=0;i printf(“X[%-2d]?=?(%-?6.3f+j%-?6.3f)\t(%-?6.3f+j%-?6.3f)\n“iy1r[i]y1i[i]y2r[i]y2i[i]);
}
printf(“幅度\n“);
for(i=0;i float?f=1.0*i*Fs/Ns;
printf(“F?=?%-10.3fA?=?X[%-2d]?=?%-10.3f%-10.3f\n“fiy1[i]y2[i]);
}
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????920??2019-02-24?11:59??main.c
?????文件???????3053??2019-02-24?11:43??myfft.c
?????文件???????2595??2019-02-23?21:36??data.h
?????文件????????409??2019-02-24?11:43??myfft.h
-----------?---------??----------?-----??----
?????????????????6977????????????????????4
- 上一篇:電力系統潮流計算牛拉法C++程序代碼
- 下一篇:C++ASCII文件練習的幾個文件
評論
共有 條評論