3. Z反变换:三种方法,一个目标

Z反变换,说白了就是把Z域的函数变回时域的序列。

你可能会问:为什么要折腾这个?

嗯,我们在前面用Z变换把差分方程变成了代数方程,算起来确实爽。但算完之后呢?你得把结果变回时间序列,才能知道系统到底怎么响应。这就是Z反变换的活儿。

我个人习惯用三种方法:部分分式展开法、幂级数展开法、留数法。每种都有它的脾气,咱们一个一个聊。

核心思想:已知 X(z),求 x[n]。

数学上写作:x[n] = Z⁻¹{X(z)}

3.1 部分分式展开法

这个方法我最常用。说白了,就是把复杂的X(z)拆成几个简单分式的和,然后查表。

为什么好用?因为Z变换表里就那么几个基本形式:单位脉冲、单位阶跃、指数序列……你把复杂函数拆成这些基本块的组合,反变换就是查表的事。

具体步骤:

  1. 把X(z)写成真分式形式(分子次数低于分母)
  2. 因式分解分母
  3. 展开成部分分式
  4. 查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)在所有极点处的留数之和。

计算步骤:

  1. 找出X(z)z^(n-1)的所有极点
  2. 计算每个极点处的留数
  3. 求和得到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%的工程问题都能解决。幂级数法作为辅助,留数法了解原理就行。别在方法选择上纠结,能算出来就是好方法。

知识体系图

下面这张图帮你理清三种方法的关系:

Z反变换三种方法 X(z) → x[n] 部分分式展开法 幂级数展开法 留数法 拆成简单分式 查表 长除法 取系数 找极点 求留数 工程首选:部分分式展开法

嗯,三种方法各有千秋。我个人建议你先把部分分式法练到肌肉记忆,遇到问题随手就能拆。幂级数法作为快速验证手段。留数法嘛,知道原理就行,真要用的时候再翻书。

记住:工具是为人服务的,别被工具牵着走。能算出来、算得对,就是好方法。


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