实验1 基2-FFT算法实现.docx
《实验1 基2-FFT算法实现.docx》由会员分享,可在线阅读,更多相关《实验1 基2-FFT算法实现.docx(8页珍藏版)》请在第一文库网上搜索。
1、实验1基2-FFT算法实现一、实验目的1掌握基2-FFT的原理及具体实现方法。2 .编程实现基2-FFT算法。3 .深刻理解FFT算法的特点。二、实验基础理论FFT是DFT的一种快速算法,能使DFT的计算大大简化,运算时间缩短。FFT利用了W,的三个固有特性。即对称性,周期性和可约性,将长序列的DFT分解为短序列的DFT,合并了DFT运算中的某些项,从而减少了DFT的运算量。在实现FFT算法时,要重点考虑两个问题,注意数据的读取和存储:(1)输入输出的排序;(2)蝶形运算的实现。按时间抽取算法中输入反序输出顺序,按频率抽取算法中输入顺序输出反序;运算过程中的每一级都有N/2个蝶形运算构成,每一
2、个蝶形运算单元中,两个节点变量运算后得到的结果为下一列相同位置的节点变量,而和其他节点变量无关,可以采用原位运算,节省存储单元。另外,蝶形运算中的复系数WT可以存储为能及时查阅的系数表,这样可以借阅运算量,但是需要N/2个复数存储器。MAT1AB中提供了用于计算FFT的函数fft,可将实验中所得到的结果与利用MAT1AB中fft函数计算的结果相比较,以此验证结果的正确性。三、实验内容及实验过程1编程实现序列长度为N=8的按时间抽取的基2-FFT算法。给定一个8点序列,采用编写的程序计算其DFT,并与MAT1AB中fft函数计算的结果相比较,以验证结果的正确性。8点按照时间抽取的FFT程序代码:
3、c1ear;c1c;n=input(,N-);v=1og2(n);a=0:0.1:(n-1)*0.1;x=sin(a);xd=bin2dec(f1ip1r(dec2bin(1:n-1,v)+1;y=(d);form=1:vnz=2m;u=1;wn=exp(-2j*pinz);forj=k(nz2)fork=j:nz:nkp=k+nz/2;t=y(kp)*u;y(kp)=y(k)-1;y(k)=y(k)+1;endu=u*wn;endendfigure(1);subp1ot(211);stem(a,abs(y);x1abe1(x);tit1e(abs:time:dft-ffO;subp1ot(2
4、12);prove=fft(x);stem(a,abs(prove);x1abe1(x,)tit1e(absrfft,);figure(2);subp1ot(211);stem(a,ang1e(y);x1abe1(x,)itit1e(,ang1e1imerdft-fft,);sub1ot(212);stem(a,ang1e(prove);x1abe1(x,)jtit1e(ang1efft);实验结果:N=8abs:time:dft-fft2 .编程实现序列长度为N=8的按频率抽取的基2-FFT算法。给定一个8点序列,采用编写的程序计算其DFT,并与MAT1AB中fft函数计算的结果相比较,以验
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验1 基2-FFT算法实现 实验 FFT 算法 实现
