(完整版)离散LSI系统的时域分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
. 实验二:离散LSI 系统的时域分析
一、实验内容
1.知描述某离散LSI 系统的差分方程为2y(n)-3y(n-1)+y(n-2)=x(n-1),分别用impz 和dstep 函数、filtic 和filter 函数两种方法求解系统的单位序列响应和单位阶跃响应。
用impz 和dstep 函数求解系统的单位序列响应和单位阶跃响应如下 a=[1,-3/2,1/2]; b=[0,1/2,0]; 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)]);
课程名称 数字信号 实验成绩 指导教师 实 验 报 告
系统的单位序列响应h (n )
n
系统的单位阶跃响应
g (n )
n
用函数filtic 和filter 求解离散系统的单位序列响应和单位阶跃
解:x01=0;y01=0; a=[1,-3/2,1/2]; b=[1/2,0,0]; 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)]);
10
20
30
0.55
0.60.65
0.70.750.80.85
0.9
0.951
1.05系统的单位序列响应
h (n )
n
系统的单位阶跃响应
g (n )
n
2.写程序描绘下列序列的卷积波形:
(1)f 1(n)=u(n),f 2(n)=u(n-2), (0≤n<10) n1=0:10; nt=length(n1); f1=ones(1,nt); n2=2:12; nt=length(n2); f2=ones(1,nt);
[y,ny]=convu(f1,n1,f2,n2); subplot(2,2,1);stem(n1,f1); subplot(2,2,2);stem(n2,f2); subplot(2,1,2);stem(ny,y); 定义函数文件调用部分: function[y,ny]= convu(f1,n1,f2,n2) nys=n1(1)+n2(1);nyf=n1(end)+n2(end); y=conv(f1,f2);ny=nys:nyf;
5
10
5
10
15
00.20.40.60.81
(2)x(n)=sin(n/2),h(n)=(0.5)n
(-3≤n ≤4П)
n1=-3:4*pi; f1=0.8.^n1; f2=sin(n2/2);
[y,ny]=convu(f1,n1,f2,n2); subplot(2,2,1);stem(n1,f1); subplot(2,2,2);stem(n2,f2);
subplot(2,1,2);stem(ny,y); 定义函数文件调用部分: function[y,ny]= convu(f1,n1,f2,n2) nys=n1(1)+n2(1);nyf=n1(end)+n2(end); y=conv(f1,f2);ny=nys:nyf;
-505101500.511.5
2
-1-0.500.51
-4-20246
3.知某离散LSI 系统的单位序列响应为
h(n)=3δ(n-3)+0.5δ(n-4)+0.2δ(n-5)+0.7δ(n-6)-0.8δ(n-7)
求输入为x(n)=e -0.5n u(n)时的系统响应。
N=16;
n=0:N-1;
x=exp(-0.5*n);
subplot(2,2,1);stem(n,x);
a=1;
b=[0,0,0,3,0.5,0.2,0.7,0.8];
hn=impz(b,a,n);
subplot(2,2,2);stem(n,hn)
y=conv(x,hn);
subplot(2,1,2);stem(y);
4.描述某离散LSI系统的差分方程为y(n)=0.7y(n-1)+2x(n)-x(n-2),求输入为x(n)=u(n-3)时的系统响应。
N=16;n1=3:N+2;
f1=[zeros(1,3),ones(1,(N-3))];
subplot(2,2,1);stem(n1,f1);
a=[1,0,-0.7,0];
b=[2,0,-1,0];
f2=impz(b,a,n1);
subplot(2,2,2);stem(n1,f2);
[y,ny]=convu(f1,n1,f2,n1);
subplot(2,1,2);stem(ny,y);
定义函数文件调用部分:
function[y,ny]= convu(f1,n1,f2,n2)
nys=n1(1)+n2(1);nyf=n1(end)+n2(end); y=conv(f1,f2);ny=nys:nyf;
00.20.40.6
0.8
10
0.10.2
0.30.4
00.20.40.60.81
二、思考题答案
思考本实验提出的有关MATLAB 函数在调用时应注意哪些问题。
调用自定意函数时 按照以下代码
在自定义函数的取值不是从0开始时 就引用一下函数: function[y,ny]=convu(h,nh,x,nx) nys=nh(1)+nx(1);nyf=nh(end)+nx(end); y=conv(h,x);ny=nys:nyf; 里面的变量要一一对应 代码写到function 的文件里面 调用时convu 与文件命名一致!
三、实验小结
(1)遇到问题及解决方法
注意函数的定义 出现问题及时问老师
(2)学到的新的函数及其用法
由离散时间系统的时域分析方法可知,一个离散LSI 系统的响应与激励可以用如下框图表示:
其输入
2、用函数impz 和dstep 求解离散系统的单位脉冲响应和单位阶跃响应。
、输出关系可用以下差分方程描述:
[][]N
M
k
k k k a
y n k b x n m ==-=-∑∑
3、用函数filtic 和filter 求解离散系统的单位序列响应和单位阶跃响应。
4、用MATLAB 实现线性卷积 1)用函数conv 进行卷积运算:
求解两个序列的卷积和,关键在于如何确定卷积结果的时宽区间。
MATLAB 提供的求卷积函数conv 默认两个序列的序号均从n=0开始,卷积结果y 对应的序列的序号也从n=0开始。
2)非零起始序列的卷积运算:
当两个序列不是从0开始时,必须对conv 函数稍加扩展。
由卷积原理可知,若待卷积的两个序列序号分别为{x(n);nx=nxs:nxf},{h(n);nh=nhs:nhf},则卷积和y(n)的序号起点和终点分别为:nys=nxs+nhs ,nyf=nxf+nhf 。
据此可定义通用卷积函数convu :
function[y,ny]=convu(h,nh,x,nx) nys=nh(1)+nx(1);nyf=nh(end)+nx(end); y=conv(h,x);ny=nys:nyf;
3)卷积积分的动态过程
5、离散LSI系统时域响应的求解:
MATLAB提供了多种方法求解离散LSI系统的响应:
1)用conv函数进行卷积积分,求任意输入的系统零状态响应;2)用dlsim函数求任意输入的系统零状态响应;
3)用filtic和filter函数求任意输入的系统完全响应。