Z变换把离散时间序列(如 x[0],x[1],x[2],x[0], x[1], x[2], \dots)改写成复变量 zz 的函数。它之所以重要,是因为移位和逐步递推关系会变成代数表达式,而这通常更容易分析。

对于双边序列 x[n]x[n],双边 Z 变换定义为

X(z)=n=x[n]znX(z) = \sum_{n=-\infty}^{\infty} x[n] z^{-n}

前提是这个级数收敛。如果你的问题从 n=0n=0 开始,并且关注因果序列,很多课程会改用单边形式:

X(z)=n=0x[n]znX(z) = \sum_{n=0}^{\infty} x[n] z^{-n}

关键不在于哪一种写法看起来更简洁。关键在于你应当使用与题目设定相匹配的定义。

Z变换能帮你做什么

在离散时间问题中,延迟一个时间步对应于乘上一个因子 z1z^{-1}。这就是为什么 Z 变换对线性差分方程、数字滤波器和递推关系很有用:对序列的运算会转化为关于 X(z)X(z) 的代数运算。

它可以看作拉普拉斯变换在离散时间中的对应工具。两者都会把时域问题转化为变换域问题,但 Z 变换针对的是以整数为索引的序列,而不是连续时间函数。

例题:x[n]=anu[n]x[n] = a^n u[n]

u[n]u[n] 为单位阶跃序列,即当 n0n \ge 0u[n]=1u[n] = 1,当 n<0n < 0u[n]=0u[n] = 0。那么

x[n]=anu[n]x[n] = a^n u[n]

表示这个序列是右边序列:

1,a,a2,a3,1, a, a^2, a^3, \dots

使用单边定义,

X(z)=n=0anzn=n=0(az1)nX(z) = \sum_{n=0}^{\infty} a^n z^{-n} = \sum_{n=0}^{\infty} (a z^{-1})^n

这是一个几何级数。它的和为

X(z)=11az1=zzaX(z) = \frac{1}{1 - a z^{-1}} = \frac{z}{z-a}

前提是比值 az1a z^{-1} 满足

az{1}<1|a z^\{-1\}| < 1

这个条件等价于

z>a|z| > |a|

所以完整答案不只是 X(z)=zzaX(z) = \frac{z}{z-a}。完整答案是

X(z)=zza,ROC: z>aX(z) = \frac{z}{z-a}, \qquad \text{ROC: } |z| > |a|

最后这个条件是变换结果的一部分,不是附带说明。

为什么收敛域很重要

收敛域(region of convergence,ROC)是使定义级数真正收敛的所有 zz 值的集合。没有 ROC,这个代数表达式就可能有歧义。

例如,不同的序列可能得到相同的有理式表达式,但对应不同的 ROC。这就是为什么老师通常要求同时写出公式和收敛域。

为了快速建立直觉,可以把一个 Z 变换结果看成一对信息:

关于 z 的公式+该公式成立的范围\text{关于 } z \text{ 的公式} \quad + \quad \text{该公式成立的范围}

Z变换中的常见错误

最常见的错误是漏写 ROC。如果把它省略掉,你可能会丢失关于序列是右边、左边还是双边的重要信息。

另一个常见错误是在没有注意的情况下混用了单边和双边定义。它们在一些标准因果例子中结果一致,但并不是在所有推导里都可以互换。

第三个错误是把 zz 当成普通实变量来处理。一般来说,zz 是复数,因此它的模和它在复平面中的位置都很重要。

学生还常常过于机械地记忆变换对。这是有风险的,因为一个很小的符号错误、漏掉一个移位,或者起始索引写错,都可能改变答案。

Z变换在什么时候使用

你会在离散时间信号处理、数字控制和线性递推问题中看到 Z 变换。如果一个系统是按一步一步演化,而不是连续变化,那么它通常就是最自然的变换工具。

当你需要求解差分方程、描述数字滤波器,或者把一个序列与极点和收敛性质联系起来时,它尤其有用。

快速读懂一个 Z变换答案的方法

当你看到一个结果时,按顺序检查下面四件事:

  1. 被变换的是什么序列?
  2. 使用的是双边定义还是单边定义?
  3. 得到的 X(z)X(z) 是什么代数形式?
  4. ROC 是什么?

这个检查清单能避免很多本可避免的错误。

试一道类似的题

x[n]=(12)nu[n]x[n] = \left(\frac{1}{2}\right)^n u[n] 重复同样的过程。先写出级数,把它化成几何级数,再求出 ROC。如果你想再进一步,可以把这个结果与拉普拉斯变换比较,并注意这两种方法都会把收敛条件附在公式上,而不是把公式本身当作完整答案。

需要解题帮助?

上传你的问题,几秒钟内获得经过验证的分步解答。

打开 GPAI Solver →