
学 院:信息科学与工程学院
专业班级:信息安全一班
姓 名:冯玉萍
学 号:20090830102
实验目的:
(1)、学习和掌握用MATLAB 的符号运算法求z 变换及z 反变换的方法,以及z 变换的部分
分式展开法,加深对z 变换的理解;
(2)、理解和掌握离散时间系统的系统函数的概念,掌握用z 变换求解差分方程的方法,加
深对零输入响应和零状态响应的理解;
(3)、学习并掌握用MATLAB 绘制离散时间系统零极点分布图的方法,加深系统零极点分布
对时域响应影响的理解,建立系统稳定性的概念;
(4)、掌握用MATLAB 计算离散系统响应的方法,包括单位样值响应,零输入响应、零状态
响应和全响应;
(5)、掌握系统零极点分布与频率响应的关系,掌握用MATLAB 研究系统频率响应的方法。
一,
1,
syms k;
f=k-3
ztrans(f)
结果:
Z =
z/(z - 1)^2 - (3*z)/(z - 1)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
2,
syms k;
k=3:20;
f=sym('(k-3)');
Z=ztrans(f)
结果:
Z =
z/(z - 1)^2 - (3*z)/(z - 1)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
3,
syms k;
k=3:20;
f=sym('(k-3)');
f1=abs(f);
Z=ztrans(f1)
结果:
Z =
piecewise([0 < abs(z)*(abs(z) - 1), 1/(z^4*(1/z - 1)^2) + 2/z + 1/z^2 + 3])
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
4,syms k b;
g=exp(b*k);
ztrans(g)
结果:
ans =
z/(z - exp(b))
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
5,
syms k a;
g=exp(-a*j*k);
Z=ztrans(g)
结果:
Z =
z/(z - 1/exp(a*i))
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
6,
f=sym('1');
Z=ztrans(f)
结果:
Z =
z/(z - 1)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
7,
syms a k;
g = a^k;
ztrans(g)
结果:
ans =
-z/(a - z)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
8,syms k a;
g=k*(a^k);
ztrans(g)
结果:
ans =
z/(a*(z/a - 1)^2)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
9,
syms k a;
g=cos(a*k);
ztrans(g)
结果:
ans =
(z*(z - cos(a)))/(z^2 - 2*cos(a)*z + 1)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
二,
1,2,3,4,5一起的程序
syms z;
X1=1/(z+1)^2;
x1=iztrans(X1)
X2=z/(z-1)^2;
x2=iztrans(X2)
X3=z/(z-a);
x3=iztrans(X3)
X4=a*z/(z-a)^2;
x4=iztrans(X4)
X5=a*z*(z+a)/(z-a)^3;
x5=iztrans(X5)
X6=z*(z^2+4*z+1)/(z-1)^4;
x6=iztrans(X6);
结果:
x1 =
kroneckerDelta(n, 0) + (-1)^n*(n - 1)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
x2 =
n
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
x3 =
piecewise([a <> 0, a*(a^n/a - kroneckerDelta(n, 0)/a) + kroneckerDelta(n, 0)])
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
x4 =
piecewise([a <> 0, a*(a^n/a - kroneckerDelta(n, 0)/a) + a^2*(kroneckerDelta(n, 0)/a^2 + (a^n*(n - 1))/a^2)])
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
x5 =
piecewise([a <> 0, a*(a^n/a - kroneckerDelta(n, 0)/a) + 3*a^2*(kroneckerDelta(n, 0)/a^2 + (a^n*(n - 1))/a^2) - 2*a^3*(kroneckerDelta(n, 0)/a^3 - (a^n*binomial(n - 1, 2))/a^3)])
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
x6 =
7*n + 12*binomial(n - 1, 2) + 6*binomial(n - 1, 3) – 6
五,
(这两个代码都是从网上找到的,在书本中无法找到相应的函数说明如何调用)
1,
syms z real
a=[1 3 2]; % 差分方程左边系数an
b=[1 0 0]; % 差分方程右边系数bm
F=z/(z-2); % 输入信号z变换
y0=[0 0.5]; % 初始条件y(-1),y(-2)
Zn=[1 1/z z^-2]; % z的多项式
An=a*Zn'; % 形成分母多项式
B=b*Zn'; % 形成分子多项式
H=B/An; % 计算系统函数H(z)
Yzs=H.*F; % 计算零状态响应的z变换
yzs=iztrans(Yzs); % z反变换
disp(' 零状态响应')
pretty(yzs)
A=[a(3)/z+a(2) a(3)];
Bf=[b(3)/z+b(2) b(3)];
Y0s=-A*y0'; % 形成分子多项式
Yzi=Y0s/An; % 计算零输入响应的z变换
yzi=iztrans(Yzi); % z反变换
disp(' 零输入响应')
pretty(yzi)
y=yzs+yzi; % 计算全响应
disp(' 全响应')
pretty(y)
结果:
零状态响应
n n
n (-1) 2
(-2) - ----- + --
3 3
零输入响应
n n
(-1) - 2 (-2)
全响应
n n
2 (-1) n 2
------- - (-2) + --
3 3
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
2,
,syms z real
a=[1 5 6]; % 差分方程左边系数an
b=[1 0 0]; % 差分方程右边系数bm
F=z/(z-3); % 输入信号z变换
y0=[1 2]; % 初始条件y(-1),y(-2)
Zn=[1 1/z z^-2]; % z的多项式
An=a*Zn'; % 形成分母多项式
B=b*Zn'; % 形成分子多项式
H=B/An; % 计算系统函数H(z)
Yzs=H.*F; % 计算零状态响应的z变换
yzs=iztrans(Yzs); % z反变换
disp(' 零状态响应')
pretty(yzs)
A=[a(3)/z+a(2) a(3)];
Bf=[b(3)/z+b(2) b(3)];
Y0s=-A*y0'; % 形成分子多项式
Yzi=Y0s/An; % 计算零输入响应的z变换
yzi=iztrans(Yzi); % z反变换
disp(' 零输入响应')
pretty(yzi)
y=yzs+yzi; % 计算全响应
disp(' 全响应')
pretty(y)
结果:
零状态响应
n n n
3 (-3) 4 (-2) 3 3
------- - ------- + ----
2 5 10
零输入响应
n n
28 (-2) - 45 (-3)
全响应
n n n
136 (-2) 87 (-3) 3 3
--------- - -------- + ----
5 2 10
六,
function ljdt(A,B)
% The function to draw the pole-zero diagram for discrete system
p=roots(A); %求系统极点
q=roots(B); %求系统零点
p=p'; %将极点列向量转置为行向量
q=q'; %将零点列向量转置为行向量
x=max(abs([p q 1])); %确定纵坐标范围
x=x+0.1;
y=x; %确定横坐标范围
clf
hold on
axis([-x x -y y]) %确定坐标轴显示范围
w=0:pi/300:2*pi;
t=exp(i*w);
plot(t) %画单位园
axis('square')
plot([-x x],[0 0]) %画横坐标轴
plot([0 0],[-y y]) %画纵坐标轴
text(0.1,x,'jIm[z]')
text(y,1/10,'Re[z]')
plot(real(p),imag(p),'x') %画极点
plot(real(q),imag(q),'o') %画零点
title('pole-zero diagram for discrete system') %标注标题
hold off
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
1,
a=[1 3 2 2 1];
b=[1 0 2 0];
ljdt(a,b)
p=roots(a)
q=roots(b)
pa=abs(p)
结果:
p =
-2.4487
0.0247 + 0.8241i
0.0247 - 0.8241i
-0.6008
q =
0
0 + 1.4142i
0 - 1.4142i
pa =
2.4487
0.8245
0.8245
0.6008
由程序运行结果和绘制的系统零极点图我们可以看出,该系统不是所有极点均位于Z 平面的单位圆内,故为不稳定系统。
2,
a=[1 1/2 1/4];
b=[1 1 0];
ljdt(a,b)
p=roots(a)
q=roots(b)
pa=abs(p)
结果:
p =
-0.2500 + 0.4330i
-0.2500 - 0.4330i
q =
0
-1
pa =
0.5000
0.5000
由程序运行结果和绘制的系统零极点图我们可以看出,该系统的所有极点均位于Z 平面的单位圆内,故为稳定系统。
3,
a=[1 -3 7 -5];
b=[3 -5 10 0];
ljdt(a,b)
p=roots(a)
q=roots(b)
pa=abs(p)
结果:
p =
1.0000 + 2.0000i
1.0000 - 2.0000i
1.0000
q =
0
0.8333 + 1.6245i
0.8333 - 1.6245i
pa =
2.2361
2.2361
1.0000
由程序运行结果和绘制的系统零极点图我们可以看出,该系统的不是所有极点均位于Z 平面的单位圆内,故为不稳定系统。
4,
a=[3 -1 0 0 0 1];
b=[1 1];
ljdt(a,b)
p=roots(a)
q=roots(b)
pa=abs(p)
结果:
p =
0.7255 + 0.4633i
0.7255 - 0.4633i
-0.1861 + 0.7541i
-0.1861 - 0.7541i
-0.7455
q =
-1
pa =
0.8608
0.8608
0.7768
0.7768
0.7455
由程序运行结果和绘制的系统零极点图我们可以看出,该系统的所有极点均位于Z 平面的单位圆内,故为稳定系统。
九,
a=[1 -0.5 -0.005 0.3];
b=[1 2 1];
ljdt(a,b)%零极点分布图
title('零极点分布图');
figure;
p=roots(a)
q=roots(b)
pa=abs(p)
impz(b,a,20) %单位样值响应
title('单位样值响应');
a=[1 -0.5 -0.005 0.3];
b=[1 2 1];
[H,w]=freqz(b,a,20) %计算频率响应
[H,w]=freqz(b,a,400,'whole');
Hf=abs(H);
Hx=angle(H);
clf
figure(1)
plot(w,Hf)
title('离散系统幅频特性曲线')
figure(2)
plot(w,Hx)
title('离散系统相频特性曲线')
图形如下所示:
