3、部分分式展开法(二):重极点情况,留数法辅助计算,实例演示

好,咱们接着聊部分分式展开法。

上一节我讲了单极点的情况,说白了就是分母多项式都是一次因式,没有重复的。但实际工程里哪有那么巧?你想想看,滤波器设计、控制系统分析,经常碰到分母有重根的情况。比如 (z-1)² 这种,一个极点重复出现。

这时候直接套用单极点的公式就不灵了。为什么?因为展开式里会出现 1/(z-a)² 甚至更高次项,系数求法不一样了。我个人习惯用留数法来处理,思路清晰,不容易出错。

3.1 重极点的麻烦在哪

先看一个典型例子:

X(z) = z / [(z-1)²(z-0.5)]

这里 z=1 是二阶极点,z=0.5 是单极点。如果按常规方法设:

X(z)/z = A/(z-1) + B/(z-1)² + C/(z-0.5)

注意,这里我习惯先处理 X(z)/z,因为 Z 变换表里常见形式是 z/(z-a)。

问题来了:A 和 B 怎么求?直接两边乘分母再代入 z=1 会出问题——因为代入后有些项会消失,有些项会变成无穷大。嗯,这里要注意,不能硬来。

3.2 留数法来救场

我在项目中遇到过类似情况,当时用留数法一步到位,省了不少时间。留数法的核心思想是:

  • 对于 m 阶极点 z₀,系数可以通过求导得到
  • 具体公式:A_k = 1/(m-k)! * lim_{z→z₀} d^{m-k}/dz^{m-k} [(z-z₀)^m * X(z)/z]

说白了,就是先消掉极点,再求导,再取极限。听起来复杂,做起来其实有套路。

关键步骤:

  1. 先把 X(z)/z 写出来
  2. 对每个重极点,乘上 (z-z₀)^m 消掉分母
  3. 然后逐次求导,代入 z=z₀ 得到系数

3.3 实例演示:手算一遍

咱们就拿上面那个例子走一遍流程。

第一步:写 X(z)/z

X(z)/z = 1 / [(z-1)²(z-0.5)]

第二步:处理二阶极点 z=1

先乘上 (z-1)²:

F(z) = (z-1)² * X(z)/z = 1/(z-0.5)

然后求 0 阶导数(就是它本身)代入 z=1:

B = F(1) = 1/(1-0.5) = 2

再求一阶导数:

F'(z) = -1/(z-0.5)²
A = F'(1) = -1/(1-0.5)² = -4

注意,这里 A 对应的是 1/(z-1) 项的系数,B 对应 1/(z-1)² 项的系数。顺序别搞反了,我曾经在这上面吃过亏。

第三步:处理单极点 z=0.5

这个简单,直接乘 (z-0.5) 再代入:

C = lim_{z→0.5} (z-0.5) * X(z)/z = 1/(0.5-1)² = 4

第四步:写出展开式

X(z)/z = -4/(z-1) + 2/(z-1)² + 4/(z-0.5)

两边乘 z:

X(z) = -4z/(z-1) + 2z/(z-1)² + 4z/(z-0.5)

3.4 查表求逆变换

现在查 Z 变换表:

逆变换
z/(z-1) u[n](单位阶跃)
z/(z-1)² n·u[n]
z/(z-0.5) (0.5)ⁿ·u[n]

所以:

x[n] = -4·u[n] + 2·n·u[n] + 4·(0.5)ⁿ·u[n]

合并一下:

x[n] = [2n - 4 + 4·(0.5)ⁿ]·u[n]

个人小技巧: 算完以后,可以取 n=0 和 n=1 验证一下。比如 n=0 时,x[0] = -4 + 0 + 4 = 0,符合因果序列的初始条件。n=1 时,x[1] = 2 - 4 + 2 = 0,也合理。这种验证我每次都会做,能发现不少计算错误。

3.5 避坑指南

我曾经踩过的坑:

  • 求导时忘记链式法则,尤其是分母有复合函数时
  • 代入极点时,如果分母为零,说明前面步骤有误
  • 系数顺序搞反——高阶项对应低阶导数,这个容易记混
  • 忘记乘 z 回去,直接对 X(z)/z 做逆变换

说实话,重极点的情况在教科书里看着挺吓人,但实际做起来就那么几步。你只要记住「消极点→求导→代入」这个流程,再复杂的重极点也能搞定。

我个人建议,刚开始练习时,每个步骤都写清楚,别跳步。等熟练了,自然就能心算了。

重极点部分分式展开流程 写 X(z)/z 乘 (z-z₀)ᵐ 消极点 求导 + 代入极点 还有极点? 乘 z 回 + 查表逆变换 单极点:直接乘 (z-z₀) 代入 重复步骤2-3直到所有极点处理完毕

这张图把整个流程串起来了。你跟着走一遍,重极点就不再是难题了。


公众号:蓝海资料掘金营,微信deep3321