HUNAN UNIVERSITY
题 目 : 离散系统的Z 域分析
学 生 姓 名 :
学 生 学 号 :
专 业 班 级 :
指 导 老 师 :
完 成 日 期 : 2014/12/28
实验八 离散系统的Z 域分析
实验目的:
(1)、学习和掌握用MATLAB 的符号运算法求z 变换及z 反变换的方法,以及z 变换的部分
分式展开法,加深对z 变换的理解;
(2)、理解和掌握离散时间系统的系统函数的概念,掌握用z 变换求解差分方程的方法,加
深对零输入响应和零状态响应的理解;
(3)、学习并掌握用MATLAB 绘制离散时间系统零极点分布图的方法,加深系统零极点分布
对时域响应影响的理解,建立系统稳定性的概念;
(4)、掌握用MATLAB 计算离散系统响应的方法,包括单位样值响应,零输入响应、零状态
响应和全响应;
(5)、掌握系统零极点分布与频率响应的关系,掌握用MATLAB 研究系统频率响应的方法。
实验内容:
1、 用符号法求下列序列的z 变换。
figure;
syms k;
f=(k-3).*heaviside(k);
g=ztrans(f);
ezplot(g);
syms k;
f=exp(2*k).*heaviside(k);
g=ztrans(f);
ezplot(g);
2、 用符号法求下列z 变换的逆变换。
>> syms z;
f=1/((z+1)^2);
g=iztrans(f)
g =
kroneckerDelta(n, 0) + (-1)^n*(n - 1)
>> syms z;
f=(2*z*(z+2))/((z-2)^3);
g=iztrans(f)
g =
2*2^n*nchoosek(n - 1, 2) + 2^n + 3*2^n*(n - 1)
用 z 变换法分别求系统零输入响应、零状态响应和全响应。
clear all;close all;
num=[1 3 0]; %系统函数分子的系数
den=[1 3 2]; %系统函数分母的系数
n=0:30;
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); %求零输入响应
figure;
stem(n,y1,r.);
title(零输入响应);
grid on;
%求零状态响应
y02=[0 0];
x02=[0 0];
x2=heaviside(n);
zi2=filtic(num,den,y02,x02);
y2=filter(num,den,x2,zi2);
figure;
stem(n,y2,r.);
title(零状态响应);
grid on;
%求全响应
y03=[1 3];
x03=[0 0];
x3=heaviside(n);
zi3=filtic(num,den,y03,x03);
y3=filter(num,den,x1,zi3);
figure;
stem(n,y3,r.);
title(全响应);
grid on;
6、用 MATLAB 绘制出下列系统函数的零极点图,判断系统的稳定性。
代码:
figure(3);
a=[0 1 0 2 0];
b=[4 3 2 2 1];
zplane(a,b);
运行截图:
8、绘制下列系统函数的幅频响应和相频响应特性曲线,判断系统的滤波性能。
代码:
%8.1
figure(4);
B=[1 -0.5];
A =[1 0];
H,w]=freqz(B,A,400,whole);
Hf=abs(H);
Hx=angle(H);
subplot(121)
plot(w,Hf)
title(离散系统幅频特性曲线)
subplot(122)
plot(w,Hx)
title(离散系统相频特性曲线)
运行截图:
10、求下列差分方程的数值解,并绘制输入与响应的波形图。
代码:
figure(5);
f=zeros(1,30);
f(1)=2;
f(2)=1;
for n=3:1:30
f(n)=1.5*f(n-1)-f(n-2)+3*(n>=2);
end;
k=-2:1:27;
stem(k,f);
运行截图:
实验总结:
matlab提供的进行Z变换的函数指令。
涉及Z反变换具体计算的方法有三种:幂级数展开法、部分分式展开发和围线积分法。这里我们就介绍一种MATLAB中的SymbolicToolbox提供的基于围线积分法求取Z变换的指令:ztrans和iztrans。其具体调用语法和功能如下图所示。
FZ=ztrans(fn,n,z) %求时域序列fn的Z变换FZ;
fz=iztrans(FZ,z,n) %求频域序列FZ的Z反变换fn。
求解差分方程:
filtic函数(为filter函数提供初始化的值)
filtic
Initial conditions for transposed direct-form II filter implementation
Syntax
z=filtic(b,a,y,x)
z=filtic(b,a,y)
Description
z=filtic(b,a,y,x)finds the initial conditions,z, for the delays in thetransposed direct-form IIfilter implementation given past outputsyand inputsx. The vectorsbandarepresent the numerator and denominator coefficients, respectively, of the filters transfer function.
filter
Syntax
y = filter(b,a,x)
y = filter(b,a,x,zi)
y = filter(b,a,x,zi,dim)
[y,zf] = filter(___)
Description
y= filter(b,a,x)filters the input data,x, using arational transfer functiondefined by the numerator and denominator coefficientsbanda, respectively.
Ifa(1)is not equal to1, thenfilternormalizes the filter coefficients bya(1). Therefore,a(1)must be nonzero.
Ifxis a vector, thenfilterreturns the filtered data as a vector of the same size asx.
Ifxis a matrix, thenfilteracts along the first dimension and returns the filtered data for each column.
Ifxis a multidimensional array, thenfilteracts along the first array dimension whose size does not equal 1.
y= filter(b,a,x,zi)uses initial conditions,zi, for the filter delays. The length ofzimust equalmax(length(a),length(b))-1.
展开阅读全文