班级学号姓名实验三离散时间系统的频域分析一、实验目的(1)了解DFS、DFT与DTFT的联系;加深对FFT基本理论的理解;掌握用MATLB语言进行傅里叶变换时常用的子函数;(2)了解离散系统的零极点与系统因果性和稳定性的关系;加深对离散系统的频率响应特性基本概念的理解;熟悉MATLAB中进行离散系统零极点分析的常用子函数;掌握离散系统幅频响应和相频响应的求解方法。二、实验内容1.已知离散时间系统函数为432143213.07.05.11.112.01.03.01.02.0zzzzzzzzzH求该系统的零极点;画出零极点分布图(提示:用zplane实现);判断系统的因果、稳定性。程序代码:a=[0.20.10.30.10.2];b=[1-1.11.5-0.70.3];r1=roots(a)%求分子多项式的根,即系统的零点r2=roots(b)%求分母多项式的根,即系统的极点figure(1)zplane(a,b);%调用zplane函数画零极点图运行结果:r1=-0.5000+0.8660i-0.5000-0.8660i0.2500+0.9682i0.2500-0.9682ir2=0.2367+0.8915i0.2367-0.8915i0.3133+0.5045i0.3133-0.5045i由图像可知该系统的全部极点都在单位圆内,所以该系统因果稳定。2.已知离散时间系统的系统函数为432143213.07.05.11.112.01.03.01.02.0zzzzzzzzzH求该系统在π~0频率范围内的幅频响应、相频响应。(提示:用freqz实现)程序文件:a=[0.20.10.30.10.2];b=[1-1.11.5-0.70.3];[h,w]=freqz(a,b);c=abs(h);%取幅度d=angle(h);%取相角figure(1)subplot(2,1,1)plot(w,c);%画幅频特性曲线title('幅频特性曲线');subplot(2,1,2)plot(w,d);%画相频特性曲线title('相频特性曲线');运行结果:3.已知301,2,4,8nnx,画出由离散时间傅里叶变换求得的幅度谱jjeargeXX和图形。(提示:根据DTFT定义编写程序或者用freqz实现)程序代码:xn=[8,4,2,1];N=length(xn);%求xn的长度n=0:N-1;%确定n的范围k=0:N-1;%确定k的范围Xk=xn*exp(-j*2*pi/N).^(n'*k);%求xn的离散时间傅里叶变换Xksubplot(2,1,1),stem(n,abs(Xk));%画离散时间傅里叶变换后的幅度谱title('离散时间傅里叶变换后的幅度谱');subplot(2,1,2),stem(n,angle(Xk));%画离散时间傅里叶变换后的相位谱title('离散时间傅里叶变换后的相位谱');运行结果:4.已知周期序列的主值301,2,4,8nnx,求nx周期重复次数为4次时的DFS。要求画出原主值和周期序列信号,并画出序列傅里叶变换对应的kXkX~arg~和图形。程序代码:xn1=[8421];xn=[xn1xn1xn1xn1];%周期重复4次a=0:length(xn1)-1;%a的取值为0到3N=length(xn);%求周期重复后的长度n=0:N-1;k=0:N-1;Xk=xn*exp(-j*2*pi/N).^(n'*k);%求周期重复后的序列的DFSsubplot(2,2,1),stem(a,xn1);%画原序列title('原主值序列');subplot(2,2,2),stem(n,xn);%画周期重复后的序列title('周期重复后的序列');subplot(2,2,3),stem(n,abs(Xk));%画序列傅里叶变换后的幅度谱'title('序列傅里叶变换后的幅度谱');subplot(2,2,4),stem(n,angle(Xk));%画序列傅里叶变换后的相位谱title('序列傅里叶变换后的相位谱');运行结果:5.已知序列301,2,4,8nnx,700,0,0,0,1,2,4,8nng,700,1,0,2,0,4,0,8nny,701,2,4,8,1,2,4,8nnh,求nx、g(n)、y(n)、h(n)的DFT。要求:(1)画出各DFT的幅频特性和相频特性图(包括kXkXarg和、kGkGarg和、kYkYarg和、kHkHarg和图形);(提示:可考虑用FFT计算DFT;幅频特性用abs函数;相频特性用angle函数);(2)比较四种信号的频谱,并且与第4题比较,看能得出什么结论?(1)程序代码:xn=[8421];gn=[84210000];yn=[80402010];hn=[84218421];y1=fft(xn);%求xn的ffty2=fft(gn);%求gn的ffty3=fft(yn);%求yn的ffty4=fft(hn);%求hn的ffta1=length(xn);b1=0:a1-1;a2=length(gn);b2=0:a2-1;a3=length(yn);b3=0:a3-1;a4=length(hn);b4=0:a4-1;subplot(2,4,1),stem(b1,abs(y1));%画X(k)的幅频特性title('X(k)幅频特性');subplot(2,4,2),stem(b1,angle(y1));%画X(k)的相频特性title('X(k)相频特性');subplot(2,4,3),stem(b2,abs(y2));%画G(k)的幅频特性title('G(k)幅频特性');subplot(2,4,4),stem(b2,angle(y2));%画G(k)的相频特性title('G(k)相频特性');subplot(2,4,5),stem(b3,abs(y3));%画Y(k)的幅频特性title('Y(k)幅频特性');subplot(2,4,6),stem(b3,angle(y3));%画Y(k)的相频特性title('Y(k)相频特性');subplot(2,4,7),stem(b4,abs(y4));%画H(k)的幅频特性title('H(k)幅频特性');subplot(2,4,8),stem(b4,angle(y4));%画H(k)的相频特性title('H(k)相频特性');运行结果:(2)比较后可得:G(K)与X(K)的频谱是相对应的,G(K)比X(K)频谱间隔小,谱线密;Y(K)是X(K)的重复,改变了对信号的取样频率,H(K)与X(K)相比,改变了谱线间隔及谱线的比例。6.已知系统单位脉冲响应为1902.0sin5.0cosnnnnh,如果输入为902.0expnnnx,求系统输出ny。(提示:可考虑用FFT和conv两种方式)程序代码:(1)用FFT实现:n1=0:19;hn=cos(0.5*n1)+sin(0.2*n1);n2=0:9;xn=exp(0.2*n2);n=0:28;y1=fft(hn,29);y2=fft(xn,29);y=y1.*y2;yn=ifft(y);subplot(3,1,1),stem(n1,hn);title('系统单位脉冲响应h(n)');subplot(3,1,2),stem(n2,xn);title('系统输入x(n)');subplot(3,1,3),stem(n,yn);title('系统输出y(n)');(2)用conv实现:n1=0:19;hn=cos(0.5*n1)+sin(0.2*n1);n2=0:9;xn=exp(0.2*n2);y=conv(hn,xn);n=0:28;subplot(3,1,1),stem(n1,hn);title('系统单位脉冲响应h(n)');subplot(3,1,2),stem(n2,xn);title('系统输入x(n)');subplot(3,1,3),stem(n,y);title('系统输出y(n)');运行结果:三、思考题1.离散序列的周期重复次数对信号的幅度谱有何影响?答:离散序列的周期重复次数改变信号幅度谱的谱线间隔及谱线的比例。2.z变换、DTFT、DFS及DFT之间有什么关系?答:DTFT是z变换X(z)在z平面单位圆上的连续取值,频谱是连续的函数;DFT是DTFT的等间隔采样,采样间隔2π/N,是z变换X(z)在z平面单位圆上N等间隔采样点的值,频谱是离散的;DTS可以看做DTFT时域的周期延拓,周期延拓信号的频谱是原频谱的等间隔采样。3.离散傅里叶级数与连续性周期信号的傅里叶级数有何区别?离散周期序列的频谱有何特点?答:离散傅里叶级数可以看做是连续性周期信号的傅里叶级数在时域的进行等间隔采样,采样以后的频谱是原频谱的周期延拓。离散周期序列的频谱是连续的。4.使用MATLAB语言提供的快速傅里叶变换有关子函数进行有限长和无限长序列频谱分析时需注意哪些问题?答:使用MATLAB语言提供的快速傅里叶变换函数Y=fft(x,n)可以对x求n点的fft。当x的长度小于n时,则在x的末尾补零,当x的长度大于n时,截断x序列。当x为矩阵时,可以以同样的方式调整x的列长度。5.因果稳定的离散系统必须满足的充分必要条件是什么?系统函数零极点的位置与系统冲激响应有何关系?对系统的幅度响应有何影响?答:因果稳定的离散系统必须满足的充分必要条件是:系统函数H(z)必须从单位圆到∞的整个z区域内收敛。系统函数极点决定系统冲激响应的形式,而零点无影响。在极点的频率值附近,幅度出现峰值,极点越靠近单位圆,峰值越尖锐。而在零点的频率值附近,幅度出现谷点,零点在单位圆上的谷点为零值。6.利用MATLAB如何求解离散系统的幅频响应和相频响应?答:先调用freqz()函数计算系统的频率响应,然后利用abs()和angle()函数求出幅度和相位,再调用polt函数画出系统的幅频响应和相频响应曲线。四、实验总结(1)使用FFT时应注意序列的长度L,若x(n)的长度为N1,h(n)长度为N2,则L=N1+N2-1。(2)调用zplane(a,b)函数画零极点图时,应注意a,b分别为分子分母多项式的系数。(3)因果稳定的离散系统必须满足的充分必要条件是:系统函数H(z)必须从单位圆到∞的整个z区域内收敛。即当系统的全部极点都在单位圆内,该系统因果稳定。(4)求解离散系统的幅频响应和相频响应时先调用freqz()函数计算系统的频率响应,然后利用abs()和angle()函数求出幅度和相位,再调用polt函数画出系统的幅频响应和相频响应曲线。