一、有理函数z变换的部分分式展开
如果信号的z域表示式X(z)是有理函数,设X(z)的有理分式表示为:
X(z)=1+a1z−1+a2z−2+⋯+anz−nb0+b1z−1+b2z−2+⋯+bmz−m
MATLAB信号处理工具箱提供了一个对X(z)进行部分分式展开的函数residuez
,其语句格式为:
[R,P,K]=residuez(B,A)
其中,B,A分别表示X(z)的分子与分母多项式的系数向量;R为部分分式的系数向量;P为极点向量;K为多项式的系数。若X(z)为有理真分式,则K为零。下面的示例演示了如何使用MATLAB命令对函数X(z)=18+3z−1−4z−2−z−318进行部分分式展开,并求出其z反变换:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
B = [18]; A = [18 3 -4 -1];
[R, P, K] = residue(B, A); R P K
# 结果 R =
1.4400 -1.4400 -1.2000
P =
0.5000 -0.3333 -0.3333
K =
[]
|
其中K为空矩阵,说明X(z)为真分式,即没有多项式。P1=P2,表示系统有一个二重极点。所以,X(z)的部分分式展开式为:
X(z)=1−0.5z−11.44+1+0.3333z−1−1.44+(1+0.3333z−1)2−1.2
二、系统函数的零极点分析
离散时间系统的系统函数定义为系统零状态响应的 z 变换与激励的 z 变换之比,即 :
H(z)=X(z)Y(z)
如果系统函数 H(z) 的有理函数表示式为:
H(z)=a1zn+a2zn−1+⋯+anz+an+1b1zm+b2zm−1+⋯+bmz+bm+1
那么,在MATLAB中系统函数的零极点就可以通过函数roots
得到,也可以借助函数tf2zp
得到,tf2zp
的语句格式为:
[Z,P,K]=tf2zp(B,A)
其中,B与A分别表示函数H(z)的分子与分母多项式的系数向量。它的作用是将H(z)的有理分式表示式转换为零极点增益形式,即:
H(z)=k(z−p1)(z−p2)⋯(z−pm)(z−z1)(z−z2)⋯(z−zm)
下面的示例演示了如何使用MATLAB命令求系统函数H(z)=z2+z+0.16z+0.32的零极点:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
B = [1 0.32]; A = [1 1 0.16];
[R, P, K] = tf2zp(B, A)
# 结果 R =
-0.3200
P =
-0.8000 -0.2000
K =
1
|
因此,零点为z=0.32,极点为p1=0.8,p2=0.2。
若要获得系统函数H(z)的零极点分布图,可直接应用zplane
函数,其语法格式为:
zplane(B,A)
其中,B与A分别表示H(z)的分子和分母多项式的系数向量。它的作用是在Z平面上画出单位元、零点与极点。下面的示例演示了如何使用zplane
函数求解系统函数H(z)=z2−1.52z+0.68z2−0.36的零极点并画出零极点分布图:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
B = [1 0 -0.36]; A = [1 -1.52 0.68]; [R, P, K] = tf2zp(B, A) zplane(B,A);
# 结果 R =
0.6000 -0.6000
P =
0.7600 + 0.3200i 0.7600 - 0.3200i
K =
1
|
可见,该因果系统的零极点全部在单位元内,过系统是稳定的。
三、系统函数的零极点分布与其时域特性的关系
与拉氏变换在连续系统中的作用类似,在离散系统中,z变换建立了时域函数与z域函数之间的对应关系。因此,z变换的函数从形式可以反映h(n)的部分内在性质。我们仍旧通过讨论H(z)的一阶极点情况,来说明系统函数的零极点分布与系统时域特性的关系。下面的示例演示了如何使用MATLAB画出以下系统函数的零极点分布图,以及对应的时域单位取样响应h(n)的波形,并分析系统函数的极点对时域波形的影响:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
B1 = [1,0]; A1 = [1 -0.8]; subplot(7,2,1); zplane(B1, A1); title("极点在单位元内的正实数"); subplot(7,2,2); impz(B1, A1, 30); grid on;
B2 = [1,0]; A2 = [1 0.8]; subplot(7,2,3); zplane(B2, A2); title("极点在单位元内的负实数"); subplot(7,2,4); impz(B2, A2, 30); grid on;
B3 = [1,0]; A3 = [1 -1.2 0.72]; subplot(7,2,5); zplane(B3, A3); title("极点在单位元内的共轭复数"); subplot(7,2,6); impz(B3, A3, 30); grid on;
B4 = [1,0]; A4 = [1 -1]; subplot(7,2,7); zplane(B4, A4); title("极点在单位元上的实数1"); subplot(7,2,8); impz(B4, A4, 30); grid on;
B5 = [1,0]; A5 = [1 -1.6 1]; subplot(7,2,9); zplane(B5, A5); title("极点在单位圆上的共轭复数"); subplot(7,2,10); impz(B5, A5, 30); grid on;
B6 = [1,0]; A6 = [1 -1.2]; subplot(7,2,11); zplane(B6, A6); title("极点在单位圆外的正实数"); subplot(7,2,12); impz(B6, A6, 30); grid on;
B7 = [1,0]; A7 = [1 -2 1.36]; subplot(7,2,13); zplane(B7, A7); title("极点在单位元外为的共轭复数"); subplot(7,2,14); impz(B7, A7, 30); grid on;
|
由上图可知,当极点位于单位院内时,h(n)为衰减序列;当极点位于单位圆上时,h(n)为等幅序列;当极点位于单位圆外时,h(n)为增幅序列。若h(n)有一阶实数极点,则h(n)为指数序列;若h(n)有一阶共轭极点,则h(n)为指数震荡序列;若h(n)的极点位于虚轴左边,则h(n)序列按一正一负的规律交替变化。
四、离散时间LTI系统的频率特效分析
对于因果稳定系统的离散时间系统,如果激励序列为正弦序列x(n)=Asin(nw)u(n),则系统的稳态响应为yss(n)=A∣H(ejw)∣sin[nw+φ(w)]u(n)。其中,H(ejw)通常是复数。离散时间系统的频率响应定义为:
H(ejw)=∣H(ejw)∣ejφ(w)
其中,∣H(ejw)∣常被称为离散时间系统的幅频特性;φ(w)被称为离散时间系统的相频特性;H(ejw)是以ws为周期的周期函数。因此,只要分析H(ejw)在∣w∣<π范围内的情况,便可分析出系统的整个频率特性。
MATLAB提供了求离散时间系统频率响应特性的函数freqz
,调用freqz
的格式主要有两种。一种形式为:
[H,w]=freqz(B,A,N)
其中,施工中····