《数字信号处理实验实验五.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验实验五.docx(20页珍藏版)》请在优知文库上搜索。
1、数字信号处理实验报告实验名称:应用FFT实现信号频谱分析学生姓名:学生学号:学生班级:上课时间:周二上午指导老师:实验目的(1) 能够熟练掌握快速离散傅里叶变换的原理及应用FFT进行频谱分析的根本方法。(2) 对离散傅里叶变换的主要性质及FFT在数字信号处理中的重要作用有进一步的了解。二、实验原理1、离散傅里叶变换(DFT)及其主要性质DFT表示离散信号的离散频谱,DFT的主要性质中有奇偶对称性、虚实特性等。通过实验可以加深理解。实序列的DFT具有偶对称的实部和奇对称的虚部,这可以证明如下:由定义,可得N-Ix(k)=w。”W=ON-I2;TN7y=Xx(n)cos(-kh)-jgx(n)si
2、n(-kn)NTN-IN-IX(N-k)=X()叫,Q=Sm)Ww=Sx%加/1=0n0n=0Xx()COS(彳左)+7x(n)sin(-kn)所以,X(k)=X*(N-k)实序列DFT的这个特性,在本实验中可以通过实指数序列及三角序列看出来。对于单一频率的三角序列来说,它的DFT谱线也是单一的,这个物理意义可以从实验中得到验证,在理论上可以推导如下:M)=S崎网)其DFT为N-I2用,N-I2,IN-I2,.2.l.X(k)=ZM),京=ZSin(萼)丁-JM)J之w=on=oNZj三o1E/-(-1)-(*1)=(erN)ZJW=OIN_I.2_.l从而,X(O)=LE(JR-JN)=O2
3、jZJ=Oz111八一净、N.NX(I)一不(i-e)=-=-j-2jM2j2X(2)=0X(N2)=0X(Nfn)TY以上这串式中X(O)反映了x(n)的直流分量,X(I)是x(n)的一次谐波,又根据虚实特性X*(N-I)=X(1),而其他分量均为零。当周期减少时显然Sin嗡)RnS)的谱只应该在Q3及k=N-3才有分量,实验者可以通过和上述相同的步骤加以理论证明。由于cosp%()与Sin?人()相位差枭所以它的DFT只包括实部而没有虚部,以上这些性质可在本实验中得到验证。2、利用DFT对信号进行频谱分析DFT的重要应用之一是对时域连续信号的频谱进行分析,称为傅里叶分析,时域连续信号离散傅
4、里叶分析的根本步骤如图5-1所示。s,LPF/FDFTfV*)个1卬()图51时域连续信号离散傅里叶分析的处理步骤其中消混叠低通滤波器LPF(预滤波器)的引入,是为了消除或减少时域连续信号转换成序列时可能出现的频谱混叠的影响。实际工作中,时域离散信号x(n)的时宽是很长的甚至是无限长的(例如语音或音乐信号)。由于DFT需要,必须把x(n)限制在一定时间间隔之内,即进行数据截断。数据的截断相当于加窗处理。因此,在计算机x(n)deDFT之前,用一个时域有限的窗函数3(n)加到x(n)上是非常必要的。Xc(t)通过A/。变换器转换成取样序列x(n)一时域离散序列。其频谱用X(e)表示,它的频率3的
5、周期函数,即Xd)=吟+j浮/m=-oo】/其中XCGQ)或(产)为Xc(t)的频谱。在实际应用中,消混叠低通滤波器的阻带不可能是无限衰减的,故由XCGQ)周期延拓得到的X(e)有非零重叠,即出现混叠现象。由于进行DFT的需要,必须对序列x(n)进行加窗处理,即V(II)=X(n)(n)0加窗对频域的影响,用周期卷积表示。V(ej)=X(ejff)W(ej)d2JF最后是进行DFT运算,加窗后的DFT为售-j-nkV(八)=ZU5)eN,okN-lW=O其中假设窗函数长L小于或等于DFT长度No有限长序列v(n)=x(n)3(n)的DFT相当于v(n)傅里叶变换的等间隔取样。V(八)=V(V)
6、I2“&=-kNV(k)便是Sc(t)的离散频率函数。因为DFT频率间隔为红,且模拟频率和数字频率间的关系=T,N所以离散频率点对应的模拟频率为Q=注NT显然频率分辨率AF为三-NT利用DFT计算频谱,只会给频谱例=养或=得Z的频率分量,即频率的取样值,而不可能得到连续的频谱函数。如果在两个离散的谱线之间有一个特别大的频谱分量,就无法检测出来了。为了保持原来频谱形状不变的情况下,使谱线加密,即使频域取样点数增加,从而使原来看不到的频谱分量变得可以看到,可以通过在信号数据的末端补加一些零值点,使DFT计算周期内点数增加,但又不改变原有的记录数据的方法实现。3、快速离散傅里叶变换(FFT)快速离散
7、傅里叶变换是计算离散傅里叶变换的一种快速算法,为了提高运算速度,FFT将DFT的计算逐次分解成较小点数的DFT。按时间抽取FFT算法把输入序列x(n)按其n值为偶数或是奇数分解成越来越短的序列。按频域抽取FFT算法是把输出序列X(k)按其k值是偶数或是奇数来分解成越来越短的序列。三、实验内容(1)实验前学生应认真学习数字信号处理中有关章节的内容,掌握DFT的根本理论和应用FFT计算信号频谱的原理与方法;(2)编写一个调用FFT函数的通用程序,可计算以下三种序列的离散频谱;指数序列:v(n)=(0.9)nu(n);周期为N的余弦序列:V2(n)=cos(-n),且0nN-1;N符合函数序列:V3
8、(n)=O.9sin(n)+0.6sin(n)NN/3(3)计算实指数序列v(n)的N点离散频谱V(k),记录N为不同的2的累次方时的Vl(k)值,并与理论V(*k)进行比拟。(4)计算周期为N的余弦序列V2(n)的N点FFT、2N点FFT及(N+2)点FFT,记录结果并分析说明。(5)信号x(t)=O.15sin(2ct)+sin(2r2t)-0.1sin(2rt),其中力=IHz,力=2Hz,力=3Hz,取样频率为32Hz。编程实现:32点FFT,画出其幅度谱。64点FFT,画出其幅度谱,比拟两者间的差异,思考实际频率与离散频谱图中横坐标k的对应关系。1,书中例5.1MATLAB程序如下:
9、clearallN=100;n=0:N-l;xn=2*sin(0.48*pi*n)+cos(0.52*pi*n);XK=fft(xn,N);magXK=abs(XK);phaXK=angle(XK);subplot(l,2,l);plot(n,xn);xlabel(,n,)5ylabel(,x(n);title(,x(n)N=100,);subplot(l,2,2);k=O:length(magXK)-l;stem(k,magXK,.);xlabel(,k,)5ylabel(,X(n),);title(,X(k)N=100,);执行结果如以下图形所示:(n)N*1002,实验内容第(2)小题i
10、.指数序列:v(n)=(0.9)nu(n)MATLAB程序如下:clearallN=100;n=0:N-l;xn=0.9.n;XK=fft(xn,N);magXK=abs(XK);phaXK=angle(XK);subplot(l,2,l);plot(n,xn);XIabeI(n);ylabel(vl(n);title(,vl(n)N=100,);subplot(l,2,2);k=0:Iength(magXK)-l;stem(k,magXK/.);xlabel(,k)5ylabel(,Vl(n)r);title(,V1(k)N=100,);执行结果如以下图形所示:109876543210 0V
11、1(k) N=IOO50100小题ii .周期为N的余弦序列:V2(n)=cos(-n),且0nN-1NMATLAB程序如下:clearallN=100;n=0:N-l;xn=cos(2*piN*n);XK=fft(xn,N);magXK=abs(XK);phaXK=angle(XK);subplot(1,2,l);plot(n,xn);xlabel(tn)label(,v2(n);title(,v2(n)N=100);subplot(l,2,2);k=OUength(magXK)*l;stem(k,magXK/?);xlabel(,k,)5ylabel(,V2(n);title(,V2(k)
12、N=100,);执行结果如以下图形所示:v2(n)N=WOV2(k)N=100iii .符合函数序列:V3(n)=0.9sin(n)+0.6sin(n)NN/3MATLAB程序如下:clearallN=100;n=0:N-l;xn=0.9*sin(2*piN*n)+0.6*sin(2*piN*3*n);XK=fft(xn,N);magXK=abs(XK);phaXK=angle(XK);subplot(l,2,l);plot(n,xn);XIabeI(n);ylabel(v3(n);title(,v3(n)N=100);subplot(l,2,2);k=0:Iength(magXK)-l;st
13、em(k,magXK/.);xlabel(,k)5ylabel(,V3(n),);title(,V3k)N=100);执行结果如以下图形所示:第(3)小题N=128MATLAB程序如下:clearallN=128;n=0:N-l;xn=0.9.n;XK=fft(xn,N);magXK=abs(XK);phaXK=angle(XK);subplot(1,2,1);plot(n,xn);xlabel(,n,)5ylabel(,vl(n);title(,vl(n)N=128);subplot(l,2,2);k=O:length(magXK)-l;stem(k,magXK,*.*);xlabel(,k
14、,)5ylabel(,Vl(n)r);title(Vl(k)N=128,);执行结果如以下图形所示:v1(n)N=128V1(k)N=128N=64MATLAB程序如下:clearallN=64;n=0:N-l;xn=0.9.n;XK=fft(xn,N);magXK=abs(XK);phaXK=angle(XK);subplot(l,2,l);plot(n,xn);XIabeI(n);ylabel(vl(n);title(,vl(n)N=64,);subplot(l,2,2);k=O:length(magXK)-l;stem(k,magXK,*?);xlabel(,k,)5ylabel(,Vl(n)r);title(Vl(k)N=64);执行结果如以下图形所示: