資源簡介
壓縮包中的fft.c包含了所有子程序和main,可以直接運(yùn)行。另一個文件夾是基于TMS320C5509軟仿的工程。

代碼片段和文件信息
#include?
#include?
#include?
#define?N?8??????/*?N應(yīng)為2^m?*/
#define?pi?3.1415926
/*FFT快速傅里葉變換*/
/*十進(jìn)制轉(zhuǎn)化成m位二進(jìn)制數(shù)*/
int?dec2bin(int?k?int?*bin?int?m)
{
? int?i;
? if?(k?>?pow(2m)-1?||?k<0)
? {
??? ??printf(“輸入十進(jìn)制數(shù)超出m位二進(jìn)制數(shù)的表示范圍!\n“);
??? ??return?0;
??? ??}
?for?(i=0;?i ?{
?? ?if(k>=pow(2m-1-i))
?? ?{
???bin[i]?=?1;
???}
?????????else
?????????{
?? ?bin[i]?=?0;
?? ?}
?? ??????k?=?k?%?(int)pow(2m-1-i);
?}?
return?0;?
}?
/*m位二進(jìn)制數(shù)轉(zhuǎn)換成10進(jìn)制*/
int?bin2dec(int?*bin?int?m)
{
? int?idec=0;
? for?(i=0;?i ? {
? dec?=?dec?+?(*(bin+i))*pow(2(m-i-1));
? ??}
return?dec;? ??
? }
/*將m位的數(shù)組倒序*/
int?flpr(int?*bin?int?m)
{//方法:把第0個元素和最后一個元素交換位置,再把第1個元素和倒數(shù)第二個元素交換位置以此類推?
? int?x?=?m/2;
? int?i;
? int?tmp?=?0;
? for?(i=0;?i<=x;?i++)
? {//交換第i個元素和第m-1-i個元素?
? tmp?=?*(bin+i);
? *(bin+i)?=?*(bin+m-1-i);
? *(bin+m-1-i)?=?tmp;?
????}
????return?0;?
}
?
/*用結(jié)構(gòu)體定義復(fù)數(shù),并定義復(fù)數(shù)的運(yùn)算規(guī)則*/
typedef?struct?ComplexData{
double?real;
double?imag;
}Complex;
Complex?InitComplex(double?c_r?double?c_i)
{//復(fù)數(shù)初始化?
? Complex?z;
? z.real?=?c_r;
? z.imag?=?c_i;
? return?z;
? }
double?GetReal(Complex?z)
{//取復(fù)數(shù)的實(shí)部?
? ???return?z.real;
? ???}
double?GetImag(Complex?z)
{//取復(fù)數(shù)的虛部?
? ???return?z.imag;
? ???}
Complex?AddComplex(Complex?z1?Complex?z2)
{//復(fù)數(shù)的加法?
????????Complex?z3;
? z3.real?=?z1.real?+?z2.real;
? z3.imag?=?z1.imag?+?z2.imag;
? return?z3;
? }
Complex?SubComplex(Complex?z1?Complex?z2)
{//復(fù)數(shù)的減法?
????????Complex?z3;
? z3.real?=?z1.real?-?z2.real;
? z3.imag?=?z1.imag?-?z2.imag;
? return?z3;
? }
Complex?MulComplex(Complex?z1?Complex?z2)
{//復(fù)數(shù)的乘法
????Complex?z3;?
? z3.real?=?z1.real*z2.real?-?z1.imag*z2.imag;
? z3.imag?=?z1.real*z2.imag?+?z1.imag*z2.real;
? return?z3;
? }
Complex?DivComplex(Complex?z1?Complex?z2)
{//復(fù)數(shù)的除法?
????????Complex?z3;
? z3.real?=?(z1.real*z2.real?+?z1.imag*z2.imag)/(z2.real*z2.real?-?z2.imag*z2.imag);
? z3.imag?=?(z1.imag*z2.real?-?z1.real*z2.imag)/(z2.real*z2.real?-?z2.imag*z2.imag);
? return?z3;
? }
Complex?PowComplex(Complex?z1?int?p)
{//求復(fù)數(shù)的p次方
int?i;
Complex?z2?=?{00};
if(p==0)?
{
? ?z2.real?=?1;
? ?z2.imag?=?0;
? ?return?z2;
? ?}
????z2.real?=?cos(2.0*pi*p/N);
????z2.imag?=?-sin(2.0*pi*p/N);
????return?z2;
? }
/*將輸入序列x(n)的順序重置,規(guī)則是將每個序列號的2進(jìn)制碼反向排列再轉(zhuǎn)化成10進(jìn)制序號*/
void?reorder(double?*ori_xn?double?*xn?int?m)
{
? ?int?k;
?????for?(k=0;?k?????{
?? ?int?k_pie?=?0;
?? ?int?*bin?=?(int?*)malloc(m*sizeof(int));
?? ?dec2bin(k?bin?m);
?flpr(bin?m);
?k_pie?=?bin2dec(binm);
?*(xn+k)?=?*(ori_xn+k_pie);?
?free?(bin);
? ?}?
}
/*FFT變換過程*/
void?FFTtrans(double?*pxn_re?double?*pxn_im?double?*pXK_re?double?*pXK_im)
{
? int?LBJPkm;
? double?tmp_re?;
? double?tmp_im?;
? //Complex?WN?=?{cos(2*pi/N)-sin(2*pi/N)};??//cos()函數(shù)的輸入?yún)?shù)是弧度,要把角度轉(zhuǎn)換成弧度:弧度=pi/180*角度
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????????0??2017-04-19?08:57??case_FFT\.me
?????文件?????488291??2017-04-20?11:54??case_FFT\.me
?????文件????????438??2017-04-19?08:59??case_FFT\.me
?????文件???????1469??2017-04-19?08:57??case_FFT\.me
?????文件??????93396??2017-04-19?08:57??case_FFT\.me
?????文件???????1469??2017-04-19?08:57??case_FFT\.me
?????文件?????103416??2017-04-19?08:57??case_FFT\.me
?????文件???????1469??2017-04-19?08:57??case_FFT\.me
?????文件??????60725??2017-04-19?08:57??case_FFT\.me
?????文件????????899??2017-04-20?13:45??case_FFT\.me
?????文件?????281794??2017-04-19?08:57??case_FFT\.me
?????文件?????143517??2017-04-19?08:57??case_FFT\.me
?????文件????????144??2017-04-20?13:45??case_FFT\.me
?????文件????????909??2017-04-20?13:45??case_FFT\.me
?????文件????????254??2017-04-20?13:45??case_FFT\.me
?????文件???????1092??2017-04-20?13:45??case_FFT\.me
?????文件?????110592??2017-04-20?13:45??case_FFT\.me
?????文件????????377??2017-04-20?13:45??case_FFT\.me
?????文件??????????1??2017-04-19?08:57??case_FFT\.me
?????文件??????????1??2017-04-19?08:57??case_FFT\.me
?????文件????????226??2017-04-20?13:45??case_FFT\.me
?????文件???????1468??2017-04-20?13:45??case_FFT\.me
?????文件???????1468??2017-04-20?13:45??case_FFT\.me
?????文件????????207??2017-04-19?10:29??case_FFT\.me
?????文件???????3460??2017-04-19?13:38??case_FFT\.me
?????文件????????289??2017-04-19?16:14??case_FFT\.me
?????文件???????3029??2017-04-19?10:19??case_FFT\.me
?????文件???????3637??2017-04-20?10:43??case_FFT\.me
?????文件????????325??2017-04-19?16:26??case_FFT\.me
?????文件???????3615??2017-04-20?10:29??case_FFT\.me
............此處省略866個文件信息
- 上一篇:DWA算法驗(yàn)證
- 下一篇:ATL 封裝MFC對話框
評論
共有 條評論