快速傅立叶变换(fft)那有下载???

lanren_me 2002-12-26 04:46:19
快速傅立叶变换有:

①时间抽取FFT算法;

②频率抽取FFT算法;


不知两种算法有啥去区别,那有啊???
...全文
33 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
醉马不肖 2002-12-26
  • 打赏
  • 举报
回复
去intel的网站去搜 idct 效率极高 asm(对mmx优化后的)
strafer 2002-12-26
  • 打赏
  • 举报
回复
这个算法没学习过,找了个代码,你看看合不合用。

/* fftdi.c: fast Fourier transform, direct and inverse */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int inverseq( int i1, int imax );
extern void f(double tt, double fri[2] );
void creata( double a, double b, double A[2][N] );
void creata( double a, double b, double A[2][N] )
{
int i;
double tt,fri[2],deltat;
deltat=(b-a)/N;
for(i=0;i<N;i++)
{
tt=a+i*deltat;
f( tt, fri );
A[0][i]=fri[0]*deltat;
A[1][i]=fri[1]*deltat;
}
}
/********************************************************************/
void fftdi( int sign, double A[2][N], double x[2][N] )
{
int i,j,i0,ii,iloop,step[M],loop[M],least,jstep,reseq;
double pi,unit,alpha,w[2],ar,ai;
if( sign == 1 )
for(i=0;i<N;i++) { A[0][i]=x[0][i]; A[1][i]=x[1][i]; }
step[0]=N/2;
loop[0]=1;
pi=4.0*atan(1.0);
unit=pi*2.0/((double)N);
for(i=1;i<M;i++) { step[i]=step[i-1]/2; loop[i]=loop[i-1]*2; }
for(i=0;i<M;i++)
{
for(iloop=0;iloop<loop[i];iloop++)
{
reseq=inverseq(iloop,i);
alpha=unit*step[i]*reseq;
least=2*step[i]*iloop;
w[0]=cos(alpha);
w[1]=sign*sin(alpha);
for(j=0;j<step[i];j++)
{
jstep=least+step[i]+j;
ar=A[0][jstep]*w[0]-A[1][jstep]*w[1];
ai=A[0][jstep]*w[1]+A[1][jstep]*w[0];
A[0][jstep]=A[0][least+j]-ar;
A[1][jstep]=A[1][least+j]-ai;
A[0][least+j]=A[0][least+j]+ar;
A[1][least+j]=A[1][least+j]+ai;
}
}
}
for(i=0;i<N;i++)
{ j=inverseq(i,M); x[0][i]=A[0][j]; x[1][i]=A[1][j]; }
if( sign == 1 )
for(i=0;i<N;i++)
{ A[0][i]=x[0][i]/((double)N); A[1][i]=x[1][i]/((double)N); }
}
/********************************************************************/
int inverseq( int i1, int imax )
{
int i,j,ii,i0,inv;
i0=i1; inv=0;
for(j=0;j<imax;j++)
{ ii=i0%2; inv=2*inv+ii; i0=(i0-ii)/2; }
return(inv);
}

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