离散时间系统的时域特性分析一、实验目的1.通过MATLAB仿真一些简单的离散时间系统。2.研究这些离散时间系统的时域特性。二、实验要求1.学习并调试本章所给的例子。2.回答书后给出的问题。三、实验过程Q1.对M=2,运行程序P2.1,生成输入x[n]=s1[n]+s2[n]的输出信号。输入的x[n]的哪个分量被该离散时间系统抑制?P2.1clf;n=0:100;s1=cos(2*pi*0.05*n);s2=cos(2*pi*0.47*n);x=s1+s2;M=input('滤波器所需长度=');num=ones(1,M);y=filter(num,1,x)/M;subplot(2,2,1);plot(n,s1);axis([0,100,-2,2]);xlabel('时间序号n');ylabel('振幅');title('信号#1');subplot(2,2,2);plot(n,s2);axis([0,100,-2,2]);xlabel('Timeindexn');ylabel('Amplitude');title('信号#2');subplot(2,2,3);plot(n,x);axis([0,100,-2,2]);xlabel('时间序号n');ylabel('振幅');title('输入信号');subplot(2,2,4);plot(n,y);axis([0,100,-2,2]);xlabel('时间序号n');ylabel('振幅');title('输出信号');axis;答:输入信号的高频分量即s2[n]被抑制。Q3.对滤波器长度和正弦信号s1[n]和s2[n]的频率取其他值,运行程序P2.1,算出结果。clf;n=0:100;s1=cos(2*pi*0.06*n);s2=cos(2*pi*0.45*n);x=s1+s2;M=input('滤波器所需长度=');num=[1,1];y=filter(num,1,x)/M;subplot(2,2,1);plot(n,s1);axis([0,100,-2,2]);xlabel('时间序号n');ylabel('振幅');title('信号#1');subplot(2,2,2);plot(n,s2);axis([0,100,-2,2]);xlabel('Timeindexn');ylabel('Amplitude');title('信号#2');subplot(2,2,3);plot(n,x);axis([0,100,-2,2]);xlabel('时间序号n');ylabel('振幅');title('输入信号');subplot(2,2,4);plot(n,y);axis([0,100,-2,2]);xlabel('时间序号n');ylabel('振幅');title('输出信号');axis;Q5用不同频率的正弦信号作为输入信号,计算每个输入信号的输出信号。输出信号是如何受到输入信号频率的影响的?从数学上对你的结论加以证明。clf;n=0:200;x=cos(2*pi*0.05*n);x1=[x00];x2=[0x0];x3=[00x];y=x2.*x2-x1.*x3;y=y(2:202);subplot(2,1,1)plot(n,x)xlabel('时间序号n');ylabel('振幅');title('输入信号')subplot(2,1,2)plot(n,y)xlabel('时间序号n');ylabel('振幅');title('输出信号');分别取f=0.05,f=0.5,f=0.01:f=0.05:f=0.5:f=0.01:证明:设输入信号为nnxcos2,则1cos11nnx以及1cos2nnx故.sinsinsinsincossinsincoscoscossinsincoscossinsincoscoscos222222222223122nnnnnnnnnnnxnxnxnyQ7.运行程序P2.3,对由加权输入得到的y[n]在与相同权系数下输出y1[n]和y2[n]相加得到的yt[n]进行比较,这两个序列是否相等?该系统是线性系统么?P2.3clf;n=0:40;a=2;b=-3;x1=cos(2*pi*0.1*n);x2=cos(2*pi*0.4*n);x=a*x1+b*x2;num=[2.24032.49082.2403];den=[1-0.40.75];ic=[00];y1=filter(num,den,x1,ic);y2=filter(num,den,x2,ic);y=filter(num,den,x,ic);yt=a*y1+b*y2;d=y-yt;subplot(3,1,1)stem(n,y);axis([0,40,-50,50]);ylabel('振幅');title('加权输入:a\cdotx_{1}[n]+b\cdotx_{2}[n]的输出');subplot(3,1,2)stem(n,yt);ylabel('振幅');title('加权输出:a\cdoty_{1}[n]+b\cdoty_{2}[n]');subplot(3,1,3)stem(n,d);xlabel('时间序号n');ylabel('振幅');结果如图:由图看出,,d[n]几乎为0,该仿真结果说明这两个序列相等,该系统是线性系统。Q9.当初始条件非零是重做习题Q7令ic=[2020]结果如图:Q11假定另一个系统为y[n]=x[n]x[n-1],修改程序P2.3,计算这个系统的输出序列y1[n],y2[n]和y[n]。比较y[n]和yt[n]。这两个序列是否相等?该系统是线性系统吗?clf;n=0:40;a=2;b=-3;x1=cos(2*pi*0.1*n);x2=cos(2*pi*0.4*n);x=a*x1+b*x2;x11=[0x10];x12=[00x1];x21=[0x20];x22=[00x2];y1=x11.*x12;y2=x21.*x22;y=(a*x11+b*x21).*(a*x12+b*x22);yt=a*y1+b*y2;d=y-yt;nn=[0n0];subplot(3,1,1)stem(nn,y);axis([040-51]);ylabel('振幅');title('加权输入:a\cdotx_{1}[n]+b\cdotx_{2}[n]的输出');subplot(3,1,2)stem(nn,yt);axis([040-15]);ylabel('振幅');title('加权输出:a\cdoty_{1}[n]+b\cdoty_{2}[n]');subplot(3,1,3)stem(nn,d);xlabel('时间序号n');ylabel('振幅');由图看出d[n]不为0,y[n]与yt[n]两个序列不相等,该系统不是线性系统。Q13采用三个不同的延时变量D的值重做习题Q2.12。clf;n=0:40;D=10;a=3.0;b=-2;x=a*cos(2*pi*0.1*n)+b*cos(2*pi*0.4*n);xd=[zeros(1,D)x];num=[2.24032.49082.2403];den=[1-0.40.75];ic=[00];y=filter(num,den,x,ic);yd=filter(num,den,xd,ic);d=y-yd(1+D:41+D);subplot(3,1,1)stem(n,y);ylabel(‘振幅');title('输出y[n]');grid;subplot(3,1,2)stem(n,yd(1:41));ylabel('振幅');title(['由于延时输入x[n-D]的输出']);grid;subplot(3,1,3)stem(n,d);xlabel('时间序号n');ylabel('振幅');title('差值信号');grid;三个不同的延时D分别为01020:D=0:D=10:D=20:由图看出:无论D为多少,d[n]为0,所以该系统是时不变系统,满足y[n-D]=yd[n]。Q2.15在非零的初始条件下重做习题Q2.12,该系统是时不变系统吗?令ic=[44];仿真结果如下所示:在初始条件不为0情况下,这两个序列不相等,该系统为时变系统Q17考虑另一个系统:y[n]=nx[n]+x[n-1],修改程序P2.4,以仿真上面的系统并确定该系统是否为时不变系统。clf;n=0:40;D=10;a=3.0;b=-2;x=a*cos(2*pi*0.1*n)+b*cos(2*pi*0.4*n);xd=[zeros(1,D)x];nd=0:length(xd)-1;y=(n.*x)+[0x(1:40)];yd=(nd.*xd)+[0xd(1:length(xd)-1)];d=y-yd(1+D:41+D);subplot(3,1,1)stem(n,y);ylabel(‘振幅');title('输出y[n]');grid;subplot(3,1,2)stem(n,yd(1:41));ylabel('振幅');title(['由于延时输入x[n-D]的输出']);grid;subplot(3,1,3)stem(n,d);xlabel('时间序号n');ylabel('振幅');title('差值信号');grid;结果如下:由图看出,d[n]不为0,从仿真结果看,该系统是时变系统Q19运行程序P2.5,生成式(2.15)所给的离散系统的冲激响应。P2.5clf;N=40;num=[2.24032.49082.2403];den=[1-0.40.75];y=impz(num,den,N);%Plottheimpulseresponsestem(y);xlabel('时间序号n');ylabel('振幅');title('冲激响应');grid;结果如下:Q21利用filter命令编写一个MATLB程序,生成式(2.17)给出的因果线性时不变系统的冲激响应,计算并画出前40个的样本。把你的结果和习题Q2.20中得到的结果相比较。clf;N=40;num=[0.9-0.450.350.002];den=[10.71-0.46-0.62];y1=impz(num,den,N);x=[1zeros(1,N+1)];y2=filter(num,den,x);subplot(2,1,1)stem(y1);xlabel('时间序号n');ylabel('振幅');title('冲激响应(impz)');grid;subplot(2,1,2)stem(y2);xlabel('时间序号n');ylabel('振幅');title('冲激响应(filter)');grid;结果如下:两图结果一样。Q23运行程序P2.6,计算输出序列y[n]和y2[n]以及差值信号d[n]。y[n]和y2[n]相等吗?clf;x=[1zeros(1,40)];n=0:40;den=[11.62.281.3250.68];num=[0.06-0.190.27-0.260.12];y=filter(num,den,x);num1=[0.3-0.20.4];den1=[10.90.8];num2=[0.2-0.50.3];den2=[10.70.85];y1=filter(num1,den1,x);y2=filter(num2,den2,y1);d=y-y2;subplot(3,1,1);stem(n,y);ylabel('振幅');title('四阶实现的输出');grid;subplot(3,1,2);stem(n,y2)ylabel('振幅');title('级联实现的输出');grid;subplot(3,1,3);stem(n,d)xlabel('时间序号n');ylabel('振幅');title('差值输出')