2、部分分式展开法(一):单极点情况,查表法求反变换,实例演示。
好,咱们接着聊Z反变换。上一章我们讲了幂级数展开法,说白了就是硬算。这一章我们聊一个更聪明、更通用的方法——部分分式展开法。
我个人习惯把Z反变换比作“拆快递”。你拿到一个复杂的Z域表达式,就像收到一个包装严实的包裹。你要做的,就是把它拆成几个简单的小零件——这些小零件,正好是Z变换表里能查到的那些基本形式。然后,一查表,反变换就出来了。
这一章我们先讲最简单、最基础的情况:单极点。也就是分母多项式都是一次因子的情况。
2.1 为什么用部分分式展开?
你想想看,我们手头有Z变换表,里面列的都是些基本信号的Z变换对,比如:
- 单位脉冲 δ[n] ↔ 1
- 单位阶跃 u[n] ↔ z/(z-1)
- 指数序列 a^n u[n] ↔ z/(z-a)
但实际工程中,我们遇到的X(z)往往是个有理分式,比如:
X(z) = (z^2 + 2z + 1) / (z^2 - 0.5z + 0.06)
这玩意儿直接查表?查不到。怎么办?拆!把它拆成几个简单分式的和,每个分式都能在表里找到对应的反变换。
核心思想: 将复杂有理分式分解为简单分式之和,利用线性性质,分别查表求反变换。
2.2 单极点情况的基本步骤
单极点,说白了就是分母多项式可以分解成 (z - p1)(z - p2)... 这种形式,每个极点都是单根,没有重根。
我一般按下面三步走:
- 预处理: 先把X(z)写成真分式形式。如果分子次数≥分母次数,先做多项式除法。
- 展开: 将X(z)/z 或 X(z) 展开成部分分式。这里有个小技巧——我习惯对X(z)/z做展开,因为Z变换表里常见形式是 z/(z-p)。
- 查表: 对每个简单分式,查Z变换表,写出对应的时域序列。
我的小习惯: 对X(z)/z做部分分式展开,而不是直接对X(z)展开。这样每个分式项都能写成 z/(z-p) 的形式,查表特别方便。你试试就知道有多顺手了。
2.3 实例演示:一个简单的单极点问题
光说不练假把式。我们来看一个具体的例子。
题目: 已知 X(z) = z / (z - 0.5)(z - 0.8),求 x[n]。
解:
第一步,我们先把 X(z)/z 写出来:
X(z)/z = 1 / (z - 0.5)(z - 0.8)
嗯,这里要注意,X(z)本身分子已经是z的一次方了,所以X(z)/z刚好是个真分式。如果分子次数更高,我们得先做除法。
第二步,对 X(z)/z 做部分分式展开。设:
1 / (z - 0.5)(z - 0.8) = A/(z - 0.5) + B/(z - 0.8)
求系数A和B。方法很简单,两边同乘分母,然后代入极点值:
A = [1 / (z - 0.8)] 在 z = 0.5 处的值 = 1/(0.5 - 0.8) = -1/0.3 ≈ -3.333
B = [1 / (z - 0.5)] 在 z = 0.8 处的值 = 1/(0.8 - 0.5) = 1/0.3 ≈ 3.333
所以:
X(z)/z = -3.333/(z - 0.5) + 3.333/(z - 0.8)
两边乘以z,得到X(z):
X(z) = -3.333 * z/(z - 0.5) + 3.333 * z/(z - 0.8)
第三步,查表!
Z变换表告诉我们:z/(z - a) ↔ a^n u[n]。
所以:
x[n] = -3.333 * (0.5)^n u[n] + 3.333 * (0.8)^n u[n]
搞定!
结果: x[n] = 3.333[(0.8)^n - (0.5)^n] u[n]
2.4 避坑指南:我踩过的几个坑
做这部分分式展开,有几个地方特别容易出错。我曾经在这些坑里摔过好几次,分享给你:
- 收敛域问题: 部分分式展开只保证代数上正确,但反变换的结果还取决于收敛域。如果题目给了收敛域,一定要根据收敛域判断是右边序列还是左边序列。我刚开始学的时候经常忽略这一点,结果算出来的序列完全不对。
- 分子分母次数问题: 如果分子次数≥分母次数,一定要先做多项式除法,把真分式部分分离出来。否则展开出来的系数会出错。
- 系数计算精度: 手算时保留足够的小数位数,或者直接用分数形式。我建议用分数,比如上面的例子,A = -10/3, B = 10/3,这样更精确。
注意: 部分分式展开法适用于有理分式。如果X(z)不是有理分式(比如含有超越函数),这个方法就不适用了。不过好在数字信号处理中,我们遇到的大多数Z变换都是有理分式。
2.5 知识体系:单极点部分分式展开法
下面这张图,是我画的一个流程图,帮你理清整个方法的脉络:
2.6 再多说一句
单极点的情况,说白了就是最基础的拆解。你只要掌握了这个,后面遇到重极点(比如分母有 (z-p)^2 这种)就好办了——无非是多几个系数要算。
我在实际项目中,用这个方法处理过不少数字滤波器的设计问题。比如设计一个IIR滤波器,得到系统函数后,要分析它的单位脉冲响应,就是用部分分式展开法求Z反变换。这个方法,可以说是数字信号处理工程师的“基本功”。
好,这一章就到这里。记住三步走:预处理、展开、查表。多练几道题,你就能找到感觉了。