4. Z变换的性质(上):线性、时移、尺度变换性质

各位同学,今天我们聊聊Z变换的性质。说实话,这部分内容在教科书上往往被写成「性质列表+公式证明」的枯燥形式。但在我十几年的信号处理工程生涯中,这些性质恰恰是解决实际问题的利器。你想想看,一个复杂的系统,往往就是靠这几条性质拆解成简单模块的。

我个人习惯把Z变换的性质分成两组:「操作型」「变换型」。今天先讲前三项——线性、时移、尺度变换。这三条性质,说白了就是Z变换的「加减乘除」基本功。

核心观点:Z变换的性质,本质上是将时域操作映射到z域。你掌握了这个映射关系,就能在时域和z域之间自由切换。

4.1 线性性质:最直观,也最容易出错

线性性质其实就两句话:和的Z变换等于Z变换的和,数乘的Z变换等于Z变换的数乘。用公式表达就是:

若 x₁[n] ↔ X₁(z),x₂[n] ↔ X₂(z)
则 a·x₁[n] + b·x₂[n] ↔ a·X₁(z) + b·X₂(z)

嗯,这里要注意——收敛域。两个序列相加后,收敛域是它们收敛域的交集。我在项目中遇到过一位同事,他计算两个序列的Z变换时,直接用了各自的收敛域,结果系统稳定性判断错了。后来排查才发现,两个收敛域的交集是空集,说明这个组合序列的Z变换根本不存在。

避坑指南:我曾经在分析一个数字滤波器时,忽略了收敛域的交集问题。两个序列各自收敛,但相加后在某些z值上不收敛。记住:线性性质成立的前提是收敛域非空。

实例:计算 x[n] = 2·(0.5)ⁿ·u[n] + 3·(-0.2)ⁿ·u[n] 的Z变换。

解:查表可知,(0.5)ⁿ·u[n] ↔ z/(z-0.5),收敛域 |z| > 0.5
(-0.2)ⁿ·u[n] ↔ z/(z+0.2),收敛域 |z| > 0.2

根据线性性质:X(z) = 2·z/(z-0.5) + 3·z/(z+0.2)
收敛域为 |z| > 0.5(取交集,较大的那个)

4.2 时移性质:延迟与超前

时移性质,说白了就是「时域延迟对应z域乘以z的负幂」。这个性质在数字信号处理中太常用了,尤其是分析数字滤波器的延迟效应。

若 x[n] ↔ X(z),收敛域为 R
则 x[n-k] ↔ z⁻ᵏ·X(z),收敛域为 R(可能增加或去除 z=0 或 z=∞)

为什么会有收敛域的变化?你想想看,延迟一个序列,相当于在序列前面补了零。如果k>0(右移),序列在n=0之前出现了非零值,这会影响收敛域在z=∞处的行为。我建议你记住一个口诀:「右移补零,左移补零,收敛域看边界」

实例:已知 x[n] = (0.8)ⁿ·u[n],求 x[n-3] 的Z变换。

解:x[n] ↔ X(z) = z/(z-0.8),|z| > 0.8
x[n-3] ↔ z⁻³·z/(z-0.8) = z⁻²/(z-0.8),|z| > 0.8

注意:这里收敛域没变,因为右移3个单位,序列在n=0处仍然是0(u[n-3]在n=0时为0)。

常见错误:我曾经看到有人把 x[n+2] 的Z变换写成 z²·X(z) 就完事了。不对!超前操作(左移)会改变序列在n=0之前的取值,需要减去这些「提前出现的值」。公式是:x[n+k] ↔ zᵏ·[X(z) - Σx[n]·z⁻ⁿ],求和从n=0到k-1。

4.3 尺度变换:z域的伸缩

尺度变换性质,我个人觉得是三条性质里最「优雅」的一条。它揭示了时域指数加权和z域尺度伸缩之间的对偶关系。

若 x[n] ↔ X(z),收敛域为 R
则 aⁿ·x[n] ↔ X(z/a),收敛域为 |a|·R

说白了,时域乘以指数序列 aⁿ,相当于z域做尺度变换 z → z/a。这个性质在分析系统的极点移动时特别有用。

实例:已知 x[n] = u[n] ↔ X(z) = z/(z-1),|z| > 1
求 (0.5)ⁿ·u[n] 的Z变换。

解:根据尺度变换性质,a=0.5
(0.5)ⁿ·u[n] ↔ X(z/0.5) = (z/0.5)/(z/0.5 - 1) = z/(z-0.5)
收敛域:|z/0.5| > 1 → |z| > 0.5

你看,结果和查表完全一致。这就是性质的威力——不需要每次都从头推导。

实用技巧:我在设计数字滤波器时,经常用尺度变换来调整系统的极点位置。比如一个低通滤波器的极点原本在z=0.9,乘以0.5ⁿ后,极点就移到了z=0.45,带宽变宽了。这种「参数化设计」的思路,就是靠尺度变换性质实现的。

4.4 三条性质的关系与对比

为了帮你理清思路,我整理了一个对比表格:

性质 时域操作 z域结果 收敛域变化
线性 a·x₁[n] + b·x₂[n] a·X₁(z) + b·X₂(z) 取交集
时移(右移) x[n-k] z⁻ᵏ·X(z) 可能增加z=0
时移(左移) x[n+k] zᵏ·[X(z) - 初值项] 可能去除z=∞
尺度变换 aⁿ·x[n] X(z/a) 缩放|a|倍

下面我用一张SVG图来展示这三条性质的核心逻辑:

Z变换三大性质核心逻辑 时域序列 x[n] z域变换 X(z) Z{·} 线性:a·x₁[n]+b·x₂[n] ↔ a·X₁(z)+b·X₂(z) | 收敛域取交集 时移:x[n-k] ↔ z⁻ᵏ·X(z) | 右移补零,左移减初值 尺度变换:aⁿ·x[n] ↔ X(z/a) | 收敛域缩放|a|倍

4.5 综合应用:一个实际案例

最后,我分享一个我在项目中遇到的真实案例。当时需要分析一个数字回声系统,其输入输出关系为:

y[n] = x[n] + 0.6·x[n-5] + 0.3·y[n-3]

这是一个带反馈的回声系统。要求系统的传递函数 H(z) = Y(z)/X(z)。

解:对两边取Z变换,用线性性质和时移性质:

Y(z) = X(z) + 0.6·z⁻⁵·X(z) + 0.3·z⁻³·Y(z)
Y(z) - 0.3·z⁻³·Y(z) = X(z) + 0.6·z⁻⁵·X(z)
Y(z)·(1 - 0.3·z⁻³) = X(z)·(1 + 0.6·z⁻⁵)
H(z) = Y(z)/X(z) = (1 + 0.6·z⁻⁵) / (1 - 0.3·z⁻³)

你看,只用到了线性性质和时移性质,就把一个复杂的差分方程变成了简单的代数方程。这就是Z变换性质的威力——把时域的差分方程,变成z域的代数方程

总结:线性性质是「加减法」,时移性质是「延迟算子」,尺度变换是「指数加权」。这三条性质构成了Z变换运算的基石。我建议你多做几道练习题,把这三条性质用熟。下次遇到复杂系统,你就能像我一样,快速在时域和z域之间切换了。


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