91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 266KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-02
  • 語言: C/C++
  • 標簽: C語言??

資源簡介

編程實現基于時間抽取的基2的FFT算法 要求:實現任意長度的基于時間抽取的基2的FFT算法,統計算法運行所需時間,與DFT的直接實現進行運行時間對比,與現存的FFT算法運行時間進行對比。

資源截圖

代碼片段和文件信息

/**********************************
名稱:編程實現基于時間抽取的基2的FFT算法
要求:實現任意長度的基于時間抽取的基2的FFT算法,統計算法運行所需時間,與DFT的直接實現進行運行時間對比,與現存的FFT算法運行時間進行對比。
作者:朱振興
QQ:1094296051
/**********************************/
#include?
#include?
#include?
#include?
#include?
#define?PI?3.1415926535?
struct?finger//---------------------復數結構體
{
float?shi;
float?xu;?
};

struct?finger?jiafa(struct?finger?astruct?finger?b)//---------------------復數加法
{
struct?finger?result;
result.shi?=?a.shi?+?b.shi;
result.xu?=?a.xu?+?b.xu;
return?result;

}
struct?finger?jianfa(struct?finger?astruct?finger?b)//--------------------復數減法
{
struct?finger?result;
result.shi?=?a.shi?-?b.shi;
result.xu??=?a.xu?-?b.xu;
return?result;

}
struct?finger?chengfa(struct?finger?astruct?finger?b)//-------------------復數乘法
{
struct?finger?result;
result.shi?=?(a.shi?*?b.shi)?-?(a.xu?*?b.xu);
result.xu??=?(a.shi?*?b.xu)?+?(a.xu?*?b.shi);
return?result;

}
int?daoxu(int?aint?n)//-------------------倒序實現
{
int?ibresult=0;
??

for(i=0;i {
b?=?a?&?1;????
a?=?a>>1;?
result?=?result<<1;????????????
result?=?result?|?b;? ????????
}
return?result;
}

struct?finger?xuanzhuanyinzi(int?Nint?P)//-------------------旋轉因子計算
{

struct?finger?wn;?
wn.shi?=?cos(2*PI/N*P);
wn.xu?=?-sin(2*PI/N*P);
return?wn;


}?
void?diexingyunsuan(struct?finger?*pstruct?finger?*qstruct?finger?wn)//-------------------蝶形運算
{
struct?finger?res1res2;
struct?finger?temp;
????temp?=?chengfa(*qwn);
res1?=?jiafa(*ptemp);
res2?=?jianfa(*ptemp);
*q?=?res2;
*p?=?res1;
}

int?log_2(int?b)//-------------------log2的對數運算
{
float?result1cd;
int?result2;
c?=?log10(b);?
d?=?log10(2);
result1?=?c/d;
result2?=?ceil(result1);?
return?result2;?

?}?
void?view1()//---------------------界面1
{
printf(“\n“);
printf(“\t\t\t---------------------\n“);
printf(“\t\t\t??????FFT算法實現????\n“);
printf(“\t\t\t---------------------\n“);
printf(“\n“);
}
void?view2()//---------------------界面2
{
printf(“\n“);
printf(“\t\t\t---------------------\n“);
printf(“\t\t\t??????DFT算法實現????\n“);
printf(“\t\t\t---------------------\n“);
printf(“\n“);
}
/****************************************
????????????????DFT算法
****************************************/
void?DFT()
{

struct?finger?*A*x;
struct??finger?c;

time_t??c_startc_end;
int?ijkLM=0N=0;
view2();
printf(“注意:L?代表為2的L次方??\n“);
printf(“\nPlease?input?the?size?of?L?:??“);//輸入序列的大小
scanf(“%d“&L);
N=pow(2L);
printf(“\n“);
M=log_2(N);

A?=?(struct?finger*)malloc(N*sizeof(struct?finger));//---------------------設置動態數組
if(!A)
{
????????printf(“Building?the?first?array?error!“);
????????exit(1);?
????}
else
printf(“Building?the?first?array?successful!“);


x?=?(struct?finger*)malloc(N*sizeof(struct?finger));
if(!x)
{
????????printf(“Building?the?first?a

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-11-24?00:44??FFT&DFT\
?????目錄???????????0??2018-11-24?00:44??FFT&DFT\Debug\
?????文件??????241720??2018-11-24?00:44??FFT&DFT\Debug\FFT&DFT.exe
?????文件??????262000??2018-11-24?00:44??FFT&DFT\Debug\FFT&DFT.ilk
?????文件???????20964??2018-11-24?00:43??FFT&DFT\Debug\FFT&DFT.obj
?????文件??????212968??2018-11-24?00:43??FFT&DFT\Debug\FFT&DFT.pch
?????文件??????467968??2018-11-24?00:44??FFT&DFT\Debug\FFT&DFT.pdb
?????文件???????33792??2018-11-24?00:44??FFT&DFT\Debug\vc60.idb
?????文件???????45056??2018-11-24?00:43??FFT&DFT\Debug\vc60.pdb
?????文件????????8082??2018-11-24?00:43??FFT&DFT\FFT&DFT.c
?????文件????????3413??2018-11-24?00:43??FFT&DFT\FFT&DFT.dsp
?????文件?????????522??2018-11-24?00:44??FFT&DFT\FFT&DFT.dsw
?????文件???????33792??2018-11-24?00:44??FFT&DFT\FFT&DFT.ncb
?????文件???????48640??2018-11-24?00:44??FFT&DFT\FFT&DFT.opt
?????文件?????????759??2018-11-24?00:44??FFT&DFT\FFT&DFT.plg

評論

共有 條評論