一、有理函数z变换的部分分式展开

如果信号的z域表示式$X(z)$是有理函数,设$X(z)$的有理分式表示为:

MATLAB信号处理工具箱提供了一个对$X(z)$进行部分分式展开的函数residuez,其语句格式为:

其中,B,A分别表示$X(z)$的分子与分母多项式的系数向量;R为部分分式的系数向量;P为极点向量;K为多项式的系数。若$X(z)$为有理真分式,则K为零。下面的示例演示了如何使用MATLAB命令对函数$X(z)=\frac{18}{18+3z^{-1}-4z^{-2}-z^{-3}}$进行部分分式展开,并求出其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
% 用MATLAB命令求X(z)的部分分式展开,并求其z反变换

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)$为真分式,即没有多项式。$P_1=P_2$,表示系统有一个二重极点。所以,$X(z)$的部分分式展开式为:

二、系统函数的零极点分析

离散时间系统的系统函数定义为系统零状态响应的 z 变换与激励的 z 变换之比,即 :

如果系统函数 H(z) 的有理函数表示式为:

那么,在MATLAB中系统函数的零极点就可以通过函数roots得到,也可以借助函数tf2zp得到,tf2zp的语句格式为:

其中,$B$与$A$分别表示函数$H(z)$的分子与分母多项式的系数向量。它的作用是将$H(z)$的有理分式表示式转换为零极点增益形式,即:

下面的示例演示了如何使用MATLAB命令求系统函数$H(z)=\frac{z+0.32}{z^2+z+0.16}$的零极点:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
% 使用tf2zp函数求解系统函数的零极点

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$,极点为$p_1=0.8$,$p_2=0.2$。

若要获得系统函数$H(z)$的零极点分布图,可直接应用zplane函数,其语法格式为:

其中,B与A分别表示$H(z)$的分子和分母多项式的系数向量。它的作用是在Z平面上画出单位元、零点与极点。下面的示例演示了如何使用zplane函数求解系统函数$H(z)=\frac{z^{2}-0.36}{z^{2}-1.52z+0.68}$的零极点并画出零极点分布图:

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)$,则系统的稳态响应为$y_{ss}(n)=A|H(e^{jw})|sin[nw+\varphi(w)]u(n)$。其中,$H(e^{jw})$通常是复数。离散时间系统的频率响应定义为:

其中,$|H(e^{jw})|$常被称为离散时间系统的幅频特性;$\varphi(w)$被称为离散时间系统的相频特性;$H(e^{jw})$是以$w_s$为周期的周期函数。因此,只要分析$H(e^jw)$在$|w|<\pi$范围内的情况,便可分析出系统的整个频率特性。

MATLAB提供了求离散时间系统频率响应特性的函数freqz,调用freqz的格式主要有两种。一种形式为:

其中,施工中····