基本信息
源码名称:快速傅里叶变换FFT的C程序代码实现
源码大小:0.12M
文件格式:.rar
开发语言:C/C++
更新时间:2019-08-08
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 1 元 
   源码介绍
快速傅里叶变换(Fast Fourier Transform)是离散傅里叶变换的一种快速算法,简称FFT,通过FFT可以将一个信号从时域变换到频域。
  模拟信号经过A/D转换变为数字信号的过程称为采样。为保证采样后信号的频谱形状不失真,采样频率必须大于信号中最高频率成分的2倍,这称之为采样定理。
  假设采样频率为fs,采样点数为N,那么FFT结果就是一个N点的复数,每一个点就对应着一个频率点,某一点n(n从1开始)表示的频率为:fn=(n-1)*fs/N。
  举例说明:用1kHz的采样频率采样128点,则FFT结果的128个数据即对应的频率点分别是0,1k/128,2k/128,3k/128,…,127k/128 Hz。
  这个频率点的幅值为:该点复数的模值除以N/2(n=1时是直流分量,其幅值是该点的模值除以N)。


/***【快速傅里叶变换】***/
  void FFT(void)
  {
  unsigned int i,j,k,l;
  complex top,bottom,xW;
  Reverse(); //码位倒序
  for(i=0;i
  { //一级蝶形运算
  l=1<
  for(j=0;j
  { //一组蝶形运算
  for(k=0;k
  { //一个蝶形运算
  xW=mul(x[j k l],WN[N/(2*l)*k]); //碟间距为l
  top=add(x[j k],xW); //每组的第k个蝶形
  bottom=sub(x[j k],xW);
  x[j k]=top;
  x[j k l]=bottom;
  }
  }
  }
  }