黄山香烟价格表和图片:fft算法,比较快的
来源:百度文库 编辑:九乡新闻网 时间:2024/05/01 17:08:50
//******************************************************************************//
#define FFT_GLOBALS
#include "FFT.h"
//******************************************************************************//
void FFT(double dataR[SAMPLE_LEN])
{
unsigned int x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,xx;
unsigned int i,j,k,b,p,L;
double dataI[SAMPLE_LEN]={0};
double TR,TI,temp;
/*字节倒序*/
for ( i=0;i {
x0=x1=x2=x3=x4=x5=x6=x7=x8=x9=0;
x0=i&0x0001;
x1=(i>>1)&0x0001;
x2=(i>>2)&0x0001;
x3=(i>>3)&0x0001;
x4=(i>>4)&0x0001;
x5=(i>>5)&0x0001;
x6=(i>>6)&0x0001;
x7=(i>>7)&0x0001;
x8=(i>>8)&0x0001;
x9=(i>>9)&0x0001;
xx=x0*512+x1*256+x2*128+x3*64+x4*32+x5*16+x6*8+x7*4+x8*2+x9;
dataI[xx]=dataR[i];
}
for ( i=0;i {
dataR[i]=dataI[i]; dataI[i]=0;
} //开始蝶形运算
for ( L=1;L<=LEVEL;L++ )
{ /* for(1) */
b=1; i=L-1;
while ( i>0 )
{
b=b*2; i--;
} /* b= 2^(L-1) */
for ( j=0;j<=b-1;j++ ) /* for (2) */
{
p=1; i=LEVEL-L;
while ( i>0 ) /* p=pow(2,7-L)*j; */
{
p=p*2; i--;
}
p=p*j;
for ( k=j;k {
TR=dataR[k]; TI=dataI[k]; temp=dataR[k+b];
dataR[k]=dataR[k]+dataR[k+b]*cos_tab[p]+dataI[k+b]*sin_tab[p];
dataI[k]=dataI[k]-dataR[k+b]*sin_tab[p]+dataI[k+b]*cos_tab[p];
dataR[k+b]=TR-dataR[k+b]*cos_tab[p]-dataI[k+b]*sin_tab[p];
dataI[k+b]=TI+temp*sin_tab[p]-dataI[k+b]*cos_tab[p];
} /* END for (3) */
} /* END for (2) */
} /* END for (1) */ for ( i=0;i {
dataR[i]=sqrt(dataR[i]*dataR[i]+dataI[i]*dataI[i]);
}
} /* END FFT *///******************************************************************************//
void InitForFFT(void)
{
int i;
for ( i=0;i {
sin_tab[i]=sin(PI*2*i/SAMPLE_LEN);
cos_tab[i]=cos(PI*2*i/SAMPLE_LEN);
}
}
//******************************************************************************//
#define FFT_GLOBALS
#include "FFT.h"
//******************************************************************************//
void FFT(double dataR[SAMPLE_LEN])
{
unsigned int x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,xx;
unsigned int i,j,k,b,p,L;
double dataI[SAMPLE_LEN]={0};
double TR,TI,temp;
/*字节倒序*/
for ( i=0;i
x0=x1=x2=x3=x4=x5=x6=x7=x8=x9=0;
x0=i&0x0001;
x1=(i>>1)&0x0001;
x2=(i>>2)&0x0001;
x3=(i>>3)&0x0001;
x4=(i>>4)&0x0001;
x5=(i>>5)&0x0001;
x6=(i>>6)&0x0001;
x7=(i>>7)&0x0001;
x8=(i>>8)&0x0001;
x9=(i>>9)&0x0001;
xx=x0*512+x1*256+x2*128+x3*64+x4*32+x5*16+x6*8+x7*4+x8*2+x9;
dataI[xx]=dataR[i];
}
for ( i=0;i
dataR[i]=dataI[i]; dataI[i]=0;
} //开始蝶形运算
for ( L=1;L<=LEVEL;L++ )
{ /* for(1) */
b=1; i=L-1;
while ( i>0 )
{
b=b*2; i--;
} /* b= 2^(L-1) */
for ( j=0;j<=b-1;j++ ) /* for (2) */
{
p=1; i=LEVEL-L;
while ( i>0 ) /* p=pow(2,7-L)*j; */
{
p=p*2; i--;
}
p=p*j;
for ( k=j;k
TR=dataR[k]; TI=dataI[k]; temp=dataR[k+b];
dataR[k]=dataR[k]+dataR[k+b]*cos_tab[p]+dataI[k+b]*sin_tab[p];
dataI[k]=dataI[k]-dataR[k+b]*sin_tab[p]+dataI[k+b]*cos_tab[p];
dataR[k+b]=TR-dataR[k+b]*cos_tab[p]-dataI[k+b]*sin_tab[p];
dataI[k+b]=TI+temp*sin_tab[p]-dataI[k+b]*cos_tab[p];
} /* END for (3) */
} /* END for (2) */
} /* END for (1) */ for ( i=0;i
dataR[i]=sqrt(dataR[i]*dataR[i]+dataI[i]*dataI[i]);
}
} /* END FFT *///******************************************************************************//
void InitForFFT(void)
{
int i;
for ( i=0;i
sin_tab[i]=sin(PI*2*i/SAMPLE_LEN);
cos_tab[i]=cos(PI*2*i/SAMPLE_LEN);
}
}
//******************************************************************************//
fft算法,比较快的
各种排序算法的比较
SSDSP集成开发环境中的混合编程及FFT算法的实现
嵌入式系统中FFT算法研究与实现(C语言)
MATLAB中FFT的使用方法
字符串hash算法比较
分类算法的比较准则_DataMan'S Blog
咽炎吃什么药好的比较快?
【转载】FFT结果的物理意义
11嵌入式系统中FFT算法研究与实现(C语言)
学习英语比较快的方法(转载)
天干地支的算法
SAR的算法
【号码的吉祥算法】
养老金的算法
求质数的算法
“三金”的算法
乘法的巧妙算法
利滚利息的算法
天干地支的算法
25注必出两码的算法
业务招待费的算法
25注必出两码的算法
快来看看中美公务员的工资比较~~大家来谈谈看法