資源簡介
自己寫的基4FFT,主要是了解fft編程思想,實驗結果正確。在此基礎可以擴展到64,256點等的基4FFT。
代碼片段和文件信息
//2011-11-04
//general
//points?16?radix4?dit-fft
#include?
using?namespace?std;
int?main()
{
float?dataR[16]dataI[16];
int?x0x1x2x3;
int?Ljkbpi;
float?TRTITBRTBIT2BRT2BIT3BRT3BI;
float?COS[10]SIN[10];
int?xx;
cout<<“16?points?fft?“< int?a[16];
for(i=0;i<16;i++)
{
a[i]=0;
}
for(i=0;i<16;i++)
{
a[i]=i;
cout<<“a[“<}
/////////////////////////////
cout<<“\n“<<“invert?sequence:?“<
///////////////////////////
for(i=0;i<16;i++)
{
dataR[i]=a[i];
}
////////////////////////////////////////////wnp?table
{
COS[0]=1;SIN[0]=0;
COS[1]=0.92388f;SIN[1]=-0.382683f;
COS[2]=0.707107f;SIN[2]=-0.707107f;
COS[3]=0.382683f;SIN[3]=-0.92388f;
COS[4]=0;SIN[4]=-1;
COS[5]=-0.382683f;SIN[5]=-0.92388f;
COS[6]=-0.707107f;SIN[6]=-0.707107f;
COS[7]=-0.92388f;SIN[7]=-0.382683f;
COS[8]=-1;SIN[8]=0;
COS[9]=-0.923879f;SIN[9]=0.382684f;
}
/**********?following?code?invert?sequence?************/
for(i=0;i<16;i++)
{?x0=x1=x2=x3=0;
x0=i&0x01;?x1=(i/2)&0x01;?x2=(i/4)&0x01;?x3=(i/8)&0x01;
xx=x1*8+x0*4+x3*2+x2;
dataI[xx]=dataR[i];
}
for(i=0;i<16;i++)
{?dataR[i]=dataI[i];?dataI[i]=0;?
}
for(i=0;i<16;i++)
{
cout<<“iv[“<}
cout< /**************?following?code?FFT?*******************/
for(L=1;L<=2;L++)?
{?/*?for(1)?*/
b=1;?i=L-1;
cout<<“\n“<<“L=“< w
評論
共有 條評論