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

  • 大小: 530KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-06
  • 語言: 其他
  • 標簽: FFT??for??C++??

資源簡介

一個比較好的基4的快速傅里葉變換,主要在于重排序和復數(shù)計算。

資源截圖

代碼片段和文件信息

#include?
#include?
#include?“math.h“
using?namespace?std;

const?double?pi?=?3.1415926535897932;
const?int?N=256;

class?complex
{
public:
//無參構造函數(shù)
complex()
{
re=0;
im=0;
}
//有參構造函數(shù)
complex(double?realdouble?imag)
{
re=real;
im=imag;
}
//加法
complex?operator?+?(complex&?c)
{
return?complex(?re?+?c.re??im?+?c.im?);
}
//減法
complex?operator?-?(complex&?c)
{
return?complex(?re?-?c.re??im?-?c.im?);
}
//乘法
complex?operator?*?(complex&?c)
{
return?complex(?(re?*?c.re)-(im?*?c.im)??(re?*?c.im)+(im?*?c.re)?);
}
//除法
complex?operator?/?(complex&?c)
{
return?complex(?(?re*c.re?+?im*c.im?)/(?c.re*c.re?+?c.im*c.im?)
((im?*?c.re)-(re?*?c.im))/((c.re*c.re)+(c.im*c.im))?);
}
//除2
void?half()
{
re=re/2;
im=im/2;
}

//輸出到ostream
void?insert(ostream&?out)
{
if(re>=0)?cout<<“?“;
out<=0)?‘+‘:‘-‘)?<<‘j‘<=0)?im:(0-im));
}
//顯示
void?show()
{
cout<=0)?‘+‘:‘-‘)?<<‘j‘<=0)?im:(0-im))?;
}
//設值
void?setValue(double?realdouble?imag)
{
if(real>0.00000001||real else?re=0;
if(imag>0.00000001||imag else?im=0;
}

private:
double?reim;
};

//流輸出
ostream&?operator?<{
c.insert(out);
return?out;
}


//獲得Wn
void?getW(complex?w[]int?len)
{
for(int?i=0;i {
w[i].setValue(?cos(0?-?pi*2*(i)/len)??sin(0?-?pi*2*(i)/len)?);
}
}

//倒序重排
void?resort(complex?X[])
{
double?len=N;
int?L=log(len)/log(double(4));
int?in;
complex?*temp?=?new?complex[N];
for(i=0;i temp[i]=X[i];
for(i=0;i {
n=i;
n=((n&0xcccc)>>2)|((n&0x3333)<<2);
n=((n&0xf0f0)>>4)|((n&0x0f0f)<<4);
n=((n&0xff00)>>8)|((n&0x00ff)<<8);
n=n>>(2*(8-L));
X[i]=temp[n];
}
delete[]temp;
}
//基2時間FFT
void?FFT2t(complex?x[])
{
//初始化
double?len=N;
int?L=log(len)/log(double(4));
int?lgkm;
int?k0k1k2k3k4;
int?gc2gi1gi2;
complex?*temp?=?new?complex[N];
complex?*w?=?new?complex[N];
complex?*X=new?complex[4];
complex?j(01);
getW(wN);
resort(x);
//開始迭代運算
for(l=1;l<=L;l++)
{
gc2=1<<(2*(L-l));

gi2=1<<(2*l);
gi1=1<<(2*(l-1));

for(g=0;g for(k=0;k {
k0=k+g*gi2;
m=gc2*k;
k1=k0;k2=k1+gi1;k3=k2+gi1;k4=k3+gi1;

X[0]=x[k1];X[1]=w[m]*x[k2];X[2]=w[2*m]*x[k3];X[3]=w[3*m]*x[k4];

temp[k1]=X[0]+X[1]+X[2]+X[3];
temp[k2]=X[0]-j*X[1]-X[2]+j*X[3];
temp[k3]=X[0]-X[1]+X[2]-X[3];
temp[k4]=X[0]+j*X[1]-X[2]-j*X[3];
}
for(int?i=0;i x[i]=temp[i];
}
delete[]Xw;
}

//主函數(shù)
void?main()
{
//初始化
complex?q(0.90.3);
complex?x[N]w[N];
int?i;
getW(wN);?//獲取Wn序列
x[0].setValue(21);
for(i=1;i {
x[i]=x[i-1]*q;
}
//輸出原序列
cout<<“原序列:“< for(i=0;i<16;i+=2)
{
cout<

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????1633280??2013-12-08?12:08??base4FFT\base4FFT.ncb

?????文件????????881??2013-12-07?20:33??base4FFT\base4FFT.sln

????..A..H.?????13312??2013-12-08?12:08??base4FFT\base4FFT.suo

?????文件???????3918??2013-12-07?20:35??base4FFT\base4FFT.vcproj

?????文件???????1411??2013-12-08?12:08??base4FFT\base4FFT.vcproj.gong-PC.gong.user

?????文件??????48640??2013-12-08?11:52??base4FFT\Debug\base4FFT.exe

?????文件????????663??2013-12-07?20:35??base4FFT\Debug\base4FFT.exe.embed.manifest

?????文件????????728??2013-12-07?20:35??base4FFT\Debug\base4FFT.exe.embed.manifest.res

?????文件????????621??2013-12-08?11:52??base4FFT\Debug\base4FFT.exe.intermediate.manifest

?????文件?????436480??2013-12-08?11:52??base4FFT\Debug\base4FFT.ilk

?????文件?????625664??2013-12-08?11:52??base4FFT\Debug\base4FFT.pdb

?????文件???????6382??2013-12-08?11:52??base4FFT\Debug\BuildLog.htm

?????文件??????62472??2013-12-08?11:52??base4FFT\Debug\FFT4.obj

?????文件?????????65??2013-12-08?11:52??base4FFT\Debug\mt.dep

?????文件?????175104??2013-12-08?11:52??base4FFT\Debug\vc90.idb

?????文件?????217088??2013-12-08?11:52??base4FFT\Debug\vc90.pdb

?????文件???????3255??2013-12-08?11:52??base4FFT\FFT4.cpp

?????目錄??????????0??2013-12-08?11:52??base4FFT\Debug

?????目錄??????????0??2013-12-08?11:52??base4FFT

-----------?---------??----------?-----??----

??????????????3229964????????????????????19


評論

共有 條評論