4. Z变换基础:Z变换的定义、Z变换的收敛域、常用函数的Z变换
各位同学,咱们今天聊聊Z变换。说实话,我刚接触离散系统那会儿,总觉得Z变换是个挺玄乎的东西。后来做项目做多了才发现,它其实就是连续系统里拉普拉斯变换的“离散版”。你想想看,计算机只能处理离散的采样点,那咱们怎么分析这些采样点构成的系统?Z变换就是干这个的。
4.1 Z变换的定义
先看定义。对于一个离散时间序列 x[n],它的Z变换定义为:
X(z) = Σ x[n] * z^(-n) (n从 -∞ 到 +∞)
这里 z 是个复变量。说白了,就是把时域里的序列,映射到复频域里。我个人习惯把 z 看作一个“移位算子”,z^(-1) 代表延迟一个采样周期。
双边Z变换 vs 单边Z变换
上面那个求和是从负无穷到正无穷,这叫双边Z变换。实际工程中,我们处理的信号往往是有起因的(n≥0),所以更常用单边Z变换:
X(z) = Σ x[n] * z^(-n) (n从 0 到 +∞)
我在项目中遇到过一个问题:用双边Z变换分析一个非因果系统时,收敛域搞错了,结果系统稳定性判断完全反了。嗯,这里要注意,收敛域是Z变换的灵魂。
4.2 Z变换的收敛域(ROC)
Z变换不是对所有z值都收敛的。使级数收敛的z的取值范围,就是收敛域(Region of Convergence, ROC)。
为什么会这样?因为z^(-n)这个因子,当|z|很小时,负幂次项会发散;当|z|很大时,正幂次项会发散。所以ROC通常是一个环形区域:
R₁ < |z| < R₂
我给大家总结几个关键点:
- 有限长序列:ROC是整个z平面,可能除去0和∞
- 右边序列(n≥N₁):ROC是某个圆的外部,|z| > R
- 左边序列(n≤N₂):ROC是某个圆的内部,|z| < R
- 双边序列:ROC是一个环形区域
避坑指南
我曾经在分析一个数字滤波器的稳定性时,只算了Z变换的表达式,忘了看ROC。结果滤波器明明不稳定,我愣是没发现。记住:没有ROC的Z变换是不完整的。系统稳定的充要条件是ROC包含单位圆。
4.3 常用函数的Z变换
做工程嘛,背几个常用变换对,能省不少事。我列个表,大家收藏好:
| 时域序列 x[n] (n≥0) | Z变换 X(z) | 收敛域 |
|---|---|---|
| δ[n](单位脉冲) | 1 | 整个z平面 |
| u[n](单位阶跃) | z / (z - 1) | |z| > 1 |
| a^n * u[n](指数序列) | z / (z - a) | |z| > |a| |
| n * a^(n-1) * u[n] | z / (z - a)² | |z| > |a| |
| cos(ω₀n) * u[n] | (z² - z·cosω₀) / (z² - 2z·cosω₀ + 1) | |z| > 1 |
| sin(ω₀n) * u[n] | z·sinω₀ / (z² - 2z·cosω₀ + 1) | |z| > 1 |
我的小技巧
记指数序列的变换对时,我习惯这么想:a^n 对应 z/(z-a)。分母的 a 和指数的底数 a 是一样的。至于阶跃函数,就是 a=1 的特例。这样记,不容易乱。
4.4 知识体系结构图
下面这张图,是我自己梳理的Z变换知识脉络。你看一遍,心里就有谱了:
4.5 一个简单的计算例子
光说不练假把式。咱们算一个:求 x[n] = (0.5)^n * u[n] 的Z变换。
根据公式:
X(z) = Σ (0.5)^n * z^(-n) (n从0到+∞)
= Σ (0.5 / z)^n
= 1 / (1 - 0.5/z) (等比级数求和,要求 |0.5/z| < 1)
= z / (z - 0.5) (收敛域:|z| > 0.5)
你看,结果和表格里 a=0.5 的情况完全一致。收敛域是 |z| > 0.5,因为这是个右边序列。如果系统是因果的,那ROC一定在某个圆的外部。
核心要点
Z变换把离散时域的差分方程,变成了复频域的代数方程。这样一来,分析系统稳定性、频率响应就方便多了。但千万记住:ROC和表达式同样重要。没有ROC,你都不知道这个变换对应的是因果系统还是非因果系统。
好了,Z变换的基础就这些。我个人觉得,先把这几个常用变换对记熟,把ROC的概念吃透,后面学逆Z变换、传递函数什么的,就会顺畅很多。