4. Z变换进阶:从理论到实战

好,咱们继续往下走。前面我们聊了Z变换的基础,说白了就是给离散信号找了个频域里的“身份证”。但光有身份证还不够,你得知道怎么用它来干活。这一章,我带你看看Z变换的几个硬核工具——卷积定理、初值终值定理,还有怎么用它解差分方程。

本章核心脉络: 卷积定理帮我们简化系统分析,初值终值定理能快速判断系统行为,而差分方程求解则是把这些工具串起来,解决实际问题。

Z变换进阶 卷积定理 初值/终值定理 差分方程求解 部分分式展开 时域卷积→Z域乘积 系统稳态/初始判断

4.1 卷积定理:时域卷积,Z域乘积

先说说卷积定理。这玩意儿在信号处理里太常用了。我当年做数字滤波器设计时,每次要算两个序列的卷积,手算能算到怀疑人生。后来发现,用Z变换,直接把卷积变成乘法——舒服多了。

定理内容很简单:

如果 y[n] = x[n] * h[n](*表示卷积),那么 Y(z) = X(z) · H(z)

反过来也一样:Z域里两个函数相乘,对应时域就是卷积。

我的经验: 做系统分析时,我习惯先把系统脉冲响应h[n]的Z变换H(z)求出来。然后输入信号的Z变换X(z)一乘,反变换回去就是输出。比在时域里一点点卷积快太多了。

举个例子:

已知系统 h[n] = {1, 2, 1}(n=0,1,2)
输入 x[n] = {1, 1}(n=0,1)
求输出 y[n]

时域卷积:y[0]=1, y[1]=3, y[2]=3, y[3]=1
Z域方法:
H(z) = 1 + 2z⁻¹ + z⁻²
X(z) = 1 + z⁻¹
Y(z) = (1 + 2z⁻¹ + z⁻²)(1 + z⁻¹) = 1 + 3z⁻¹ + 3z⁻² + z⁻³
反变换:y[n] = {1, 3, 3, 1} ✓

结果完全一样,但Z域里就是多项式乘法,简单多了。

注意: 卷积定理成立的前提是系统是线性时不变(LTI)的。如果系统是非线性的,这招就不灵了。我曾经在一个自适应滤波项目里踩过这个坑,折腾了两天才发现是系统非线性导致的。

4.2 初值定理与终值定理:快速判断系统行为

这两个定理特别实用。有时候你不需要知道系统的完整响应,只需要知道一开始怎么样、最后稳定到多少。初值定理和终值定理就是干这个的。

初值定理:

如果 x[n] 是因果序列(n<0时x[n]=0),那么:

x[0] = lim(z→∞) X(z)

说白了,就是看Z变换在z趋于无穷大时的极限,就能得到序列的第一个值。

终值定理:

如果 x[n] 收敛(系统稳定),那么:

x[∞] = lim(z→1) (1 - z⁻¹) X(z)

实战场景: 我在调试一个数字电源的PID控制器时,需要快速判断系统在阶跃输入下的稳态误差。用终值定理,算一下(1-z⁻¹)乘以误差的Z变换,再取z→1的极限,几秒钟就知道稳态误差是多少。不用等仿真跑完,也不用解差分方程。

举个例子:

系统传递函数 H(z) = (z + 0.5) / (z - 0.8)
输入为单位阶跃 u[n] → U(z) = z/(z-1)
输出 Y(z) = H(z) · U(z) = (z+0.5)z / [(z-0.8)(z-1)]

用终值定理求稳态输出:
y[∞] = lim(z→1) (1-z⁻¹) · Y(z)
     = lim(z→1) (z-1)/z · (z+0.5)z / [(z-0.8)(z-1)]
     = lim(z→1) (z+0.5) / (z-0.8)
     = (1+0.5)/(1-0.8) = 1.5/0.2 = 7.5

嗯,这里要注意:终值定理要求系统稳定,也就是极点都在单位圆内。如果系统不稳定,算出来的终值没有意义。

4.3 差分方程求解:Z变换的看家本领

差分方程是离散系统的“运动方程”。你想想看,一个数字滤波器、一个数字控制器,本质上都是在解差分方程。Z变换把差分方程变成了代数方程,这才是它的核心价值。

基本步骤:

  1. 对差分方程两边取Z变换(利用位移定理)
  2. 代入初始条件
  3. 解出Y(z)的代数表达式
  4. 部分分式展开(下一节细说)
  5. 查表或反变换得到y[n]

看个例子:

差分方程:y[n] - 0.5y[n-1] = x[n]
初始条件:y[-1] = 0
输入:x[n] = δ[n](单位脉冲)

两边取Z变换:
Y(z) - 0.5[z⁻¹Y(z) + y[-1]] = X(z)
代入y[-1]=0,X(z)=1:
Y(z) - 0.5z⁻¹Y(z) = 1
Y(z)(1 - 0.5z⁻¹) = 1
Y(z) = 1 / (1 - 0.5z⁻¹) = z / (z - 0.5)

反变换:y[n] = (0.5)ⁿ · u[n]

我的习惯: 做差分方程求解时,我建议先把系统函数H(z)求出来。这样以后换不同的输入,直接乘H(z)就行,不用每次都从头解方程。就像搭积木一样,H(z)就是那块最核心的积木。

4.4 部分分式展开法:反变换的关键一步

这部分是很多同学的痛点。Z反变换时,Y(z)通常是个有理分式,直接查表查不到。这时候就需要部分分式展开,把它拆成几个简单分式的和。

核心思路: 把复杂分式拆成 z/(z-p₁)z/(z-p₂) 这种形式,每一项对应一个指数序列。

步骤:

  1. 先把Y(z)写成 N(z)/D(z) 的形式
  2. 因式分解分母D(z)
  3. 根据极点类型(单极点、重极点、共轭复极点)选择展开形式
  4. 求待定系数
  5. 逐项反变换

看个单极点的例子:

Y(z) = (z² + z) / (z² - 0.5z + 0.06)

先分解分母:
z² - 0.5z + 0.06 = (z - 0.2)(z - 0.3)

展开成部分分式(注意要写成z/(z-p)的形式):
Y(z)/z = (z + 1) / [(z - 0.2)(z - 0.3)]
       = A/(z-0.2) + B/(z-0.3)

求系数:
A = (0.2+1)/(0.2-0.3) = 1.2/(-0.1) = -12
B = (0.3+1)/(0.3-0.2) = 1.3/0.1 = 13

所以:
Y(z) = -12z/(z-0.2) + 13z/(z-0.3)

反变换:
y[n] = -12(0.2)ⁿ + 13(0.3)ⁿ, n ≥ 0

避坑指南: 我曾经在展开时忘了检查分子分母的次数。如果分子次数≥分母次数,要先做多项式除法,把真分式部分分离出来。否则展开出来的系数会出错,反变换结果自然不对。这个坑我踩过,后来养成了先检查次数再动手的习惯。

对于重极点的情况,比如分母有 (z-p)²,展开形式要写成:

Y(z)/z = A/(z-p) + B/(z-p)² + ...

反变换时,z/(z-p)² 对应的是 n·pⁿ⁻¹,这个要记住。

总结一下: 卷积定理、初值终值定理、差分方程求解、部分分式展开,这四个工具是Z变换应用的四大支柱。卷积定理简化分析,初值终值定理快速判断,差分方程求解是核心应用,部分分式展开是反变换的关键。把它们串起来,你就能解决绝大多数离散系统的建模与分析问题。

好了,这一章的内容就到这儿。记住,理论是死的,但应用是活的。多动手算几个例子,慢慢就有感觉了。


专注资料整理