1、1.1 市场与市场营销市场与市场营销1.2 我国汽车市场的发展与现状我国汽车市场的发展与现状复习思考题复习思考题实验6 离散LSI系统的时域响应一、实验目的一、实验目的(1)加深对离散LSI系统时域特性的认识。(2)掌握MATLAB求解离散时间系统响应的基本方法。(3)了解MATLAB中求解系统响应的子函数及其应用方法。二、实验涉及的二、实验涉及的MATLAB子函数子函数dlsim功能:功能:求解离散系统的响应。调用格式:调用格式:ydlsim(b,a,x);求输入信号为x时系统的响应。说明:说明:b和a分别表示系统函数H(z)中,由对应的分子项和分母项系数所构成的数组。三、实验原理三、实验原
2、理1.离散离散LSI系统时域响应的求解方法系统时域响应的求解方法在实验4中我们已经讨论过,一个线性移不变离散系统可以用线性常系数差分方程(式(4-1)表示,也可以用系统函数(式(4-2)表示。无论是差分方程还是系统函数,一旦式中的系数bm和ak的数据确定了,则系统的性质也就确定了。因此,在程序编写时,往往只要将系数bm和ak列写成数组,然后调用相应的处理子函数,就可以求出系统的响应。对于离散LSI系统的响应,MATLAB为我们提供了多种求解方法:(1)用conv子函数进行卷积积分,求任意输入的系统零状态响应(见实验5)。(2)用dlsim子函数求任意输入的系统零状态响应。(3)用filter和
3、filtic子函数求任意输入的系统完全响应。本实验重点介绍(2)、(3)两种方法。2.用用dlsim子函数求子函数求LSI系统对任意输入的响应系统对任意输入的响应对于离散LSI系统任意输入信号的响应,可以用MATLAB提供的仿真dlsim子函数来求解。例例6-1 已知一个IIR数字低通滤波器的系统函数公式为输入两个正弦叠加的信号序列341321z0.20407z0.60439z0.343191z0.1321z0.3963z0.39630.1321H(z)n)sin(1031)2nsin(x求该系统的响应。编写MATLAB程序如下:nx0:8*pi;xsin(nx/2)sin(10*nx)/3;
4、%产生输入信号序列subplot(3,1,1);stem(nx,x);a1,0.34319,0.60439,0.20407;%输入系统函数的系数b0.1321,0.3963,0.3963,0.1321;nh0:9;himpz(b,a,nh);%求系统的单位冲激响应subplot(3,1,2);stem(nh,h);ydlsim(b,a,x);%求系统的响应subplot(3,1,3);stem(y);程序执行的结果如图6-1所示。从系统的输出响应y(n)可以看出,原输入序列中的高频信号部分通过低通滤波器后已被滤除,仅剩下频率较低的sin(n/2)分量。图6-1 例6-1x(n)、h(n)、y(
5、n)的波形3.用用filtic和和filter子函数求子函数求LSI系统对任意输入系统对任意输入的响应的响应filtic和filter子函数采用递推法进行系统差分方程的求解,可以用于求解离散LSI系统对任意输入的完全响应。在实验4中,当输入信号为单位冲激信号或单位阶跃信号时,求得的响应即为系统的单位冲激响应或单位阶跃响应。本实验则使用任意输入序列x(n),求系统的完全响应。例例6-2 已知一个LSI系统的差分方程为y(n)0.9y(n1)x(n)0.9x(n1)满足初始条件y(1)0,x(1)0,求系统输入为x(n)e0.05j0.4nu(n2)时的响应y(n)。解解 将上式整理后得到:y(n
6、)0.9y(n1)x(n)0.9x(n1)由上式可列写出其bm和ak系数。编写MATLAB程序如下:a1,0.9;%输入差分方程的系数b1,0.9;x010;y010;%输入初始条件xifiltic(b,a,x01,y01);%计算初始状态N40;n0:N1;x(exp(0.05j*0.4)*n).*n2;%建立输入信号x(n)yfilter(b,a,x,xi);%求系统的完全响应subplot(2,2,1),stem(n,real(x);title(输入信号x(n)的实部);subplot(2,2,2),stem(n,imag(x);title(输入信号x(n)的虚部);subplot(2,
7、2,3),stem(n,real(y);title(系统响应y(n)的实部);subplot(2,2,4),stem(n,imag(y);title(系统响应y(n)的虚部);结果如图6-2所示。注意:由于输入信号是一个复指数信号,作图时应分别表示。图6-2 例6-2x(n)和y(n)的实部、虚部波形例例6-3 已知一个系统的差分方程为y(n)1.5y(n1)0.5y(n2)x(n)n0满足初始条件y(1)=4,y(2)=10,用filtic和filter子函数求系统输入为x(n)=(0.25)nu(n)时的零输入、零状态以及完全响应。解解为了更深入地理解filtic和filter子函数的用途
8、,我们对上述方程进行推导,可得到完全响应的公式为 u(n)32u(n)413121y(n)nn在使用filtic和filter子函数进行系统差分方程的求解时,我们同时将上面推导出的公式也编入程序,与MATLAB子函数计算的结果进行比较。编写MATLAB程序如下:a1,1.5,0.5;%输入系统a、b系数b1;N20;n0:N1;x0.25.n;%建立输入信号x(n)x0zeros(1,N);%建立零输入信号y014,10;%输入初始条件xifiltic(b,a,y01);%计算初始状态y0filter(b,a,x0,xi);%求零输入响应xi0filtic(b,a,0);%计算初始状态为零的情
9、况y1filter(b,a,x,xi0);%求零状态响应yfilter(b,a,x,xi);%求系统的完全响应%用公式求完全响应y2(1/3)*(1/4).n(1/2).n(2/3).*ones(1,N);subplot(2,3,1),stem(n,x);title(输入信号x(n);subplot(2,3,2),stem(n,y0);title(系统的零输入响应);subplot(2,3,3),stem(n,y1);title(系统的零状态响应);subplot(2,2,3),stem(n,y);title(用filter求系统的完全响应y(n);subplot(2,2,4),stem(n,
10、y2);title(用公式求系统的完全响应y(n);程序执行的结果如图6-3所示。图6-3 例6-3x(n)和系统零输入、零状态和完全响应的波形四、实验任务四、实验任务(1)输入并运行例题程序,理解每一条语句的意义。(2)一个LSI系统的差分方程表示式为y(n)0.5y(n1)y(n6)0.5y(n7)x(n)x(n1)x(n2)满足初始条件y(1)0,x(1)0,试用dlsim和filter两种方法求此系统的输入序列x(n)为下列信号时的响应:x(n)u(n3)x(n)d(n)d(n5)x(n)e0.1nu(n3)x(n)(0.5)nu(n)说明:说明:可以在同一段程序中将4个小题的x(n)
11、分别输入,用dlsim和filter两种方法求输出,同时显示采用不同子函数处理后的输出结果y(n)。(3)一个LSI系统的系统函数表示式为满足初始条件y(1)5,y(2)5,试用filtic和filter子函数求此系统的输入序列x(n)为下列信号时的零输入、零状态以及完全响应:x(n)d(n3)x(n)R5(n)321321z0.0359244z0.495684z0.6020121z0.187632z0.241242z0.2412420.187632H(z)x(n)0.6nu(n3)n103sinn32cosx(n)五、实验预习五、实验预习(1)认真阅读实验原理部分,掌握MATLAB求解离散时间系统响应的基本方法,了解求解系统响应的子函数及其应用方法。(2)读懂实验原理部分的有关例题,根据实验任务,编写实验程序。(3)预习思考题:MATLAB中提供的dlsim和filter两种方法,使用中有何不同?六、实验报告六、实验报告(1)列写已调试通过的实验任务程序,打印或描绘实验程序产生的曲线图形。(2)思考题:回答预习思考题。MATLAB中提供了哪些求解离散LSI系统时域响应的方法及相关子函数?