z变换全解析:收敛域、逆变换与系统稳定性一次讲透

发布时间:2026/9/23 16:31:00
z变换全解析:收敛域、逆变换与系统稳定性一次讲透 直接说结论如果一个学信号与系统的人问我整本书里哪一章最“值钱”我会毫不犹豫地说——第七章z变换。前面你花了大量时间啃卷积、傅里叶级数、傅里叶变换、拉普拉斯变换各种积分算到手抽筋但到了z变换这一章你会发现很多东西突然“通”了。差分方程、离散系统、频率响应、稳定性判断全部被z变换统一成一个框架。反过来如果你前几章学得稀碎尤其拉普拉斯变换那块没吃透那第七章你会有一种“既熟悉又陌生”的撕裂感——说穿了z变换就是拉普拉斯变换在离散世界的投影但又有它自己的脾气。这篇文章我准备抛开教材那种“定义—性质—例题”的平铺直叙直接从“为什么要引入z变换”“收敛域为什么那么重要”“逆变换到底有几种解法”“零极点图怎么看”这几条主线展开。不管你是正在期末冲刺的本科生还是准备考研二战信号与系统的选手或者工作中需要补数字信号处理底子的工程师这篇都值得你花二十分钟读完而且读完一定能救你于水火。1. 先搞清楚z变换到底在干什么很多同学第一次看到z变换的定义式时脑子里都是一个大大的问号好端端的序列为什么要乘上一个z的负n次方再求和这玩意儿和“变换”两个字有什么关系1.1 从差分方程到z变换一条线串起来咱们先回忆一下离散系统的核心——差分方程。比如一个简单的因果系统y[n] - 0.5y[n-1] x[n]要解这种方程理论上可以用递推法一项一项推知道y[-1]、x[0]、x[1]……硬算。但实际问题里信号长度成千上万递推法不仅慢还很难看出系统的本质特征。z变换的思路和拉普拉斯变换很像把“序列”映射成“复变函数”把“差分方程”变成“代数方程”。这样一来原来要解差分方程的运算变成了解一元方程难度直接降了一个维度。具体做法就是对等式两边同时做z变换利用z变换的时移性质若 x[n] 的 z 变换为 X(z)则 x[n-1] 的 z 变换为 z⁻¹X(z)单边z变换还需要考虑初始条件这个后面细说把差分方程两边做z变换后得到Y(z) - 0.5z⁻¹Y(z) X(z)整理一下就是系统函数H(z) Y(z) / X(z) 1 / (1 - 0.5z⁻¹)你看一个差分方程两步操作就变成了一个有理分式。后面所有系统分析——稳定性、频率响应、因果性——全都从这一个式子出发。这就是z变换第一个核心价值把“时域里的递推关系”压缩成“z域里的代数关系”。1.2 和傅里叶变换、拉普拉斯变换的关系一句话说清如果没有建立“三大变换”之间的联系你学第七章会很吃力。我打个比方傅里叶变换是拿一把“标准尺子”去量信号尺子上的刻度是固定的频率只能测信号里有“哪些频率分量”拉普拉斯变换则允许尺子既能伸缩幅度按指数增长或衰减又能震动频率所以能处理的信号范围更广z变换呢是把这套“伸缩震动”的逻辑搬到了离散世界但它不再沿直线扫而是在复平面上转圈。用数学语言说z re^(jω)。r就是离散域的“衰减/增长因子”ω是数字频率。当r 1时z e^(jω)z变换退化成离散时间傅里叶变换DTFT。这个联系极其关键——你在z变换里求出的东西在单位圆上一取值就是系统的频率响应。拉普拉斯变换的复变量是s σ jω映射到z域是z e^(sT)T为采样周期。所以很多教材都强调z变换可以看成拉普拉斯变换在“冲激采样”之后、再做一次变量替换的产物。这也是为什么你学第七章时会觉得“性质表”和拉普拉斯变换那么像——线性、时移、尺度变换、卷积定理全都一一对应只是把s换成z而已。但注意这种相似只是“气质相似”实际计算差异非常大。连续时间用的是积分离散时间用的是求和连续时间收敛域是s平面上的半平面离散时间收敛域是z平面上的圆环或圆外、圆内区域。别拿拉普拉斯的经验往z变换上硬套后面我会专门讲收敛域那些坑。2. 收敛域ROCz变换最容易翻车的分水岭我说句不好听的你们班上z变换学得稀烂的人十个里有八个是栽在收敛域上的。表达式谁都会算但收敛域写不对后面的逆变换、稳定性判断全完蛋。2.1 为什么不能只看X(z)的表达式z变换的定义是X(z) Σ x[n] z⁻ⁿ这个求和不一定对所有z都收敛。只有让这个级数绝对收敛的z值集合才是这个变换的收敛域。换句话说一个z变换的“完整描述”必须包含两部分表达式 收敛域。只有表达式而没写收敛域在数学上是不完整的在工程上甚至会产生歧义。最经典的例子x₁[n] (1/2)ⁿ u[n]对应 X(z) 1 / (1 - 0.5z⁻¹)ROC|z| 0.5 x₂[n] -(1/2)ⁿ u[-n-1]也对应 X(z) 1 / (1 - 0.5z⁻¹)但ROC|z| 0.5两个完全不同的序列z变换表达式完全相同只有收敛域不同才能区分它们。所以在z变换这里“函数表达式 收敛域”才是完整等价于原序列的。这也是为什么我在改作业的时候看到只写X(z)不写ROC的答案一律扣分——不是苛刻是你根本没掌握这章的精髓。2.2 四类序列的收敛域怎么判判断收敛域之前先代入几个基本结论右边序列n ≥ N₁ 时非零收敛域是某个圆的外部形式为 |z| R₁可能还要排除无穷远点。 左边序列n ≤ N₂ 时非零收敛域是某个圆的内部形式为 |z| R₂可能不包含z 0。 双边序列收敛域是一个圆环R₁ |z| R₂。 有限长序列收敛域几乎是整个z平面最多去掉z 0和/或z ∞。这个方法非常实用。拿到一个X(z)之后先看原序列是哪一类你就能预判收敛域的大致形状再配合极点的位置把边界确定下来。右边序列的ROC一定在所有极点模值的最大值之外左边序列的ROC一定在所有极点模值的最小值之内双边序列的ROC在内外极点之间找环带。判断收敛域的具体步骤我建议这么做先求极点然后在z平面上把所有极点按模值排序根据序列的左右属性确定ROC落在哪个区间。例如极点有0.3和2右边序列的ROC就是|z| 2左边序列就是|z| 0.3双边序列可能是0.3 |z| 2也可能没有收敛域如果内外极点之间没有空隙。2.3 收敛域与因果性、稳定性的对应关系这一小节是考试的重灾区也是理论联系实际的关键点。因果性一个因果系统的h[n]是右边序列n 0时为零所以LTI系统因果 ⇔ H(z)的收敛域是某个圆的外部包括无穷远点亦即h[n]满足n 0时为零。稳定性一个LTI系统BIBO稳定 ⇔ h[n]绝对可和 ⇔ H(z)的收敛域包含单位圆|z| 1。两者的结合如果还要因果那就是因果稳定系统的H(z)所有极点都必须严格在单位圆内即所有极点模值都小于1。这个结论你后面在滤波器设计、控制系统中会反复用。很多学生问我“老师那收敛域包含单位圆是不是就稳定”我反问他“因果吗”不因果的话收敛域包含单位圆只能说明稳定因果性要看收敛域是不是某个圆的外部。两者要分开判。我特别喜欢用一个例子来讲H(z) 1 / (1 - 1.5z⁻¹)。这个系统因果稳定吗X(z)的极点是z 1.5。如果选ROC为|z| 1.5系统因果但不稳定如果选ROC为|z| 1.5系统稳定但不因果。同一个表达式两个收敛域对应两种物理完全不同的系统。你写答案的时候不标收敛域神都救不了你。3. 逆z变换的三大解法哪种情况用哪种别上来就莽说实话求逆z变换的方法不少但真正考试和工程里常用的就三种——长除法、部分分式展开法、留数法。绝大多数题目用部分分式展开就够了但有的题适合长除法有的题用留数法更快你得学会“按需选择”。3.1 部分分式展开法最常用务必滚瓜烂熟这个方法的核心逻辑和拉普拉斯变换里的部分分式展开一模一样把X(z)拆成若干个简单的分式之和而每个简单分式都能在z变换对照表里找到对应的原序列。但有一个很大的坑z变换里常用的基本形式是 aⁿu[n] ↔ 1 / (1 - az⁻¹)分母里是z⁻¹不是z。所以直接在z域里拆部分分式拆出来未必直接对得上表。这时候建议先对X(z)/z做部分分式展开再乘z回来这样可以保证每一项分母都是关于z的一次式便于查表。我举个例子X(z) z / [(z - 0.5)(z - 0.3)]ROC|z| 0.5先算X(z)/z 1 / [(z - 0.5)(z - 0.3)]设1 / [(z - 0.5)(z - 0.3)] A/(z - 0.5) B/(z - 0.3)求解系数A、B乘回z后得到关于 z/(z-a) 的形式对应 aⁿu[n]。整个过程就顺畅了。提醒一下如果分子分母同阶比如X(z)本身就是z的多项式除以另一个z的多项式先做多项式长除凑出一个常数项对应δ[n]再继续展开。很多同学漏了这个常数项逆变换结果就缺了一部分。3.2 长除法幂级数展开法求前几项很好使长除法的原理很简单把X(z)表示成z⁻¹的幂级数形式系数就是x[n]的取值。换句话说你直接拿分母去除分子按z⁻¹的升幂或降幂排列除出来的系数序列就是答案。但这里有一个关键按z⁻¹升幂长除得到的ROC是|z| R适用于右边序列按z⁻¹降幂长除得到的ROC是|z| R适用于左边序列。方向搞反了求出来的序列方向完全错误。实际应用里长除法很少用来求完整闭式解更多用于数值验证——比如你在MATLAB里算出了H(z)想快速打印前几个冲激响应系数直接长除法效率很高。考试里如果题目只要求“求h[n]的前三项”长除法是最快的部分分式反而绕远。3.3 留数法围线积分法理论上最通用但计算别漏共轭极点留数法的公式是x[n] (1/2πj) ∮ X(z) z^(n-1) dz直接用这个公式求逆变换需要围线积分和留数定理。理论上它能处理任意有理函数包括多重极点。但实际操作里计算量不小而且很容易在下列地方出错对于双边序列要分n ≥ 0和n 0两种情况讨论因为围线内外包含的极点集合不一样。共轭极点成对出现只算一个会漏项最终结果变成复数怎么看都不对劲。n 0时积分路径上的极点处理要格外小心有时需要单独验证。我个人的经验留数法是“保险方案”不是“首选项”。如果你对部分分式展开法很有信心优先用部分分式只有遇到重极点或者题目明确要求用留数法的时候才考虑它。它能保证你大体正确但细节上对基本功的要求反而更高。3.4 逆变换实操经典题目走一遍完整流程我用一道考研常见题把整套流程串一遍。题目已知X(z) z² / [(z - 0.5)(z - 2)]ROC0.5 |z| 2求x[n]。看到ROC是一个圆环双边的序列确认。先分解X(z)/zX(z)/z z / [(z - 0.5)(z - 2)]令其等于A/(z - 0.5) B/(z - 2)用留数法或者待定系数法求解。解得A -1/3B 4/3所以X(z) (-1/3) · z/(z-0.5) (4/3) · z/(z-2)。现在关键来了ROC是0.5 |z| 2也就是说|z| 0.5且|z| 2。第一项极点0.5ROC在它外面所以对应右边因果序列(-1/3)(0.5)ⁿu[n]。第二项极点2ROC在它里面所以对应左边反因果序列(4/3)(-2ⁿu[-n-1])的变体等一下这里要特别小心。z/(z-2)对应的是2ⁿu[n]如果ROC是|z| 2对应的是-2ⁿu[-n-1]如果ROC是|z| 2。现在ROC是|z| 2所以第二项对应的是 (4/3)·(-2ⁿu[-n-1])。最终结果x[n] (-1/3)(0.5)ⁿu[n] - (4/3)(2ⁿ)u[-n-1]检查一下n 0时第一项为零第二项非零说明序列左边确实有值n ≥ 0时第一项非零第二项为零。序列两边都有值和ROC是圆环这一点完全自洽。这道题如果你只按因果序列来做第二项方向错了整个结果就废了。4. 从z变换到系统分析零极点图、稳定性与频率响应z变换不只是解题工具它最大的价值在系统分析。掌握了零极点图你对一个系统的“直觉”会大幅提升——看一眼图稳定性、滤波特性、大致的幅频响应曲线心理就有数了。4.1 系统函数与零极点图怎么画、怎么看由差分方程求系统函数前面已经演示过两边做z变换整理出H(z) Y(z)/X(z)。一般来说H(z)是个有理分式分子多项式为零的点叫零点分母多项式为零的点叫极点。在z平面上画零极点图时要注意极点用“×”表示零点用“○”表示零点现在可能落在原点或任意位置。别忘了标注单位圆单位圆是判断系统特性的基准线。如果分子分母有公因式先约分。不约分会引入虚假的零极点对在判断稳定性时产生假阳性/假阴性。约分后系统的零极点才是有效的。零极点图的物理含义极点反映了系统的“固有响应模式”极点越靠近单位圆该模式的衰减越慢系统越接近临界稳定零点反映系统“抑制”某些频率的能力零点落在单位圆上意味着对应频率被完全滤除。4.2 稳定性判断的三种等价表述判断系统稳定性在z域里至少有三种等价方式不同场景选不同方式时域判据冲激响应绝对可和h[n]绝对收敛。z域判据因果系统所有极点都在单位圆内即|p|1。收敛域判据ROC包含单位圆。考试时最常考的是第二种因为给定H(z)直接求极点模值就行。但我也见过很多同学解出极点后只看“1”就说稳定完全没注意系统到底因不因果。这里再强调一遍因果系统的极点都在单位圆内 ⇔ 因果稳定非因果系统即使有极点落在单位圆外也可能稳定只要ROC包含单位圆。千万别一棍子打死。我记得有个学弟拿着一个系统函数问“老师这系统极点是1.2和0.3它稳定吗”我反问他“系统因果吗”他说“ROC我选了0.3|z|1.2”我说那这个系统不因果但稳定因为ROC包含单位圆h[n]绝对可和。他恍然大悟。这种“非因果但稳定”的系统在理论分析、离线滤波设计里非常常见不要因为“不因果”就下意识觉得它不可用。4.3 在单位圆上取值从H(z)到频率响应频率响应是z变换到实际工程的一座桥。对于离散LTI系统在单位圆上取H(z)即令z e^(jω)就得到系统的频率响应H(e^(jω))。它的模|H(e^(jω))|是幅度响应辐角是相位响应。如果你已经画出零极点图可以用几何法估算幅频响应对某个频率ω在单位圆上找对应点e^(jω)计算该点到所有零点的距离乘积除以该点到所有极点的距离乘积就得到该频率的幅度响应。这个几何法在滤波器设计里太有用了——想在某个频率压一个很深的口子就把零点放在那个频率对应的圆上想在某个频率抬起来就把极点放近一点。不用算公式直接看几何关系就够了。4.4 MATLAB实操零极点图与幅频响应一气呵成分享一段我一直用的MATLAB代码片段适合快速看系统特性。% 定义系统函数 H(z) (1 0.5z^-1) / (1 - 1.2z^-1 0.7z^-2) num [1, 0.5]; den [1, -1.2, 0.7]; % 零极点图 zplane(num, den); grid on; title(Zero-Pole Plot); % 频率响应 [H, w] freqz(num, den, 1024, whole); figure; subplot(2,1,1); plot(w/pi, 20*log10(abs(H))); xlabel(Normalized Frequency (×π rad/sample)); ylabel(Magnitude (dB)); grid on; title(Magnitude Response); subplot(2,1,2); plot(w/pi, unwrap(angle(H))); xlabel(Normalized Frequency (×π rad/sample)); ylabel(Phase (rad)); grid on; title(Phase Response);运行这段代码你会直观看到极点位置与幅频峰值的对应关系。没事的时候多改改极点和零点的位置跑几个不同组合比死记硬背系统函数性质有用得多。我自己当年就是这么把零极点图和频率响应“焊”在脑子里的。5. z变换性质与常用变换对一张表搞定80%的题目很多人学z变换嫌性质表太多背不下来然后干脆放弃只背定义式。这是最亏的策略。实际上z变换常用性质就那么几个线性、时移、z域尺度变换、时域卷积、初值终值定理。真正高频考的就其中三四个。5.1 必须背牢的z变换性质线性性质不用多说和傅里叶变换、拉普拉斯变换完全一致。时移性质要特别注意单边和双边的区别双边z变换x[n-k] ↔ z⁻ᵏX(z)这个很简单。单边z变换时移之后会出现“初始项”。最常见的公式是x[n-1] ↔ z⁻¹X(z) x[-1]x[n1] ↔ zX(z) - zx[0]。具体符号每个教材略有差异但本质是初始条件引入的修正项。考差分方程初值问题的时候这一步错了后面全盘皆输。z域尺度变换是一个容易被忽略但非常好用的性质若x[n] ↔ X(z)则aⁿx[n] ↔ X(z/a)。它能帮你快速求出一系列“指数乘序列”的变换对。考试里直接查不到的变换对用这个性质从已知结果推出来效率很高。卷积定理在z域依然是两个序列卷积的z变换 各自z变换的乘积。这个性质联系到系统串联、级联系统的系统函数分析是z变换应用的核心。初值定理和终值定理是一对“偷懒神器”给你X(z)求x[0]、x[∞]不用做逆变换直接套公式。不过终值定理有条件要求(n-1)x[n]在n→∞时收敛也就是极点限制条件。用之前先看一眼条件否则可能得出错误的“终值”。5.2 常见序列变换对速查表为了照顾临时抱佛脚的读者我把最常用的变换对整理如下。不用死记多用几次就自然熟了时域x[n]z变换X(z)收敛域δ[n]1全部zu[n]1/(1-z⁻¹)aⁿu[n]1/(1-az⁻¹)-aⁿu[-n-1]1/(1-az⁻¹)n·aⁿu[n]az⁻¹/(1-az⁻¹)²cos(ω₀n)u[n](1 - cos(ω₀)z⁻¹)/(1 - 2cos(ω₀)z⁻¹ z⁻²)sin(ω₀n)u[n]sin(ω₀)z⁻¹/(1 - 2cos(ω₀)z⁻¹ z⁻²)看到没有u[n]、aⁿu[n] 这两行是你解题的地基几乎每一道逆z变换题最终都会拆成这两种形式。把这两组变换对背到条件反射的程度你的做题速度至少提升一倍。5.3 单边z变换与差分方程初值问题在我带的学生里单边z变换是重灾区很大程度上是因为教材为了省篇幅把单边和双边放在一起讲学生压根没意识到两者使用场景的差异。一句话总结单边z变换用于“已知因果信号或者需要处理初始条件”的场合双边z变换用于理论推导和系统特性分析。解差分方程时如果给定了初始条件y[-1]、y[-2]等必须用单边z变换如果没有初始条件或者只是求系统函数用双边z变换更方便。具体做题时我建议按这个流程先把差分方程写成“输出在左、输入在右”标准形式接着对方程两端做单边z变换逐项写时移公式把初始条件代入整理出Y(z)表达式再用部分分式法求逆变换。这个方法的好处是流程固定、不易漏项熟练后5分钟内就能解完一道二阶差分方程的初值题。6. 常见错误与避坑指南这些坑我当年全踩过写了一堆理论最后这一节是全文含金量最高的部分。以下每一条都来自我批改作业、答疑、自己翻车后的血泪总结。建议你截图保存。6.1 收敛域方向搞反因果序列的ROC是圆外反因果序列的ROC是圆内。但很多人拿到X(z)后只看表达式结构不验证序列类型直接把ROC写错。避免方法很简单凡是看到u[n]单位阶跃就想到|z| 极点模值的最大值看到u[-n-1]就想到|z| 极点模值的最小值。养成“先判序列方向再定收敛域”的习惯能避开一半以上的低级错误。6.2 部分分式展开后直接查表忽略常数项和z⁻¹形式X(z) z/(z-0.5)这条式子很多人会直接对表然后写x[n] 0.5ⁿu[n]。但问题是并不是所有X(z)都能直接拆成这种形式。如果X(z)里有常数项或者分子分母同阶你必须先把“整式部分”剥出来再做分式展开。否则逆变换会缺少δ[n]项对应的常数部分。类似的还有查表前要把z⁻¹的系数整理到和变换对一一对应的程度不要硬套。6.3 忽略零极点相消误判稳定性H(z) (z-0.5)/[(z-0.5)(z-1.2)]分子分母有公因子(z-0.5)。一个学生拿到手直接说“极点0.5和1.21.2在单位圆外系统不稳定”。表面上没错但如果当初的差分方程里这个零点在实际物理系统中恰好抵消了不稳定极点这个系统的实际冲激响应也许并不包含1.2对应的模式稳定性结论会被误判。正确做法先约分再判定并在极零图中把相消的零极点标注出来。6.4 把DTFT和z变换混为一谈单位圆上的z变换就是DTFT这话只说对了一半。只有当ROC包含单位圆时DTFT才存在如果ROC不包含单位圆那么即使H(z)在z e^(jω)处有定义比如通过解析延拓也不能直接解读为系统的频率响应因为系统本来就不稳定。很多滤波器设计的题第一步就是验证ROC是否包含单位圆别跳。6.5 MATLAB用zplane时忘记检查“数值型”还是“符号型”在MATLAB里zplane如果传的是符号表达式往往得不到期望的零极点图。一定要先转换或直接用数值向量输入。另外den不要写反zplane(b, a)中的b是分子系数a是分母系数。我见过不止一个同学传参顺序反了画出来零极点多了一堆还在那怀疑人生。6.6 考试/作业检查清单每次做完一道z变换题我都会让学生按这份清单自查题里给的是单边还是双边z变换初始条件用上了吗X(z)的收敛域写了没有和序列的左右性一致吗部分分式展开前分子分母阶数检查了吗常数项剥出来了吗逆变换的每一项都根据ROC选对了方向右边/左边吗如果涉及稳定性因果性和稳定性分开判了吗零极点先约分了吗这五条全部打勾你再交卷。这套检查习惯我用了十年几乎从没丢过不该丢的分。7. 实际应用场景与学习建议写到这里你应该明白了z变换不只为了考试它是数字世界的“母语”。离散信号无处不在凡是跟采样、数字滤波、控制系统、通信算法打交道的领域z变换都是底层框架。7.1 数字滤波器设计中的角色在FIR/IIR滤波器设计里我们通常先定频率响应指标再设计H(z)。比如设计一个低通IIR滤波器本质就是找一个分子分母多项式让极点在低频区靠近单位圆零点在高频区落位然后验证稳定性所有极点在单位圆内和幅频响应是否达标。没有z变换和零极点图的框架这些工作完全没法展开。所以很多做音频处理、传感器信号处理的同学回头补《信号与系统》第七章就是在补滤波器设计的底子。7.2 控制系统分析与校正中的应用离散控制系统里系统的闭环传递函数仍然是z域的有理函数。判断系统是否稳定用的是极点是否在单位圆内分析稳态误差用z变换的终值定理设计PID控制器时要对零极点布局做校正。这些全是第七章的内容。如果你后续学《自动控制原理》或《数字控制》会发现z变换在这里的作用比连续域还频繁。7.3 给不同基础读者的学习进度建议零基础/初学阶段约7天第一天到第二天把z变换定义、常用变换对、性质表背熟第三天到第四天专门练逆z变换的三种方法每种至少做5道题第五天到第六天刷收敛域和稳定性判断题每天10道选择题或者判断题速度会提升很快第七天做一套综合大题比如包含差分方程求解、系统函数、零极点图、稳定性判断的完整流程题。有傅里叶/拉普拉斯基础、准备考试约3天第一天快速过一遍性质表和变换对重点看单边z变换和时移公式第二天专门突击逆z变换和收敛域做10道典型大题第三天做两套真题/模拟卷按上文的检查清单逐项自查。这样的安排效率很高适合考前冲刺。工作中的工程师随用随查不需要按教材顺序学直接从你手头的滤波器或控制系统问题入手。拿到H(z)先画零极点图再看频率响应遇到逆变换问题再回来查方法。工具化地使用z变换比系统啃教材更能解决实际问题。最后再分享一个我个人的小技巧学z变换的时候每学一个性质你就手动验证一个例子然后把这个例子和前面学过的傅里叶变换对应一下。比如验证完aⁿu[n]的z变换你就顺手想想它的DTFT在什么条件下存在频域长什么样。这样把新旧知识串起来比你单独啃第七章要牢固得多。我在辅导过程中发现凡是能把三大变换“打通”的学生后面学数字信号处理、通信原理都轻松得多。希望这篇长文能帮你把z变换这章真正吃透而不是考前背完就忘。