3. Z反变换:三种方法,一个目标
Z反变换,说白了就是把Z域的函数变回时域的序列。
你可能会问:为什么要折腾这个?
嗯,我们在前面用Z变换把差分方程变成了代数方程,算起来确实爽。但算完之后呢?你得把结果变回时间序列,才能知道系统到底怎么响应。这就是Z反变换的活儿。
我个人习惯用三种方法:部分分式展开法、幂级数展开法、留数法。每种都有它的脾气,咱们一个一个聊。
核心思想:已知 X(z),求 x[n]。
数学上写作:x[n] = Z⁻¹{X(z)}
3.1 部分分式展开法
这个方法我最常用。说白了,就是把复杂的X(z)拆成几个简单分式的和,然后查表。
为什么好用?因为Z变换表里就那么几个基本形式:单位脉冲、单位阶跃、指数序列……你把复杂函数拆成这些基本块的组合,反变换就是查表的事。
具体步骤:
- 把X(z)写成真分式形式(分子次数低于分母)
- 因式分解分母
- 展开成部分分式
- 查Z变换表,写出每一项的时域序列
举个例子:
X(z) = (z) / (z - 0.5)(z - 0.8)
展开成:
X(z)/z = A/(z - 0.5) + B/(z - 0.8)
算系数:A = 0.5/(0.5 - 0.8) = -5/3,B = 0.8/(0.8 - 0.5) = 8/3
所以:
X(z) = (-5/3) * z/(z - 0.5) + (8/3) * z/(z - 0.8)
查表得:
x[n] = (-5/3)(0.5)^n u[n] + (8/3)(0.8)^n u[n]
我的经验:我在做数字滤波器设计时,经常用这个方法。有一次设计一个低通滤波器,传递函数分母是四阶的,拆成四个一阶分式,每个对应一个指数衰减序列。嗯,物理意义一下子就清楚了。
3.2 幂级数展开法
这个方法更直接——把X(z)展开成z的幂级数,系数就是x[n]。
你想想看,Z变换的定义就是:
X(z) = Σ x[n] z^(-n)
所以如果你能把X(z)写成z^(-1)的幂级数,那系数自然就是x[n]了。
怎么做?
用长除法。把分子除以分母,得到z^(-1)的多项式。
举个例子:
X(z) = (z) / (z - 0.5) = 1 / (1 - 0.5z^(-1))
长除:
1 + 0.5z^(-1) + 0.25z^(-2) + 0.125z^(-3) + ...
所以:
x[0] = 1, x[1] = 0.5, x[2] = 0.25, x[3] = 0.125, ...
注意:这个方法只能得到前几项的数值,很难写出闭式表达式。我一般只在需要快速验证前几个采样点时用。
什么时候用?
- 只需要前几个采样点的值
- X(z)形式复杂,不好拆成部分分式
- 做数值计算,不需要解析表达式
避坑指南:我曾经用幂级数法算一个系统的阶跃响应,算了前10个点,以为后面就收敛了。结果第15个点突然跳变——因为系统有共轭极点,振荡周期比我想的长。所以,幂级数法只适合看局部,全局行为还得靠部分分式。
3.3 留数法
这个方法数学味道最浓。它基于复变函数中的留数定理。
公式:
x[n] = (1/2πj) ∮ X(z) z^(n-1) dz
这个围线积分,等于X(z)z^(n-1)在所有极点处的留数之和。
计算步骤:
- 找出X(z)z^(n-1)的所有极点
- 计算每个极点处的留数
- 求和得到x[n]
对于一阶极点:
Res[X(z)z^(n-1), z=p] = (z-p)X(z)z^(n-1) | z=p
对于m阶极点:
Res = 1/(m-1)! * d^(m-1)/dz^(m-1) [(z-p)^m X(z)z^(n-1)] | z=p
我的看法:留数法理论上最强大,能处理所有情况。但实际工程中,我很少用它。为什么?因为计算太繁琐,尤其是高阶极点的时候。部分分式法已经够用了,何必自找麻烦?
什么时候非用不可?
- X(z)有高阶极点,部分分式展开困难
- 需要严格的数学证明
- 做理论研究,需要解析表达式
三种方法对比
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 部分分式展开法 | 物理意义清晰,查表方便 | 需要因式分解,高阶极点麻烦 | 工程中最常用 |
| 幂级数展开法 | 计算简单,直接得到数值 | 得不到闭式表达式 | 快速验证前几个点 |
| 留数法 | 理论完备,能处理所有情况 | 计算繁琐,容易出错 | 理论研究,高阶极点 |
我的建议:初学者先把部分分式法练熟。这个搞定了,90%的工程问题都能解决。幂级数法作为辅助,留数法了解原理就行。别在方法选择上纠结,能算出来就是好方法。
知识体系图
下面这张图帮你理清三种方法的关系:
嗯,三种方法各有千秋。我个人建议你先把部分分式法练到肌肉记忆,遇到问题随手就能拆。幂级数法作为快速验证手段。留数法嘛,知道原理就行,真要用的时候再翻书。
记住:工具是为人服务的,别被工具牵着走。能算出来、算得对,就是好方法。
公众号:蓝海资料掘金营,微信deep3321