matlab求解零状态零输入响应
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 已知离散时间系统的差分方程为:
2y(n) - y(n-1) - 3y(n-2)=2x(n) - x(n-1)
x(n)=0.5n u(n) , y(-1)=1,y(-2)=3 , 试用filter函数求系统的零输入响应、零状态响应和全响
应.
%第二章Z变换第2.12题程序
clear all;close all;
num=[2 -1 0]; %系统函数分子的系数
den=[2 -1 -3]; %系统函数分母的系数
n=0:50;
nl=length(n);
%求零输入响应
y01=[1 3]; %y的初始状态
x01=[0 0]; %x 的初始状态
x1=zeros(1,nl);
zi1=filtic(num,den,y01,x01); %为filter函数准备初始值
y1=filter(num,den,x1,zi1); %求零输入响应
subplot(311);
stem(n,y1,'r.');
title('零输入响应');
grid on;
%求零状态响应
y02=[0 0];
x02=[0 0];
x2=0.5.^n;
zi2=filtic(num,den,y02,x02);
y2=filter(num,den,x2,zi2);
subplot(312);
stem(n,y2,'r.');
title('零状态响应');
grid on;
%求全响应
y03=[1 3];
x03=[0 0];
x3=0.5.^n;
zi3=filtic(num,den,y03,x03);
y3=filter(num,den,x1,zi3);
subplot(313);
stem(n,y3,'r.');
title('全响应');
grid on;
运行结果如下:
2. 已知离散系统的系统函数分别为
(1)
2
3
21
()
21
z z
H z
z
--
=
-
(2)
3
1
()
1
z
H z
z
+
=
-
(3)
2
32
2
()
2241
z
H z
z z z
+
=
+-+
(4)
3
32
()
0.20.30.4
z
H z
z z z
=
+++
试用MATLAB实现下列分析过程:
①求出系统的零极点位置;
②绘出系统的零极点图,根据零极点图判断系统的稳定性;
③绘出系统单位响应的时域波形,并分析系统稳定性与系统单位响应时域特性的关系。解:程序代码如下:
%%第二章Z变换第2.13题程序
clear all;close all;
%题(1)
a1=[2 0 0 -1]; %系统函数分母的系数
b1=[0 2 -2 -1]; %系统函数分子的系数
p1=roots(a1), %求极点
pa1=abs(p1), %求极点到坐标原点的距离,看它是否大于1,若有一个大于1,
%则系统不稳定;若所有的都小于1,则系统稳定
q1=roots(b1), %求零点
h1=impz(b1,a1); %求单位响应
subplot(421);
zplane(b1,a1);%画零极点图
title('(1)的零极点图');
subplot(425);
stem(h1,'.'); %单位响应的时域波形grid on;
title('(1)的单位响应的时域波形');
%题(2)
a2=[3 0 0 -1];
b2=[0 0 1 1];
p2=roots(a2),
pa2=abs(p2),
q2=roots(b2),
h2=impz(b2,a2);
subplot(422);
zplane(b1,a1);
title('(2)的零极点图');
subplot(426);
stem(h2,'.');
grid on;
title('(2)的单位响应的时域波形');
%题(3)
a3=[1 2 -4 1];
b3=[0 1 0 2];
p3=roots(a3),
pa3=abs(p3),
q3=roots(b1),
h3=impz(b3,a3);
subplot(423);
zplane(b3,a3);
title('(3)的零极点图');
subplot(427);
stem(h3,'.');
grid on;
title('(3)的单位响应的时域波形');
%题(4)
a4=[1 0 0 0];
b4=[1 0.2 0.3 0.4];
p4=roots(a4),
pa4=abs(p4),
q4=roots(b4),
h4=impz(b4,a4);
subplot(424);
zplane(b1,a1);