欢迎来到天天文库
浏览记录
ID:42824209
大小:1.79 MB
页数:42页
时间:2019-09-22
《数字信号处理实验数字信号处理实验-最终版》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、数字信号处理实验姓名:康杰靓学号:1120111262班级:05211101专业:通信工程实验1基2-FFT算法实现—.实验目的1.掌握基2-FFT的原理及具体实现方法。2.编程实现基2-FFT算法。3.加深理解FFT算法的特点。二、实验设备与环境计算机、MATLAB软件坏境。三、实验基础理论FFT是DFT的一种快速算法,能使DFT的计算大大简化,运算时间缩短。FFT利用了必严的三个固有特性,即对称性、周期性和可约性,将长序列的DFT分解为短序列的DFT,合并了DFT运算中的某些项,从而减少了DFT的运算量。FFT算法基木上可以分为两大类,即按时间抽取法
2、和按频率抽取法。在实现FFT算法时,要重点考虑两个问题,注意数据的读取和存储:(1)输入输出的排序;(2)碟形运算的实现。按吋间抽取算法中输入反序输出顺序,按频率抽取算法中输入顺序输出反序;运算过程中的每一级都由N/2个碟形运算构成,每一个碟形运算单元中,两个节点变量运算后得到的结果为下一列相同位置的节点变量,而和其他节点变量无关,可以采用原位运算,节省存储单元。另外,碟形运算屮的复系数严可以存储为能及时查阅的系数表,这样可以节约计算量,但是需要N/2个复数存储器。MATLAB中提供了用于计算FFT的函数fft,可将实验中所得到的结果与利用MATLAB中
3、fft函数计算的结果相比较,以此验证结果的正确性。四、实验内容1•编程实现序列长度为N=8的按时间抽取的基2・FFT算法。给定一个8点序列,釆用编写的程序计算其DFT,并与MATLAB中fft函数计算的结果相比较,以验证结果的正确性。2.编程实现序列长度为N=8的按频率抽収的基2-FFT算法。给定一个8点序列,采用编写的程序计算其DFT,并与MATLAB中fft函数计算的结果相比较,以验证结果的正确性。3.将上述FFT程序推广到序列长度为N=2v的情况,要求利用原位运算。五、实验代码及分析1.实验代码:»x=[l+2j0.5+3j5+4j-2+3j6-3
4、j5+lj9-l-2j];»n=bin2dec(fliplr((dec2bin([l:8]-l,3))))+l;»xO=x;»for1=1:3form=l:2A(l-l)fork=l:2A(3-l)t=xO(k+(m-l)*2A(4-l)+2A(3-l));x0(k+(m-l)*2A(4-l)+2A(3-l))=(x0(k+(m-l)*2A(4-l))-t)*exp(-2*lj*pi*(k-l)/(8/2A(l-l)));xO(k+(m-l)*2A(4-l))=xO(k+(m-l)*2A(4-l))+t;endendend»yl=fft(x)»fori=
5、l:8yO(i)=xO(n(i));end»yOyi=Columns1through523.5000+8.0000i1.4749+10.7678i-4.0000-13.5000i・1.5754+7.0104i18.5000・2.0000iColumns6through8・3.4749+7.2322i-10.0000+3.5000iJ6.4246・5.0104iy0=Columns1through523.5000+8.0000i1.4749+10.7678i-4.0000-13.5000i-1.5754+7.0104i18.5000-2.0000iColu
6、mns6through8・3.4749+7.2322i-10.0000+3.5000i-16.4246・5.0104i分析:y0和yl两者结果完全相同,说明结果正确。1.实验代码:»x=[l+2j0.5+3j5+4j-2+3j6-3j5+lj9-l-2j];»n=bin2dec(fliplr((dec2bin([l:8]-l,3))))+l;»x0=x;»for1=1:3form=l:2A(l-l)fork=l:2A(3-l)t=xO(k+(m-l)*2A(4-l)+2A(3-l));xO(k+(m-l)*2A(4-l)+2A(3-l))=(x0(k+(
7、m-l)*2A(4-l))-t)*exp(-2*lj*pi*(k-l)/(8/2A{l-l)));x0(k+(m-l)*2A(4-l))=xO(k+(m-l)*2A(4-l))+t;endendend»yl=fft(x)»fori=l:8yO(i)=xO(n(i));end»yOyi=Columns1through518.500018.500023.5000+8.0000i1.4749+10.7678i40000-13.5000i-1.5754+7.01041-2.0000iColumns6through8-3.4749+7.2322i-10.0000+
8、3.5000!-16.4246-5.01041yO=Columns1throug
此文档下载收益归作者所有