信号与系统实验指导书 实验十一离散时间系统的响应 一、实验目的 1、学会运用MATLAB函数求解离散时间系统的零状态响应。 2、学会运用MATLAB求解离散时间系统的单位取样响应。 3、学会运用MATLAB卷积求解离散时间系统的零状态响应。 二、实验原理 离散时间LTI系统可用线性常系数差分方程来描述: 含a-2-刀 1、离散系统的时域分析 离散时间系统的时域分析与连续时间系统的时域分析方法相同,只是描述系统使用的数 学工具不同,可以采取与连续系统对比的方法学习。 线性时不变离散时间系统的数学模型为多阶常系统差分方程。已知激励信号和系统的初 始状态,可以采用迭代法或直接求解差分方程的经典法得到系统的输出响应,对于零输入响 应,激励信号为零,描述系统的差分方程为齐次方程,求解齐次方程即可得到零输入响应。 2、离散系统的单位样值响应: 定义:由单位样值信号作用于系统所引起的零状态响应,记作:y(m)=h) 3、零状态响应的求解 零状态响应的求解是以激励信号的时域分解和系统的时不变特性为前提展开的。单位脉 冲信号作用在系统上的零状态响应称为单位脉冲响应。如果已知单位脉冲响应序列作用。在 系统的响应,利用卷积和即可求得任一系统作用在离散LTI系统上的零状态响应。 m)=x(m)*n)=∑xm)hn-m (1)迭代法求解系统响应 例如:m)-a(n-1)=x(n) dn)=ò(n) -1)=0 y(n)=ay(n-1)+x(n) 0)=a(-1)+x(0)=1 )=a0)+x()=a 2)=a0)+x(2)=a3 n)=a
信号与系统实验指导书 -1- 实验十一 离散时间系统的响应 一、实验目的 1、学会运用 MATLAB 函数求解离散时间系统的零状态响应。 2、学会运用 MATLAB 求解离散时间系统的单位取样响应。 3、学会运用 MATLAB 卷积求解离散时间系统的零状态响应。 二、实验原理 离散时间 LTI 系统可用线性常系数差分方程来描述: N k M j k j a y n k b x n j 0 0 ( ) ( ) 1、离散系统的时域分析 离散时间系统的时域分析与连续时间系统的时域分析方法相同,只是描述系统使用的数 学工具不同,可以采取与连续系统对比的方法学习。 线性时不变离散时间系统的数学模型为多阶常系统差分方程。已知激励信号和系统的初 始状态,可以采用迭代法或直接求解差分方程的经典法得到系统的输出响应,对于零输入响 应,激励信号为零,描述系统的差分方程为齐次方程,求解齐次方程即可得到零输入响应。 2、离散系统的单位样值响应: 定义:由单位样值信号作用于系统所引起的零状态响应,记作: y (n) h(n) zs 3、零状态响应的求解 零状态响应的求解是以激励信号的时域分解和系统的时不变特性为前提展开的。单位脉 冲信号作用在系统上的零状态响应称为单位脉冲响应。如果已知单位脉冲响应序列作用。在 系统的响应,利用卷积和即可求得任一系统作用在离散 LTI 系统上的零状态响应。 m y(n) x(n) h(n) x(m)h(n m) (1)迭代法求解系统响应 例如: y(n) ay(n 1) x(n) x(n) (n) y(1) 0 y(n) ay(n 1) x(n) y(0) ay(1) x(0) 1 y(1) ay(0) x(1) a 2 y(2) ay(1) x(2) a . n y(n) a
信号与系统实验指导书 根据起始条件知y(n<O)=0,所以:y(m=a”u(m) 迭代法的最大好处是,几乎任何类型的问题都可以应付,但不易综合通项形式。 (2)单位样值响应求解:单位样值响应所满足的方程形式较特殊,因而对应有专门的 求解方式,此后再利用卷积求响应。 涉及的MATLAB函数 1、impz函数 功能:求离散系统单位序列响应,并绘制其时域波形。 调用格式: ipz(b,a):以默认方式绘出向量a,b定义的离散系统的单位序列响应的波形。 impz(b,a,n):绘出由向量a,b定义的离散系统在0~n(n必须为整数)离散时间范 围内的单位序列响应的时域波形。 impz(b,a,nl:n2):绘出由向量a,b定义的离散系统在nln2(nl,n2必须为整数, 且nl<2)离散时间范围内的单位序列响应的时域波形。 y=impz (b,a,nl:n2):并不绘出系统单位序列响应的时域波形,而是求出向量a,b 定义的离散系统在nl~n2(nl,n2必须为整数,且nl<m2)离散时间范围内的单位序列响 应的数值。 2、filter函数 功能:对输入数据进行数字滤波。 调用格式: y=filter(b,a,x):返回向量a,b定义的离散系统在输入为x时的零状态响应。如果 x是一个矩阵,那么函数filter矩阵x的列进行操作:如果x是一个N维数组,函数filter 对数组中的一个非零量进行操作。 [y,zf]=filter(b,a,x):返回了一个状态向量的最终值zf。 [y,zf]=filter(b,a,x,zi):指定了滤波器的初始状态向量zi。 [y,zf]=filter(b.a,x,ZL,dim)则是给定x中要进行滤波的维数dim。如果要使 用零初始状态,则将21设为空间量。 3.freqz函数 功能:计算离散时间系统的频率响应。 调用格式: [h,l=freqz(b,a):返回向量a,b定义的离散系统频率响应的值与对应的频率 三、实验内容 【例11-1】已知系统差分方程为m)+0.3(n-1)+0.02(n-2)=x(n),其中 x)=Sin子m)(),试用MATLA求解系统的单位样值响应。 在MATLAB中,可以利用控制系统工具箱提供的impz)函数来求解系统的单位样值响应, 其语句格式为 y=impa(b.a.N) 其中,b、a分别为差分方程右端和左端的系数向量,N为单位样值响应的样值个数
信号与系统实验指导书 -2- 根据起始条件知 y(n<0) = 0,所以: y(n) a u(n) n 迭代法的最大好处是,几乎任何类型的问题都可以应付,但不易综合通项形式。 (2)单位样值响应求解:单位样值响应所满足的方程形式较特殊,因而对应有专门的 求解方式,此后再利用卷积求响应。 涉及的 MATLAB 函数 1、impz 函数 功能:求离散系统单位序列响应,并绘制其时域波形。 调用格式: impz(b,a):以默认方式绘出向量 a,b 定义的离散系统的单位序列响应的波形。 impz(b,a,n):绘出由向量 a,b 定义的离散系统在 0~n(n 必须为整数)离散时间范 围内的单位序列响应的时域波形。 impz(b,a,nl:n2):绘出由向量 a,b 定义的离散系统在 nl~n2(nl,n2 必须为整数, 且 nl<n2)离散时间范围内的单位序列响应的时域波形。 y=impz(b,a,nl:n2):并不绘出系统单位序列响应的时域波形,而是求出向量 a,b 定义的离散系统在 nl~n2(nl,n2 必须为整数,且 nl<n2)离散时间范围内的单位序列响 应的数值。 2、filter 函数 功能:对输入数据进行数字滤波。 调用格式: y=filter(b,a,x):返回向量 a,b 定义的离散系统在输入为 x 时的零状态响应。如果 x 是一个矩阵,那么函数 filter 矩阵 x 的列进行操作;如果 x 是一个 N 维数组,函数 filter 对数组中的一个非零量进行操作。 [y,zf]=filter(b,a,x):返回了一个状态向量的最终值 zf。 [y,zf]=filter(b,a,x,zi):指定了滤波器的初始状态向量 zi。 [y,zf] =filter(b.a,x,ZI,dim)则是给定 x 中要进行滤波的维数 dim。如果要使 用零初始状态,则将 zi 设为空间量。 3.freqz 函数 功能:计算离散时间系统的频率响应。 调用格式: [h,wl=freqz(b,a):返回向量 a,b 定义的离散系统频率响应的值与对应的频率 三、实验内容 【 例 11-1 】已知系统差分方程为 y(n) 0.3y(n 1) 0.02y(n 2) x(n) ,其中 ) ( ) 8 x(n) sin( n u n ,试用 MATLA 求解系统的单位样值响应。 在 MATLAB 中,可以利用控制系统工具箱提供的 impz()函数来求解系统的单位样值响应, 其语句格式为 y=impa(b,a,N) 其中,b、a 分别为差分方程右端和左端的系数向量,N 为单位样值响应的样值个数
信号与系统实验指导书 程序如下: a-10.30.021 冲鞋响皮 b=1 impz(b,a,30%冲激响应 xlabel('n); ylabel(h(n)): title(冲激响应) 程序运行后,波形如图111所示。 【例11-2】已知系统差分方程为 yn)+0.3n-1)+0.02y(n-2)=x(n) 图11-1单位样值响应 ,其中m)=si餐(m,试用 MATLA求解系统的零状态响应。 MATLAB中,提供了ilter()函数,用于求解差分方程在指定时间范围内的激励信号所产生 的响应。其语句格式为 y-fiIter(b.a.x) 其中,x为输入激励信号,b、a分别为 差分方程右端和左端的系数向量,y为输 出响应,其长度与激励信号X的长度 样。 程序如下: a=10.30.02 b-1 n=0:30 x=sin(pi*n/8).*DU(n); y=-filter(b,a,x),%零状态响应 stem(n.v) 0 xlabel('n): vlabel('vs(n)): 图11-2零状态响应 title(零状态响应) 程序运行后,波形如图11-2所示。 通过上述两道例题的学习,我们可以采用另外一种方法,分别求解系统的单位样值响应和零 状态响应。单位样值响应为输入激励为)的时候的零状态响应:由于系统的零状态响应 y(m)=x(m)*(n),系统的零状态响应可以利用卷积性质来求解 对上述程序修改如下: -3
信号与系统实验指导书 -3- 程序如下: a=[1 0.3 0.02]; b=[1]; impz(b,a,30); % 冲激响应 xlabel('n'); ylabel('h(n)'); title('冲激响应') 程序运行后,波形如图 11-1 所示。 【 例 11-2 】 已 知 系 统 差 分 方 程 为 y(n) 0.3y(n 1) 0.02y(n 2) x(n) ,其中 ) ( ) 8 x(n) sin(n u n , 试 用 MATLA 求解系统的零状态响应。 MATLAB 中,提供了 filter()函数,用于求解差分方程在指定时间范围内的激励信号所产生 的响应。其语句格式为 y=filter(b,a,x) 其中,x 为输入激励信号,b、a 分别为 差分方程右端和左端的系数向量,y 为输 出响应,其长度与激励信号 x 的长度一 样。 程序如下: a=[1 0.3 0.02]; b=[1]; n=0:30; x=sin(pi*n/8).*DU(n); y=filter(b,a,x);% 零状态响应 stem(n,y) xlabel('n'); ylabel('ys(n)'); title('零状态响应') 程序运行后,波形如图 11-2 所示。 通过上述两道例题的学习,我们可以采用另外一种方法,分别求解系统的单位样值响应和零 状态响应。单位样值响应为输入激励为 (n) 的时候的零状态响应;由于系统的零状态响应 y (n) x(n)*h(n) zs ,系统的零状态响应可以利用卷积性质来求解 对上述程序修改如下: 图 11-1 单位样值响应 图 11-2 零状态响应
信号与系统实验指导书 a[10.30.02 b=1 n=0:30: h=filter(b,a,DT(n)); subplot(211); stem(n.h) xlabel('n); ylabel('h(n)); tie(冲激响应) x=sin(pi*n/8).*DU(n): yS=conv(h,x,%零状态响应的卷积求法 subplot(212) k=0:(length(x)+length(h)-2). stem(k,ys) axis([030-11]) xlabel('n): ylabel('ys(n)). tile(零状态响应的卷积求法) 程序运行后,波形如图11-3所示。 冲激响应 1 0.5 0 0.5 10 20 25 零状态响应的卷积求法 05A 05 图11-3系统单位样值响应及零状态响应的卷积解法 比较上述波形,不难看出,两种方法所求得的响应结果是相同的
信号与系统实验指导书 -4- a=[1 0.3 0.02]; b=[1]; n=0:30; h=filter(b,a,DT(n)); subplot(211); stem(n,h) xlabel('n'); ylabel('h(n)'); title('冲激响应') x=sin(pi*n/8).*DU(n); ys=conv(h,x); %零状态响应的卷积求法 subplot(212) k=0:(length(x)+length(h)-2); stem(k,ys) axis([0 30 -1 1]) xlabel('n'); ylabel('ys(n)'); title('零状态响应的卷积求法') 程序运行后,波形如图 11-3 所示。 比较上述波形,不难看出,两种方法所求得的响应结果是相同的。 图 11-3 系统单位样值响应及零状态响应的卷积解法
信号与系统实验指导书 【例11-3】已知系统差分方程为y(m)+0.3(n-1)+0.02yn-2)=x(m),其中 m)=sin呀mu(m),O)=2、0=l,试用MATA编写程序求解系统响应. 采用数学迭代法求解系统响应。 程序如下: y0=2: y1=1 y(2)(-0.3)*y(1)-0.02y0: for n=3:30 yn)(-0.3)*y(m-1)-0.02*yn-2+sin(pi*n/8)*DU(n: end ys=y0y(1:30 系响虚的 n-030 stem(n,ys) xlabel('n); ylabel('yzs(n)) tie((系统响应yn) grid on 程序运行后,波形如图114所示。 图11-4迭代法求解系统响应 四、实验报告要求 1、已知系统差分方程为(m)-5n-1)+6n-2)=x(m)-3x(n-2),试用M4TLA求解系 统的单位样值响应。 2、已知系统差分方程为m+2yn-1)+3yn-2)=5x(m+6x(n-1),其中 x(n)=(3-n)[u(n)-(n-3】,试用MATLA求解系统的单位单位样值响应及零状态响应。 3、已知系统差分方程为m)+2n-1)=x(m)-x(n-1) x(n)=n2 -1)=-1,试 用MATLA编写程序求解系统响应
信号与系统实验指导书 -5- 【 例 11-3 】 已 知 系 统 差 分 方 程 为 y(n) 0.3y(n 1) 0.02y(n 2) x(n) ,其中 ) ( ) 8 x(n) sin( n u n , y(0) 2 、 y(1) 1,试用 MATLA 编写程序求解系统响应。 采用数学迭代法求解系统响应。 程序如下: y0=2; y(1)=1; y(2)=(-0.3)*y(1)-0.02*y0; for n=3:30 y(n)=(-0.3)*y(n-1)-0.02*y(n-2)+sin(pi*n/8)*DU(n); end ys=[y0 y(1:30)]; n=0:30; stem(n,ys) xlabel('n'); ylabel('yzs(n)') title('系统响应 y(n)') grid on 程序运行后,波形如图 11-4 所示。 四、实验报告要求 1、已知系统差分方程为 y(n) 5y(n 1) 6y(n 2) x(n) 3x(n 2),试用 MATLA 求解系 统的单位样值响应。 2、已知系统差分方程为 y(n) 2y(n 1) 3y(n 2) 5x(n) 6x(n 1) ,其中 x(n) (3 n)[u(n) u(n 3)],试用 MATLA 求解系统的单位单位样值响应及零状态响应。 3、已知系统差分方程为 ( ) 2 ( 1) ( ) ( 1) ( ) ( 1) 1 2 y n y n x n x n x n n y ,试 用 MATLA 编写程序求解系统响应。 图 11-4 迭代法求解系统响应