新闻详情

新闻详情

首页 / 资讯中心 / 详情

z变换与z域分析:收敛域、性质与系统函数精讲

发布时间:2026/9/30 1:14:20来源:尧图网络
z变换与z域分析:收敛域、性质与系统函数精讲
【信号与系统】二十三 z变换与z域分析——z变换及其性质学到离散时间系统这块很多人会卡在一个坎上前面拉普拉斯变换刚摸熟转眼又冒出个z变换符号长得像、性质也像可一旦做起题来收敛域怎么画、性质怎么套、系统函数怎么求脑子就开始打结。我自己当年学这一章的时候光收敛域就反复栽了三回跟头后来带项目做数字滤波器设计才真正把这些性质用进了工程里。z变换说白了就是离散信号世界的“拉普拉斯变换”它把一串离散序列映射到复频域让我们能用代数方法处理差分方程、分析系统稳定性、设计各类数字滤波器。这篇文章面向正在啃信号与系统教材的同学也面向已经工作、想把离散系统分析捡起来的工程师从定义、收敛域到性质逐条拆开讲附带我用代码验证的过程和若干踩坑记录。看完你至少能做到给定一个序列能写出它的z变换并画出收敛域拿到一个系统函数能判断因果性和稳定性用几条核心性质快速化简变换式。1. 为什么离散信号分析绕不开z变换1.1 从离散序列到复频域的桥梁连续时间系统里我们靠拉普拉斯变换把微分方程变成代数方程到了离散时间系统差分方程扮演同样的角色而z变换就是把它代数化的那把工具。一个离散序列 x[n] 经过z变换后变成 X(z)其中 z 是一个复变量通常写成 z re^{jω}。这个 r 和 ω 的分解特别关键ω 对应频率r 对应幅度衰减或增长因子。当我们取 r 1也就是让 z 落在单位圆上z变换就退化成离散时间傅里叶变换DTFT这时候 X(z) 直接反映了序列的频谱特征。所以你可以把z变换理解成傅里叶变换的“加强版”它多了一个幅度维度能处理那些傅里叶变换不收敛的信号比如不断增长的序列。我一开始学的时候总把 z 当成一个普通数字后来才反应过来它是个复平面上的点整个复平面才是z变换的“舞台”。一个序列的z变换 X(z) 通常是它自己复平面上的有理函数分母的零点决定了这个函数在哪些地方“爆炸”也就是极点。极点的位置直接决定了系统的稳定性这一点在后面讲系统函数时是重中之重。1.2 它到底解决了哪些实际问题z变换在工程里的用处不只是解题。数字滤波器设计是它的主战场之一给定通带、阻带、纹波这些指标我们通过z域设计得到系统函数 H(z)再把 H(z) 的分子分母系数直接变成代码里差分方程的系数落到FPGA或者DSP上运行。我一个做音频处理的朋友他们团队做的降噪算法核心就是几组巴特沃斯和切比雪夫数字滤波器每一个都建立在z域分析之上。另一个典型场景是控制系统的离散化连续控制器先在s域设计好再用双线性变换之类的映射搬到z域这样才能在单片机上按采样周期跑起来。还有通信里的信道均衡、语音编码里的线性预测背后都有z变换的影子。也就是说这一章不是纸上谈兵它是整个数字信号处理的数学地基。1.3 为什么不能只用傅里叶变换这里我要专门解释一下“为什么要有z变换”这个新手最常问的问题。傅里叶变换要求序列绝对可和也就是 Σ|x[n]| ∞可现实里有大把信号不满足比如指数增长序列 a^n u[n]a 1。这些信号在傅里叶变换下是发散的没法分析。z变换通过引入衰减因子 r^{-n}让 Σ|x[n]|r^{-n} 在某个 r 范围内收敛把不收敛的信号“拽”回了可分析的区间。这个收敛的 r 范围就是收敛域ROC。等分析完了再让 r 趋近于 1就能反推出频域特性。所以z变换本质上是给傅里叶变换加了个可调的权重让它能对付更广的一类信号。我当初理解这一点之后收敛域那部分突然就通透了——收敛域不是凭空冒出来的约束而是这个加权因子存在的前提。2. z变换的定义与收敛域怎么吃透2.1 双边z变换和单边z变换的区别定义先摆出来。双边z变换X(z) Σ_{n-∞}^{∞} x[n] z^{-n}单边z变换X(z) Σ_{n0}^{∞} x[n] z^{-n}两者的差别就在求和下限。双边变换考虑 n 从负无穷到正无穷适合分析非因果系统和双边序列单边变换只管 n ≥ 0适合分析因果系统而且它有一个巨大优势能把时移性质处理得很干净用来解带初始条件的差分方程。很多人做课后题时分不清什么时候用哪个我给你一个判断标准如果题目强调“因果”“初始松弛”基本用单边如果让你分析一个双边序列或者反因果序列的变换用双边。需要特别提醒的是单边z变换对时移的处理有初始条件项比如 x[n-1] 的单边变换是 z^{-1}X(z) x[-1]这个 x[-1] 就是初始条件解差分方程时千万别漏。2.2 收敛域的判定逻辑和三种形态收敛域是z变换最容易丢分的地方因为同一个 X(z) 表达式配不同的收敛域对应完全不同的序列。判定核心就一句话让 Σ|x[n]|r^{-n} 收敛的 r 的范围。写成 z re^{jω}代入定义|z| r 决定了收敛性相位 ω 不影响收敛。所以收敛域在复平面上一定是关于原点对称的环状区域只有三种形态有限长序列收敛域是整个z平面可能去掉 z 0 或 z ∞。右边序列因果收敛域是某个圆的外面|z| r_max。左边序列反因果收敛域是某个圆的内部|z| r_min。双边序列收敛域是两个圆之间的环r_min |z| r_max。我踩过的坑是这样的算 X(z) 的时候把它化成分式和然后只看极点就下结论。但收敛域的关键在于“看序列的支撑区间”必须回到原序列判断它是左边、右边还是双边才能定下收敛域落在极点的哪一侧。举个例子1/(1-az^{-1}) 这个表达式如果 |z| |a|对应 a^n u[n]如果 |z| |a|对应 -a^n u[-n-1]。同一个式子两个完全不同的序列。这就是为什么单看 X(z) 是不够的必须带上收敛域这也是考试里最常见的陷阱。2.3 常见序列变换对照表下面这张表是我复习和做项目时反复查的建议直接记牢。记住这些再配合性质绝大多数题都能拆出来。序列 x[n]z变换 X(z)收敛域δ[n]1整个z平面u[n]1/(1-z^{-1})|z| 1-u[-n-1]1/(1-z^{-1})|z| 1δ[n-m]z^{-m}整个z平面z≠0a^n u[n]1/(1-az^{-1})|z| |a|-a^n u[-n-1]1/(1-az^{-1})|z| |a|n a^n u[n]az^{-1}/(1-az^{-1})^2|z| |a|cos(ω₀n)u[n](1 - cosω₀ z^{-1})/(1 - 2cosω₀ z^{-1} z^{-2})|z| 1sin(ω₀n)u[n]sinω₀ z^{-1}/(1 - 2cosω₀ z^{-1} z^{-2})|z| 1注意这张表里 a 可以是复数收敛域判据 |z| |a| 用的是模。当 a 是复数时a^n 是复指数序列实部和虚部分别对应衰减余弦和衰减正弦很多教程只给实数情况实际工程里复数 a 非常常见。我个人的经验是把 a^n u[n] 这一条背到滚瓜烂熟其他的都能推n a^n u[n] 就是对 a 参数求导再乘 -zcos 和 sin 就是把 e^{jω₀n} 拆成两个复指数再叠加。你不用死记硬背整张表理解推导链条比记忆有效得多。3. z变换的核心性质逐条拆解3.1 线性性质与时移性质线性性质最简单也最常用a·x₁[n] b·x₂[n] 的z变换是 a·X₁(z) b·X₂(z)收敛域至少是两者收敛域的交集。为什么说“至少”因为如果两个函数相加时发生了极点相消收敛域可能比交集更大。这一点在串联系统或者信号叠加时会用上考试里也是个冷门考点。时移性质是解差分方程的核心x[n-n₀] 的双边z变换是 z^{-n₀}X(z)。这个性质直观理解就是序列右移 n₀ 位相当于在z域乘上 z^{-n₀}也就是相位上多了个线性项。收敛域除了可能在 z 0 或 z ∞ 处有变化基本不变。我实测下来这个性质配合单边变换解差分方程是最顺手的路子。实操心得用单边z变换时时移一定要小心初始条件。x[n-1] 的单边变换是 z^{-1}X(z) x[-1]x[n-2] 是 z^{-2}X(z) z^{-1}x[-1] x[-2]。我最初做题经常漏掉这些初始项导致结果差一项检查半天才发现。建议把初始条件单独列出来最后再回代。3.2 z域尺度变换与时间反转z域尺度变换也叫序列乘指数a^n x[n] 对应的z变换是 X(z/a)收敛域变为 |a|·r_min |z| |a|·r_max。用一句话记就是“序列乘 a^nz 换成 z/a”。这个性质在分析衰减振荡、解带指数的差分方程时特别有用。时间反转x[-n] 对应 X(1/z)收敛域从 r_min |z| r_max 变成 1/r_max |z| 1/r_min。这个性质看起来简单但和收敛域结合后能玩出很多花样。比如因果序列反转后变成反因果序列收敛域从圆外翻到圆内。我在处理相关运算或者自相关序列分析时经常用到。这两个性质放在一起记更牢尺度变换改变的是收敛域的半径缩放反转改变的是内外翻转。理解了它们在复平面上的几何意义就不容易搞混。3.3 卷积定理与系统函数卷积定理是我认为整个z域分析里应用价值最高的一条x₁[n] * x₂[n] 的z变换等于 X₁(z)·X₂(z)。这就把时域里复杂的卷积求和变成了z域里简单的代数相乘。离散系统里输出是输入与单位脉冲响应的卷积所以 Y(z) X(z)·H(z)于是系统函数 H(z) Y(z)/X(z)。对于一个由线性常系数差分方程描述的系统H(z) 就是两个多项式的比H(z) (Σ_{k0}^{M} b_k z^{-k}) / (1 Σ_{k1}^{N} a_k z^{-k})分子多项式的根是系统的零点分母多项式的根是系统的极点。系统的因果性和稳定性都藏在这组极点里。这里我要强调一个贯穿整章的判断标准因果系统收敛域在极点构成的圆的最外侧。稳定系统收敛域包含单位圆 |z| 1。因果且稳定所有极点都在单位圆内 |z| 1。这三条几乎每道系统分析题都要用。我当初理解“稳定要求收敛域包含单位圆”花了很久后来想通了单位圆对应 r 1就是傅里叶变换存在的条件收敛域包含单位圆说明傅里叶变换收敛系统对每个频率都有有限增益自然不会发散。这个物理解释比死记结论管用得多。3.4 z域微分与序列加权z域微分性质n·x[n] 的z变换是 -z·(dX(z)/dz)。这条性质用来处理带 n 的序列比如 n a^n u[n] 这种。推论就是如果已知 x[n] 的变换那么 n x[n] 的变换可以求导得到。收敛域不变。我第一次看到这条性质觉得挺玄其实推导就两步对 X(z) 的定义式两边关于 z 求导然后整理。理解了推导用起来就很自然。还有一个相关的累加性质Σ_{k-∞}^{n} x[k] 的z变换是 X(z)/(1-z^{-1})相当于乘上 u[n] 再做卷积。这条在分析累积求和系统时会用到比如数字积分器。不过累加会引入单位圆上的极点稳定性判断时要特别留心。3.5 初值定理与终值定理初值定理因果序列x[0] lim_{z→∞} X(z)。这条用来快速验证变换结果的合理性或者已知 X(z) 求序列首项。原因也简单当 z 趋于无穷z^{-1} 趋于零X(z) 只剩 x[0] 这一项。终值定理如果 x[n] 是因果序列且 n→∞ 时极限存在则 x[∞] lim_{z→1}(z-1)X(z)。这条在控制系统里判断稳态误差时极其常用给一个闭环系统函数直接代入就能算出稳态输出不用做逆变换。注意终值定理有个前提——序列的终值必须存在等价于 (z-1)X(z) 的极点全部在单位圆内。如果系统有在单位圆上的极点比如持续振荡终值定理会给出错误结果。我见过有人对一个振荡序列硬套终值定理算出一个“假的稳态值”结果被误导。所以用它之前先检查稳定性这一步不能省。4. 实操验证用代码把性质跑一遍4.1 用SymPy推导基本变换对光看公式容易虚我习惯用代码把关键变换对推一遍加深记忆。用Python的SymPy可以符号化地算出求和结果import sympy as sp n, z, a sp.symbols(n z a, realTrue) # 单边z变换定义x[n] * z^(-n) # 例1a^n * u[n] expr (a**n) * z**(-n) X sp.summation(expr, (n, 0, sp.oo)) print(sp.simplify(X)) # 输出1/(1 - a/z) 1/(1 - a*z^-1)收敛条件 |z| |a|跑完你会发现结果正好是 1/(1-az^{-1})和表里一致。你也可以把 a 换成 e^{jω₀}验证复指数序列的变换。omega0 sp.symbols(omega0, realTrue) expr2 (sp.exp(sp.I*omega0*n)) * z**(-n) X2 sp.summation(expr2, (n, 0, sp.oo)) print(sp.simplify(X2)) # 得到 1/(1 - e^{jω0} z^-1)实部虚部拆分即得 cos、sin 变换对这段代码对我帮助特别大因为它把“为什么表里那个公式长这样”直接演示了出来。建议你自己动手跑一次比看十遍推导都管用。4.2 数值验证卷积定理卷积定理说时域卷积等于z域相乘。数值上验证的思路是构造两个有限长序列用numpy算卷积再分别求z变换在某个 z 点的值看是否相等。import numpy as np x1 np.array([1, 2, 3]) x2 np.array([4, 5]) # 时域卷积 conv_time np.convolve(x1, x2) print(时域卷积:, conv_time) # 在某个具体 z 点上卷积结果的z变换 z0 1.5 0.5j X1 sum(x1[k] * z0**(-k) for k in range(len(x1))) X2 sum(x2[k] * z0**(-k) for k in range(len(x2))) X_conv sum(conv_time[k] * z0**(-k) for k in range(len(conv_time))) print(X1*X2 , X1 * X2) print(卷积的变换 , X_conv) # 两者应当几乎相等实测下来两者在浮点误差范围内完全吻合。这种数值验证特别适合考试前检查自己有没有把性质记错因为公式可以记混但数字不会骗你。实操心得用代码验证时选 z 点要避开极点否则数值会炸。选 |z| 大于所有收敛域半径的点最稳妥比如 z0 1.5 0.5j 这种落在单位圆外又远离极点的位置。4.3 画收敛域和极零点图做系统分析时我强烈建议把极零点图画出来。用matplotlib几行代码就能搞定import matplotlib.pyplot as plt import numpy as np # H(z) (1 - 0.5 z^-1) / (1 - 0.8 z^-1 0.15 z^-2) # 分子分母系数按 z^-1 升幂 b [1, -0.5] a [1, -0.8, 0.15] zeros np.roots(b) poles np.roots(a) theta np.linspace(0, 2*np.pi, 200) plt.plot(np.cos(theta), np.sin(theta), k--, label单位圆) plt.scatter(zeros.real, zeros.imag, markero, label零点) plt.scatter(poles.real, poles.imag, markerx, label极点) plt.axis(equal) plt.legend() plt.show()盯着一张图能读出很多信息极点都在单位圆内说明系统因果且稳定零点位置影响频响的凹陷位置。我养成画图的习惯之后判断稳定性再没出过错。5. 常见问题与排查技巧实录5.1 收敛域判断的典型错误我自己和身边人最常犯的错误是把收敛域和 X(z) 表达式割裂。再强调一遍z变换必须“表达式 收敛域”成对出现才有意义。我整理了几个高频错误错误表现根本原因正确做法只写 1/(1-az^{-1}) 不写收敛域忽略收敛域信息必须补上 |z||a| 或 |z||a|双边序列当单边算没看序列支撑区间先判断 n0 有无非零值因果序列收敛域画成圆内左右序列混淆因果右边序列圆外极点相消后仍按原收敛域忽略相消扩展相消后收敛域可能变大我记这个的办法是把右因果记成“向外的箭头”把左反因果记成“向内的箭头”画图时先标极点再根据序列方向选取极点外侧或内侧。5.2 性质使用中的坑时移性质乘以 z^{-n₀}很多人会搞反符号以为左移乘 z^{-1}其实是右移乘 z^{-1}。序列右移延迟才是乘 z 的负幂因为 z^{-n} 本身带负指数可以理解为一种延迟算子。这个和拉普拉斯变换里 e^{-sτ} 对应时延是一脉相承的。z域微分性质里的负号也容易丢n x[n] ↔ -z dX/dz前边那个负号不能少。我推过一次就再没记错因为求导 d(z^{-n})/dz -n z^{-n-1}那个负号是求导自带的。终值定理前面已经强调用它之前先检查极点是否都在单位圆内否则结果无意义。5.3 系统稳定性速查表最后给一张我在实际工作中直接查表用的稳定性判据尤其是拿到一个 H(z) 时快速判断条件因果性稳定性结论收敛域 |z| r_maxr_max 1因果稳定可用收敛域 |z| r_maxr_max 1因果不稳定需重新设计收敛域包含单位圆但不含无穷非因果稳定需双向处理收敛域不包含单位圆—不稳定弃用单位圆上有单极点因果临界稳定振荡注意实操心得我实测过一个二阶滤波器极点算出来在 0.98 和 0.99属于“稳定但不安全”的区间舍入误差一大会飘到单位圆外。工程上一般要求极点模值留出余量比如控制在 0.95 以内这样定点实现时才有保障。这是课本不会告诉你、但实际做DSP必须考虑的事。再说一个排查思路。如果逆z变换得到的结果和预期差了一个常数项或者一个指数项先怀疑初始条件有没有漏再看收敛域是不是选错了最后检查有没有把单边当双边。这三步覆盖了我遇到的九成问题。等这些性质彻底消化你会发现z域分析比时域分析高效太多时域里要一步步卷积、递推z域里往往几次代数化简就出结果。真正的功力体现在看到序列就能条件反射想到它落在哪个收敛域看到系统函数就能判断稳定性——这种直觉没有捷径只能靠把每条性质背后的推导亲手过一遍。我个人的体会是初学的时候别贪快把 a^n u[n] 这一个序列的变换从定义一路推到收敛域再拿它去推其他所有变换对比你硬背整张表牢固得多。后面学逆z变换、差分方程求解、数字滤波器设计全都是建立在这一章的根基上。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

