2020-03-02 08:39:56 来源:范文大全收藏下载本文
实验6 离散时间信号与系统的Z变换分析
1 部分分式展开的MATLAB实现
信号的Z域表示式通常可用下面的有理分式表示
为了能从信号的Z域象函数方便地得到其时域原函数,可以将F(z)展开成部分分式之和的形式,再对其取Z逆变换。
MATLAB的信号处理工具箱提供了一个对F(z)进行部分分式展开的函数[WTBZ]residuez它的调用形式: [r,p,k]=residuez(num,den) 其中,num、den分别表示F(z)的分子和分母多项式的系数向量;r为部分分式的系数;p为极点;k为多项式的系数。若F(z)为真分式,则k为零。借助residuze函数可以将F(z)展开成:
numzr1rn denz1p1z11pnz1 k1k2z1kmn1zmn
例1 试用MATLAB计算
Fz
183z14z2z3的部分分式展开。
解 计算部分分式展开的[WTBZ]MATLAB程序如下:
%program10.6-1
num=[18];
den=[183-4-1];
[r,p,k]=residuez(num,den) 程序运行结果为
r=0.36000.24000.4000
p=0.5000-0.3333-0.3333
k=[]
从运行结果中可以看出p(2)=p(3),表示系统有一个二阶的重极点,r(2)表示一阶极点前的系数,而r(3)就表示二阶极点前的系数。对高阶重极点,其表示方法是完全类似的,所以该F(z)的部分分式展开为:
0.360.240.4Fz 10.5z110.3333z110.3333z12 b0b1z1b2z2bmzmnumzFz12ndenz1a1za2zanz2 利用MATLAB计算H(z)的零极点与系统特性
如果系统函数H(z)的有理函数表示形式为
那么系统函数的零点和极点可以通过MATLAB函数roots得到,也可用函数tf2zp得到,tf2zp的调用形式为:
[z,p,k]=tf2zp(b,a)
b1zmb2zm1bm1Hza1zna2zn1an1
式中,b和a分别为H(z)的分子多项式和分母多项式的系数向量,它的作用是将H(z)的有理函数表示式转换为零点、极点和增益常数的表示式,即
zz1zz2zzm Hzk zp1zp2zpn
例2 已知一离散因果LTI系统的系统函数为
z12z2z3Hz 10.5z10.005z20.3z3求该系统的零极点。
解 将系统函数改写为
z22z1Hz3 z0.5z20.005z0.3
用tf2zp函数求系统的零极点,程序如下:
%program10.6-2
b=[121];
a=[1-0.5-0.0050.3];
[r,p,k]=tf2zp(b,a) 运行结果为
r=-
1-1
p=0.5198+0.5346i
0.5198-0.5346i
-0.5396
k=1
若要获得系统函数H(z)的零极点分布图,可以直接应用zplane函数,其调用形式为: zplane(b,a) 式中,b和a分别为H(z)的分子多项式和分母多项式的系数向量。它的作用是在Z平面画出单位圆、零点和极点。
如果已知系统函数H(z),求系统的单位脉冲响应h[k]和频率响应H(ejΩ),则可应用impz函数和freqz函数。
例3 已知一离散因果LTI系统的系统函数为
2z2z1 Hz321z0.5z0.005z0.3
试画出系统的零极点分布图,求系统的单位脉冲响应h[k]和频率响应H(ejΩ),并判断系统是否稳定。
解 根据已知的H(z),用zplane函数即可画出系统的零极点分布图。利用impz函数和freqz函数求系统的单位脉冲响应和频率响应时,需要将H(z)改写成:
z12z2z3Hz 10.5z10.005z20.3z3程序如下:
%program10.6-3
b=[121];
a=[1-0.5-0.0050.3];
figure(1);zplane(b,a);
num=[0121];
den=[1-0.5-0.0050.3];
h=impz(num,den); figure(2);stem(h,′.′) xlabel(′k′) title(′ImpulseRespone′) [H,w]=freqz(num,den); figure(3);plot(w/pi,abs(H)) xlabel(′Frequency\omega′) title(′MagnitudeRespone′)
3 利用MATLAB计算Z变换
MATLAB的符号数学工具箱提供了计算Z变换的函数ztrans和Z逆变换的函数iztrans,
其调用形式为:
F=ztrans(f)
f=iztrans(F)
式中,f为信号的时域表达式的符号对象,F表示信号f的象函数表达式的符号对象。符号对象可以应用函数sym实现,其调用格式为:
S=sym(A)
式中,A为待分析表示式的字符串;S为符号数字或变量。 例4 试分别用ztrans函数和iztrans函数求:
(1) f[k]=cos(ak)ε(k)的Z变换;
1 Fz(2) 1z2的Z逆变换。
解 (1)求f[k]的Z变换的程序如下:
%program10.6-4(1)
f=sym(′cos(a*k)′);
F=ztrans(f)运行结果为
F=(z-cos(a))*z/(z^2-2*z*cos(a)+1) 即
zzcosa cosakk2 z2zcosa1(2) 求F(z)逆变换的程序为
%program10.6-4(2)
F=sym(′1/(1+z)^2′);
f=iztrans(F) 程序运行结果为
f=Delta(n)+(-1)^n*n-(-1)^n 即
1kk 1k1kk1k2 1z
人人范文网 m.inrrp.com.cn 手机版