C语言FFT算法 点击:2915 | 回复:2



小野子11

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 2回
  • 年度积分:0
  • 历史总积分:12
  • 注册:2004年3月15日
发表于:2004-07-05 13:34:00
楼主
哪位大虾能提供C语言的FFT定点算法程序?急用!~~~



Aeolus

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:66
  • 注册:2003年3月24日
发表于:2004-07-13 12:55:00
1楼
这个你网上搜一下,n多!!

Jevons Lee

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 18回
  • 年度积分:0
  • 历史总积分:39
  • 注册:2004年7月08日
发表于:2004-12-01 11:01:00
2楼
********************************************************************* 这是我自己做的程序,经过调试,没有问题·!· ********************************************************************* #include<stdio.h> #include<math.h> #define PI 3.14159 #define T 16 /********************************************************************************/ /* ARRAGED SUBFUNCTION */ int arr(int y,int m,int k) { int l,w; l=m/2; if(y<=l) w=k+l; else w=arr(y-l,l,k)-l; return (w); } /********************************************************************************/ /* FFT SUBFUNCTION */ float FFT(float xre[],float xim[],float yre[],float yim[],int sw) { float fre[T/2],fim[T/2],gre[T/2],gim[T/2]; float wre[T/2],wim[T/2]; float val; int r,n,N; int j=1; if(sw==1) for(n=0;n<T;n++) { xre[n]=xre[n]; xim[n]=xim[n]; } if(sw==-1) for(n=0;n<T;n++) { xre[n]=xre[n]/T; xim[n]=xim[n]/T; } for(N=T;N>0;N/=2) for(r=0;r<T/N;r++) { for(n=0;n<N/2;n++) { val=2*PI*n/N; wre[n]=cos(val); wim[n]=(-1)*sw*sin(val); fre[n+r*N]=xre[n+r*N]+xre[n+r*N+N/2]; fim[n+r*N]=xim[n+r*N]+xim[n+r*N+N/2]; gre[n+r*N]=xre[n+r*N]*wre[n]-xre[n+r*N+N/2]*wre[n]-xim[n+r*N]*wim[n]+xim[n+r*N+N/2]*wim[n]; gim[n+r*N]=xre[n+r*N]*wim[n]-xre[n+r*N+N/2]*wim[n]+xim[n+r*N]*wre[n]-xim[n+r*N+N/2]*wre[n]; xre[n+r*N]=fre[n+r*N]; xre[n+r*N+N/2]=gre[n+r*N]; xim[n+r*N]=fim[n+r*N]; xim[n+r*N+N/2]=gim[n+r*N]; } } for(n=1;n<T;n++) { j=arr(j,T,j); yre[n]=xre[j-1]; yim[n]=xim[j-1]; } yre[0]=xre[0]; yim[0]=xim[0]; for(n=0;n<T;n++) { return(yre[n]); return(yim[n]); } } /*****

热门招聘
相关主题

官方公众号

智造工程师