电子病历实体关系抽取:PyTorchBioBERT迁移学习实战解析 2026/9/30 2:58:10

电子病历实体关系抽取:PyTorchBioBERT迁移学习实战解析

简介:面向自然语言处理与医疗信息挖掘开发者的技术文档,聚焦如何使用PyTorch框架与BioBERT预训练模型,通过迁移学习实现电子病历中的实体关系抽取。文档首先阐述电子病历的临床价值以及实体关系抽取的核心任务,对比基于规则、传统…

阅读更多 →
基于YOLOv11的鲜花识别检测系统:从数据集整理到训练部署全流程 2026/9/30 2:58:10

基于YOLOv11的鲜花识别检测系统:从数据集整理到训练部署全流程

简介:一份基于YOLOv11的106种鲜花识别检测系统完整资料包,面向计算机视觉研究人员、软件工程师及园艺相关从业者,可解决多类别花卉自动识别与检测需求,既适合科研教学,也可作为日常植物识别工具的参考实现。压缩包内含…

阅读更多 →
IEC60870-5-104测试床搭建与APDU报文解析实战 2026/9/30 2:58:10

IEC60870-5-104测试床搭建与APDU报文解析实战

简介:面向工业控制系统与电力自动化领域的工程师、安全测试人员及协议研究者,这份PDF文档围绕IEC60870-5-104协议,系统讲解工控协议测试床的架构设计与模拟实战方法。内容覆盖协议数据单元(APDU)、应用服务数据单元&am…

