《应用FFT实现信号频谱分析(杭电).docx》由会员分享,可在线阅读,更多相关《应用FFT实现信号频谱分析(杭电).docx(5页珍藏版)》请在优知文库上搜索。
1、信号、系统与信号处理实验实验报告实验名称:应用FFT实现信号频谱分析一、实验目的1、能够熟练掌握快速离散傅里叶变换FFT的原理及应用FFT进展频谱分析的基本方法。2、对离散傅里叶变换的主要性质及FFT在数字信号处理中的重要作用有进一步的了解。二、实验内容与要求(2)编写一个调用FFT函数的通用程序,可计算以下三种序列的离散频谱。指数序列:vl(n)=O.9n*u(n);周期为N的余弦序列:v2(n)=cos(2*pi*nN),且OWnWNT复合函数序列:v3(n)=0.9sin(2*pi*nN)+0.6sin(2*pi*n*3N)(3)计算实指数序列vl(n)的N点离散频谱Vl(k),记录N为
2、不同的2的幕次方时的Vl(k)值,并与理论值Vl(ejwk)进展分析比较。(4)计算周期为N的余弦序列v2(n)的N点FFT、2N点FFT及(N+2)点FFT,记录结果并作为分析说明。(5)信号x(t)=0.15sin(2*pi*fl*t)+sin(2*pi*f2*t)-0.Isin(2*pi*f3*t),其中fl=1Hz,f2=2Hz,f3=3Hz,取样频率为32Hz。编程实现:32点FFT,画出其幅度谱。64点FFT,画出其幅度谱,比较两者间的差异,思考实际频率与离散频谱图中横坐标k的对应关系。三、实验程序与结果指数序列:vl(n)=0.9,*u(n);vl(n)的N点离散频谱Vl(k),
3、记录N为不同的2的基次方时的Vl(k)值,并与理论值Vl(ejwk)进展分析比较。clearallN=16;Nl=16;N2=32;N3=64;n=0:N-l;xn=0.9.n;XKl=fft(xn,Nl);magXKl=abs(XKl);phaXKl=angle(XKl);XK2=fft(nzN2);magXK2=abs(XK2);phaXK2=angle(XK2);XK3=fft(xn,N3);magXK3=abs(XK3);phaXK3=angle(XK3);subplot(4,lzl);plot(nzxn);xlabel(n);ylabel(,x(n),);title(,x(n),);
4、subplot(4,lz2);k=O:length(magXKl)-l;stem(k,magXKl);xlabel(k);ylabel(X(k);title(,X(k)Nl=16,);subplot(4zlz3);k=0:length(magXK2)-l;stem(k,magXK2);xlabel(k);ylabel(X(k);title(,X(k)N2=32,);subplot(4,l,4);k=0:length(magXK3)-l;stem(k,magXK3);xlabel(k);ylabel(X(k);title(,X(k)N3=64,);周期为N的余弦序列:v2(n)=cos(2*pi
5、*nN),且OWnWN-1;计算周期为N的余弦序列v2(n)的N点FFT、2N点FFT及(N+2)点FFT,记录结果并作为分析说明。clearallN=20;Nl=20;N2=40;N3=22;n=0:N-l;xn=cos(2*pi*nN);XKl=fft(xn,Nl);magXKl=abs(XKl);phaXKl=angle(XKl);XK2=fft(xnzN2);magXK2=abs(XK2);phaXK2=angle(XK2);XK3=fft(nzN3);magXK3=abs(XK3);phaXK3=angle(XK3);SUbPlot(4,1,1);plot(n,xn);xlabel(
6、n);ylabel(,x(n),);title(,x(),);subplot(4,lz2);k=O:length(magXKl)-l;stem(k,magXKl);xlabel(k);ylabel(X(k);title(,X(k)N=20);subplot(4,l,3);k=0:length(magXK2)-l;stem(k,magK2);xlabel(k);ylabel(X(k);title(,X(k)N=40);subplot(4zlz4);k=0:length(magXK3)-l;stem(k,magXK3);xlabel(k);ylabel(X(k);title(,X(k)N=22);
7、复合函数序列:v3(n)=0.9sin(2*pi*nN)+0.6sin(2*pi*n*3N)clearallN=40;n=0:N-l;xn=0.9*sin(2*pi.*nN)+0.6*sin(2*pi*n*3N);XK=fft(xn,N);magXK=abs(XK);phaXK=angle(XK);subplot(l,2zl);stem(nzxn);xlabel(n);ylabel(,x(n),);title(x(n)N=40,);SUbPlot(1,2,2);k=O:length(magXK)-l;stem(k,magXK);xlabel(k);ylabel(X(k);title(,X(k)
8、N=40,);信号x(t)=0.15sin(2*pi*fl*t)+sin(2*pi*f2*t)-0.Isin(2*pi*f3*t),其中fl=lHz,f2=2Hz,f3=3Hz,取样频率为32Hz。32点FFT,画出其幅度谱。64点FFT,画出其幅度谱,比较两者间的差异,思考实际频率与离散频谱图中横坐标k的对应关系。clearallN=32;Nl=32;N2=64;n=O:N-l;t=nN;xn=0.15*sin(2*pi*t)+sin(4*pi*t)-0.1*sin(6*pi*t);XKl=fft(xn,Nl);magXKl=abs(XKl);phaXKl=angle(XKl);XK2=ff
9、t(xn,N2);magXK2=abs(XK2);phaXK2=angle(XK2);SUbPIOt(3,1,1);stem(nzxn);xlabel(n);ylabel(,x(n),);title(,x(n),);SUbPIot(3,1,2);k=O:length(magXKl)-l;stem(k,magKl);xlabel(k);ylabel(X(k);title(,X(k)32,);SUbPlot(3,1,3);k=0:length(magXK2)-l;stem(k,magK2);xlabel(,k);ylabel(X(k);title(,X(k)64,);四、仿真结果分析从上面32点F
10、FT的频谱图中,可以看到6条谱线,其中后三条为前面对称的,即真正的分量有三个,对应原信号的三个频率。可以看出当频域取样点数增加后,可以使得原来看不见的频谱分量变得可以看得到。假设对序列后面补零,也能看到之前看不到的频谱分量。可以通过增加抽样点数N,选择适宜的窗函数来加以解决频谱混叠和频率泄漏。五、实验问题解答与体会1、利用DFT对连续信号进展傅里叶分析可能造成哪些误差以及造成这些误差的原因在运用DFT进展频谱分析的时候可能有三种误差:(1)混淆现象:序列的频谱是采样信号频谱的周期延拓,当采样速率不满足NyqUiSt定理,经过采样就会发生频谱混淆。(2)泄露现象:实际中的信号序列往往很长,甚至是无线长序列。用截短的序列使用较短的DFT来对信号进展频谱分析。这种截短等价于给原始信号序列乘以一个矩形窗函数,而矩形窗函数的频谱不是有限带宽的,从而它和原信号的频谱进展卷积以后会扩展原信号的频谱。(3)栅栏效应:因为DFT是对单位圆上Z变换的均匀采样,所以它不可能将频谱视为一个连续函数。这样就产生了栅栏效应。2、实验心得与体会通过本次实验,我理解了快速离散傅里叶变换FFT的原理及应用FFT进展频谱分析的基本方法。而且对离散傅里叶变换的主要性质及FFT在数字信号处理中的重要作用有进一步的了解。