数字信号处理实验报告--(基于MATLAB语言).docx
《数字信号处理实验报告--(基于MATLAB语言).docx》由会员分享,可在线阅读,更多相关《数字信号处理实验报告--(基于MATLAB语言).docx(40页珍藏版)》请在第一文库网上搜索。
1、数字信号处理实验报告(基于MAT1AB语言)实验1基2-FFT算法实现一、实验目的1 .掌握基2-FFT的原理及具体实现方法。2 .编程实现基2-FFT算法。3 .加深理解FFT算法的特点。二、实验设备与环境计算机、MAT1AB软件环境。三、实验基础理论FFT是DFT的一种快速算法,能使DFT的计算大大简化,运算时间缩短。FFT利用了阙Ik的三个固有特性,即对称性、周期性和可约性,将长序列的DFT分解为短序列的DFT,合并了DFT运算中的某些项,从而减少了DFT的运算量。FFT算法基本上可以分为两大类,即按时间抽取法和按频率抽取法。在实现FFT算法时,要重点考虑两个问题,注意数据的读取和存储:
2、(1)输入输出的排序;(2)碟形运算的实现。按时间抽取算法中输入反序输出顺序,按频率抽取算法中输入顺序输出反序;运算过程中的每一级都由N/2个碟形运算构成,每一个碟形运算单元中,两个节点变量运算后得到的结果为下一列相同位置的节点变量,而和其他节点变量无关,可以采用原位运算,节省存储单元。另外,碟形运算中的复系数可以存储为能及时查阅的系数表,这样可以节约计算量,但是需要N/2个复数存储器。MAT1AB中提供了用于计算FFT的函数fft,可将实验中所得到的结果与利用MAT1AB中fft函数计算的结果相比较,以此验证结果的正确性。四、实验内容1 .编程实现序列长度为N=8的按时间抽取的基2-FFT算
3、法。给定一个8点序列,采用编写的程序计算其DFT,并与MAT1AB中fft函数计算的结果相比较,以验证结果的正确性。实验过程与实验结果:设序列为0,1,2,3,4,5,6,7)编程实现序列长度为N=8的按时间抽取的基2-FET算法%输入数据并计算常量x=0,1,2,3,4,5,6,7;M=nextpow2(1ength(xn),N=2M,form=0:N/2-1;WN(m+1)=exp(-j*2*piN)m;endA=xn,zeros(1,N-Iength(xn);%数据倒序操作J=0;forI=O:N-I;ifKJ;T=A(I+1)1(I+1)=A(J+1)j(J+1)=T;endK=N2;
4、whi1eJ=K;J=J-K;K=K/2;endJ=J+K;end%分级按序依次进行蝶形运算for1=I:M;B=2(1-I);forR=OzB-I;P=2(M-1)*R;forK=R:21:N-2;T=A(K+1)+A(K+B+1)*WN(P+1);A(K+B+1)=A(K+1)-A(K+B+1)*WN(P+1);A(K+1)=T;endendendXk=A运行结果为:Xk=Co1umns1through28.0000-4.0000+9.6569i-4.0000+4.0000i-4.0000+1.6569i-4.0000Co1umns6-4.0000-through1.6569i-4.000
5、0-4.0000i-4.0000-9.6569i调用函数fft计算:fftxn=fft(xn,N)运行结果为:fftxn=Co1umns1through528.0000-4.00009.6569i-4.0000+4.0000i-4.0000+1.6569i-4.0000Co1umns6through8-4.0000-1.6569i-4.00004.0000i-4.0000-9.6569i实验结果分析:两种计算方法结果一样,结果正确。2.编程实现序列长度为N=8的按频率抽取的基2-FFT算法。给定一个8点序列,采用编写的程序计算其DFT,并与MAT1AB中fft函数计算的结果相比较,以验证结果的
6、正确性。实验过程与实验结果:设序列为7,6,5,4,3,2,1,0)编程实现序列长度为N=8的按频率抽取的基2-FFT算法xn=7,6,5,4,3,2,1,0;N=8;M=1og2(N);fork1=0:M-1D=2k1;E=N2k1;F=N2(k1+1);G=N2(k1+1)-1;Wn=exp(-j*2*piE);forg1:DH1=(g-1)*E;H2=(g-1)*E+F;forr=0:G;k=r+1;xn(k+H1)=xn(k+H1)+xn(k+H2);xn(k+H2)=xn(k+H1)-xn(k+H2)-xn(k+H2)*Wnr;endendendn1=f1ip1r(dec2bin(O
7、:N-1);n2=bin2dec(n1);fori=1:NXk(i)=xn(n2(i)+1);endXk运行结果为:Xk=Co1umns1through528.00004.0000-9.6569i4.0000-4.0000i4.0000-1.6569i4.0000Co1umns6through84.0000+1.6569i4.0000+4.0000i4.0000+9.6569i调用函数fft计算:fftxn=fft(xn,N)运行结果为:fftxn=Co1umns1through528.00004.0000-9.6569i4.0000-4.0000i4.0000-1.6569i4.0000Co
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 实验 报告 基于 MATLAB 语言