阅读更多 →
Linux多线程编程:pthread并发机制与同步实践 2026/9/30 2:58:10

Linux多线程编程:pthread并发机制与同步实践

简介:《Linux下的多线程编程实例解析》是一份面向Linux开发者与C语言初学者的PDF学习资料,聚焦多线程编程的核心概念与pthread接口应用。文档从线程相比进程的资源开销、通信效率与多核利用等优势讲起,再结合简单可编译运行的C代码示例&#…

阅读更多 →
AZ-104题库拆解:三轮刷题法、避坑指南与知识体系构建 2026/9/30 2:58:09

AZ-104题库拆解:三轮刷题法、避坑指南与知识体系构建

简介:这份PDF资料围绕微软Azure管理员认证AZ-104考试,整合了2025年通过版题库与深度解析,适合已有Azure基础、希望高效刷题并理解考点逻辑的考生。题库覆盖考试核心模块,包含资源组与管理组辨析、虚拟机标签管理、存储解决方案、虚…

阅读更多 →
AI写歌小程序前奏太长,怎样让人声早点进来? 2026/9/30 2:58:03

AI写歌小程序前奏太长,怎样让人声早点进来?

AI写歌的前奏太长,可以分两种情况处理:还没生成,就把“短前奏、尽早进入第一句”写进结构要求;成品已经满意,只是开头拖沓,可以保留原文件,再剪短前奏。前者是在引导生成方向,后者是…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