实 验 报 告
课程名称 数字信号处理 实验成绩 指导教师 ***
院系 班级
学号 姓名 日期
实验2 离散LSI系统的时域分析
一、.实验目的:
1、加深对离散系统的差分方程、单位脉冲响应、单位阶跃响应和卷积分析方法的理解。
2、初步了解用MATLAB语言进行离散时间系统时域分析的基本方法。
3、掌握求解离散时间系统的单位脉冲响应、单位阶跃响应、线性卷积以及差分方程的程序的编写方法,了解常用子函数的调用格式。
二、实验原理:
1、离散LSI系统的响应与激励
由离散时间系统的时域分析方法可知,一个离散LSI系统的响应与激励可以用如下框图表示:
x[n]y[n]Discrete-timesystmeNM
其输入、输出关系可用以下差分方程描述:
?ak?0ky[n?k]??bkx[n?m]
k?02、用函数impz和dstep求解离散系统的单位脉冲响应和单位阶跃响应。
例2-1 已知描述某因果系统的差分方程为6y(n)+2y(n-2)=x(n)+3x(n-1)+3x(n-2)+x(n-3) 满足初始条件y(-1)=0,x(-1)=0,求系统的单位脉冲响应和单位阶跃响应。
解: 将y(n)项的系数a0进行归一化,得到
y(n)+1/3y(n-2)=1/6x(n)+1/2x(n-1)+1/2x(n-2)+1/6x(n-3)
分析上式可知,这是一个3阶系统,列出其bk和ak系数: a0=1, a,1=0, a,2=1/3, a,3=0 b0=1/6,b,1=1/2, b,2=1/2, b,3=1/6
程序清单如下: a=[1,0,1/3,0]; b=[1/6,1/2,1/2,1/6]; N=32; n=0:N-1; hn=impz(b,a,n); gn=dstep(b,a,n);
subplot(1,2,1);stem(n,hn,'k');
title('系统的单位序列响应'); ylabel('h(n)');xlabel('n');
axis([0,N,1.1*min(hn),1.1*max(hn)]); subplot(1,2,2);stem(n,gn,'k'); title('系统的单位阶跃响应'); ylabel('g(n)');xlabel('n');
axis([0,N,1.1*min(gn),1.1*max(gn)]); 程序运行结果如图2-1所示:
系统的单位序列响应1.20.51.10.410.90.30.8h(n)系统的单位阶跃响应0.2g(n)0.70.60.10.500.40.30.2010n2030010n2030-0.1
图2-1
3、用函数filtic和filter求解离散系统的单位序列响应和单位阶跃响应。
例2-2 已知描述某因果系统的差分方程为6y(n)-2y(n-4)=x(n)-3x(n-2)+3x(n-4)-x(n-6),满足初始条件y(-1)=0,x(-1)=0,求系统的单位脉冲响应和单位阶跃响应。时间轴上N取32点。
注意:原式非标准形式,必须化为标准形式后再列出系数b,a。 程序清单如下: x01=0;y01=0; a=[1,0,0,0,-1/3,0,0];
b=[1/6,0,-1/2,0,1/2,0,-1/6]; N=32;n=0:N-1; xi=filtic(b,a,0); x1=[n==0]; hn=filter(b,a,x1,xi); x2=[n>=0]; gn=filter(b,a,x2,xi); subplot(1,2,1);stem(n,hn,'k'); title('系统的单位序列响应'); ylabel('h(n)');xlabel('n');
axis([0,N,1.1*min(hn),1.1*max(hn)]); subplot(1,2,2);stem(n,gn,'k'); title('系统的单位阶跃响应'); ylabel('g(n)');xlabel('n');
axis([0,N,1.1*min(gn),1.1*max(gn)]); 程序运行结果如图2-2所示:
系统的单位序列响应0.60.40.2)n(h0-0.2-0.40102030n系统的单位阶跃响应0.20.10-0.1-0.2-0.30102030ng(n)