MATLAB实验报告姓名:李金玮学号:14061114班级:141841111.实验内容本实验通过使用MATLAB函数研究系统的时域特性,以加深对离散时间系统的差分方程、冲击响应和系统的线性和时不变特性的理解.2.基本原理一个离散时间系统是把输入序列变换成输出序列的一种运算.即y(n)=T[x(n)]离散时间系统中最重要、最常用的是“线性时不变系统”。2.1线性系统如果系统在x1(n)和x2(n)输入时的输出分别为y1(n)和y2(n),即y1(n)=T[x1(n)]y2(n)=T[x2(n)]若系统满足T[x1(n)+x2(n)]=T[x1(n)]+T[x2(n)]=y1(n)+y2(n)那么系统满足可加性。若系统满足T[ax(n)]=aT[x(n)]=ay(n)那么系统满足齐次性。这两个性质合在一起,就成为叠加原理。T[a1x1(n)+a2x2(n)]=a1T[x1(n)]+a2T[x2(n)]=a1y1(n)+a2y2(n)2.2时不变系统若输入x(n)的输出为y(n),则将输入序列移动任意位后,其输出序列除了跟着移位外,数值应该保持不变.即T[x(n)]=y(n)则T[x(n-m)]=y(n-m)(m为任意整数)满足以上关系的系统为时不变系统。2.3常系数线性差分方程y(n)=-∑aky(n-k)+∑brx(n-r)当ak=0,k=1,2,…,N时,h(n)是有限长度的,称系统为有限长单位冲击响应(FIR)系统;反之,则称系统为无限长单位冲击响应(IIR)系统.题目:考虑如下差分方程描述的两个离散时间系统:系统1:y(n)=0.5x(n)+0.27x(n-1)+0.77x(n-2)系统2:y(n)=0.45x(n)+0.5x(n-1)+0.45x(n-2)+0.53y(n-1)-0.46y(n-2)%filter是一维数字滤波器使用方法:Y=filter(B,A,X),输入X为滤波前序列,Y为滤波结果序列,B/A提供滤波器系数,B为分子,A为分母整个滤波过程是通过下面差分方程实现的:a(1)*y(n)=b(1)*x(n)+b(2)*x(n-1)+...+b(nb+1)*x(n-nb)-a(2)*y(n-1)-...-a(na+1)*y(n-na)[Y,Zf]=filter(B,A,X,Zi),输入X为滤波前序列,Y为滤波结果序列,B/A提供滤波器系数,B为分子,A为分母,ba也为系统的传递函数输入x(n)=cos(20n/256)+cos(200n/256)0n299(1)编程求上述两个系统的输出,并分别画出系统的输入和输出波形;(2)编程求上述两个系统的冲击响应序列,并画出其波形;(3)若系统的初始状态为零,判断系统2是否为时不变的?是否为线性的?解答程序输入信号和系统一二clearall%closeallsymstm=0:1:299x(t)=cos(20*pi*t/256)+cos(200*pi*t/256)y1(t)=0.5*x(t)+0.27*x(t-1)+0.77*x(t-2)y6(t)=0.45*x(t)+0.5*x(t-1)+0.45*x(t-2)y7(t)=y6(t)+0.53*y6(t-1)-0.46*y6(t-2)y3=y1(m)y5=x(m)y8=y7(m)subplot(4,1,1)plot(m,y5)subplot(4,1,2)plot(m,y3)subplot(4,1,3)plot(m,y8)冲击信号与系统一冲击响应closeall;clc;n=0:1:299;x=zeros(1,300);x(1)=1;subplot(3,1,1)plot(x);a=[0,0,x];b=[0,x,0];c=[x,0,0];y1=0.5*a+0.27*b+0.77*c;subplot(3,1,2)plot(y1);冲击信号与系统二冲击响应通过impz函数实现程序closeall;clc;n=0:1:299;x=cos(20*pi*n/256)+cos(200*pi*n/256);a=[0,0,x];b=[0,x,0];c=[x,0,0];y1=0.5*a+0.27*b+0.77*c;c=[1-0.530.46];d=[00.450.50.45];y2=filter(d,c,x);y3=impz(d,c,300);kl=zeros(1,300);kl(1)=1;subplot(2,1,1)plot(kl);subplot(2,1,2)plot(y3);(3)判断是否时不变closeall;clc;n=0:1:299;x=cos(20*pi*n/256)+cos(200*pi*n/256);c=[1-0.530.46];d=[00.450.50.45];x1=[00x];y1=filter(d,c,x1);y=filter(d,c,x);y2=[00y];t=y2-y1;plot(t);(4)判断是否线性clearallcloseall;clc;n=0:1:299;x=cos(20*pi*n/256)+cos(200*pi*n/256);c=[1-0.530.46];d=[00.450.50.45];x1=cos(20*pi*n/256)x2=cos(200*pi*n/256);y1=filter(d,c,x);y2=filter(d,c,x1)+filter(d,c,x2);m=y2-y1;subplot(2,1,1)plot(n,m);subplot(2,1,2)plot(n,y1,n,y2,'r',n,m)图形可以发现m的值非常小可以认为是由浮点数引起的误差因此m可以认为恒等于0系统二为线性时不变实验心得:通过此次实验我学到了如何使用matlab对离散时间系统的时域特性进行分析,学会了如何用matlab生成单位冲击响应,此次实验较之前的小实验较为综合复杂,同时也是对之前所学内容的回顾与巩固,在编写程序时也发现了自己之前一些表达方式掌握不够,将在接下来的实验中进一步巩固。