ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

信号与系统第九次作业:Z变换与离散系统分析全解析

信号与系统第九次作业:Z变换与离散系统分析全解析 1. 开篇为什么说第九次作业是分水岭做过信号与系统课程的朋友都有体会前八次作业基本围绕连续时间系统的时域分析、傅里叶变换展开套路相对固定。但到了第九次作业课程组通常会把重心转向离散时间信号与系统分析也就是Z变换这一块。我这两年带过几届本科生几乎每次都能看到一群人在这个节点上掉队——不是因为他们不努力而是因为思维还停留在连续域的惯性里看到差分方程和Z变换表达式就开始犯迷糊。这道题你拿到的标题写的是信号与系统分析2026春季作业参考答案但我要先泼一盆冷水参考答案只能帮你对结果帮不了你建立思路。第九次作业考察的核心能力是你能不能在三类问题之间自由切换——由差分方程写系统函数、由系统函数判断系统性质、由Z变换求响应。绕着这三个点反复练习比抄十份答案都管用。本文我会把这次作业的常见题型、解题套路、易踩的坑全部拆开讲一遍并且每道题都给出我个人的参考解题过程。内容面向两类读者一类是正在修这门课、被作业压得喘不过气的本科生另一类是考研复习到离散系统部分、想找点题感的朋友。2. 题目类型与命题思路拆解2.1 第九次作业到底在考什么春季学期第九次作业承接的是教材第八章到第九章的内容核心就是Z变换及其在离散系统分析中的应用。具体来说命题组一般会在以下四类考点里挑题目Z变换正反变换计算用定义式求单边Z变换或者由有理函数做部分分式展开求逆Z变换这是基本功。差分方程与系统函数互转给定常系数线性差分方程写出系统函数 (H(z))画出零极点图。系统性质分析利用系统函数的收敛域判断因果性、稳定性结合零极点位置判断频率响应的大致走向。系统响应求解给定输入序列和系统初值求零输入响应、零状态响应、完全响应或者用Z域方法求单位样值响应 (h[n])。跟我前几年带的学生做下来的情况来看前三类问题多数人还能应付真正拉开差距的其实是第四类——响应求解。因为这类题目既考Z变换的计算能力又考你对方程物理含义的理解稍不留神就会在初值处理上翻车。2.2 为什么Z变换是离散域中的拉普拉斯变换很多同学学到这里会问Z变换不就是把拉普拉斯变换里的 (s) 换成 (z) 吗这话对了一半。从数学形式上确实像但背后逻辑完全不同——拉普拉斯变换处理的是连续时间信号对应的是微分方程Z变换处理的是离散时间序列对应的是差分方程。一个关心的物理量是系统的复频率(s)另一个关心的是系统的复变量(z)它们的收敛域判据、零极点对稳定性的影响方式都不一样。这里我建议你换个角度理解Z变换本质上是对序列 (x[n]) 做了一个加权求和每个 (z^{-n}) 可以理解成一个延时单位。(z) 的模对应信号的衰减或增长速率(z) 的辐角对应信号的频率。所以看到 (H(z)) 的零极点图你实际上是在看这个系统对以什么速率增长/衰减、以什么频率振荡的输入信号会有怎样的放大或抑制效果。有了这层理解后面判断滤波特性、稳定性这些问题都会顺很多。3. 典型题目解析与参考答案3.1 基础题由差分方程求系统函数与单位样值响应题目一般长这样已知一个离散LTI系统的差分方程 [ y[n] - \frac{1}{3}y[n-1] - \frac{2}{9}y[n-2] x[n] 2x[n-1] ] 求系统函数 (H(z))判断系统是否稳定并求单位样值响应 (h[n])。第一步两边做Z变换。不涉及初值的系统函数计算直接用零状态假设——把 (y[n]) 的Z变换记为 (Y(z))(x[n]) 的Z变换记为 (X(z))时移性质 (x[n-k]\leftrightarrow z^{-k}X(z)) 要记熟。得到 [ Y(z) - \frac{1}{3}z^{-1}Y(z) - \frac{2}{9}z^{-2}Y(z) X(z) 2z^{-1}X(z) ] 整理后 [ H(z) \frac{Y(z)}{X(z)} \frac{1 2z^{-1}}{1 - \frac{1}{3}z^{-1} - \frac{2}{9}z^{-2}} ]为了方便求零极点习惯上写成关于 (z) 的有理分式分子分母同乘 (z^2) [ H(z) \frac{z^2 2z}{z^2 - \frac{1}{3}z - \frac{2}{9}} ] 分母因式分解 [ z^2 - \frac{1}{3}z - \frac{2}{9} \left(z - \frac{2}{3}\right)\left(z \frac{1}{3}\right) ] 所以极点 (z_1 \frac{2}{3})、(z_2 -\frac{1}{3})零点 (z_0 0)、(z_0-2)。判断稳定性用的是收敛域包含单位圆这个判据。系统函数的收敛域取决于系统是否因果。若系统是因果的一般题目默认或者由差分方程本身就是因果递归形式推出收敛域为 (|z| \max\left(\frac{2}{3}, \frac{1}{3}\right)\frac{2}{3})显然单位圆 (|z|1) 在这个区域内所以系统稳定。求 (h[n]) 时对 (H(z)) 做部分分式展开。先把它化成真分式的形式注意分子分母同阶时先做长除。展开形式设为 [ H(z) \frac{12z^{-1}}{\left(1-\frac{2}{3}z^{-1}\right)\left(1\frac{1}{3}z^{-1}\right)} \frac{A}{1-\frac{2}{3}z^{-1}} \frac{B}{1\frac{1}{3}z^{-1}} ] 待定系数 [ 12z^{-1} A\left(1\frac{1}{3}z^{-1}\right) B\left(1-\frac{2}{3}z^{-1}\right) ] 比较系数 [ A B 1,\quad \frac{1}{3}A - \frac{2}{3}B 2 ] 解得 (A \frac{7}{3})(B -\frac{4}{3})。查表求逆变换因果序列对应 [ h[n] \frac{7}{3}\left(\frac{2}{3}\right)^n u[n] - \frac{4}{3}\left(-\frac{1}{3}\right)^n u[n] ]这个结果很典型(h[n]) 是两个实指数序列的线性组合一个底数是正数 (\frac{2}{3}) 单调衰减另一个底数是负数 (-\frac{1}{3}) 正负交替衰减。如果题目还要求画波形你要重点关注 n 从 0 开始几项的具体数值因为这里有一个非常容易忽略的点——部分分式展开求得的 (h[n]) 是从 (n0) 开始的因果序列写 (u[n]) 的时候千万别把 (n0) 的部分也画出来。3.2 进阶题由系统函数分析系统性质这一节的典型题是给出一个系统函数 [ H(z) \frac{z^2 - z 0.5}{z^2 - 1.5z 0.5} ] 要求画出零极点图分别就因果系统和稳定系统两种假设写出收敛域说明该系统具有什么样的频率选择性。先求零点和极点。将分子分母因式分解。分子虽然有共轭复根但不影响求零点的位置把根求出来标记即可 [ z_{零} \frac{1 \pm j\sqrt{1-2}}{2} \frac{1 \pm j}{2} ] 也就是说零点在 (|z| \approx 0.707) 处角度 (\pm45^\circ)。分母因式分解 [ z^2 - 1.5z 0.5 (z-1)(z-0.5) ] 极点 (z_1 1)、(z_2 0.5)。零极点图画在哪里单位圆外有一个极点 (z1)单位圆内有一个极点 (z0.5)单位圆内偏下处有一对共轭零点。如果题目假设系统是因果的那么收敛域为 (|z| 1)包含单位圆系统稳定如果题目假设系统是稳定的意味着收敛域必须包含单位圆而极点 (z1) 恰好落在单位圆上此时系统处于临界稳定状态收敛域是环形区域 (0.5 |z| 1)这样的系统既非因果也不是左边序列对应的是一个双边序列的系统函数。这两种假设给出的收敛域差异很大做题时务必看清题干的限定条件。关于频率选择性需要把 (z e^{j\omega}) 代入 (H(z))。零点在 (\pm45^\circ) 附近对那个频段的信号有较强的抑制作用。极点 (z0.5) 起增益作用而 (z1) 对应直流分量附近的放大。整体来看系统在低频段的幅频响应较高中高频段受零点压制呈现出低通加陷波的混合特性。判断频率响应时零点是坑、极点是峰看零极点离单位圆的位置就能快速估计幅频响应的轮廓这是考试时节省时间的技巧。3.3 综合题离散系统全响应求解这类题是第九次作业里分值最高的一道我今天挑一道和往年难度相当的题出来示范解法。已知离散系统差分方程 [ y[n] \frac{1}{2}y[n-1] x[n] - x[n-1] ] 输入 (x[n] \left(\frac{1}{4}\right)^n u[n])初始条件 (y[-1]1)。求完全响应 (y[n])。解这类题有两个思路我推荐先求系统函数再用Z域方法一步到位。但也有人习惯分别求零输入响应和零状态响应两种方法我都写一下你们自己比较哪种顺手。方法A单边Z变换统一求注意单边Z变换处理初值时的性质 [ y[n-1] \leftrightarrow z^{-1}Y(z) y[-1] ] 一定要先移一位再带初值。这里因 (x[n]) 在 (n0) 时为0所以 (x[n-1]) 的单边Z变换就是简单的 (z^{-1}X(z))因为 (x[-1]0)。对方程两边做单边Z变换 [ Y(z) \frac{1}{2}\left[z^{-1}Y(z) y[-1]\right] X(z) - z^{-1}X(z) ] 代入 (y[-1]1)得 [ \left(1 \frac{1}{2}z^{-1}\right)Y(z) \left(1 - z^{-1}\right)X(z) - \frac{1}{2} ] 而 (x[n]\left(\frac{1}{4}\right)^n u[n]) 的Z变换 [ X(z) \frac{1}{1 - \frac{1}{4}z^{-1}},\quad |z|\frac{1}{4} ] 于是 [ Y(z) \frac{1 - z^{-1}}{\left(1\frac{1}{2}z^{-1}\right)\left(1-\frac{1}{4}z^{-1}\right)} - \frac{1}{2\left(1\frac{1}{2}z^{-1}\right)} ] 前一项是零状态响应后一项是零输入响应由初始储能引起的响应。对零状态部分做部分分式 [ Y_{zs}(z) \frac{1 - z^{-1}}{\left(1\frac{1}{2}z^{-1}\right)\left(1-\frac{1}{4}z^{-1}\right)} \frac{A}{1\frac{1}{2}z^{-1}} \frac{B}{1-\frac{1}{4}z^{-1}} ] 解 [ A \frac{1 - z^{-1}}{1-\frac{1}{4}z^{-1}}\Big|{z^{-1}-2} \frac{1-(-2)}{1-\frac{1}{4}(-2)} \frac{3}{10.5}2 ] [ B \frac{1 - z^{-1}}{1\frac{1}{2}z^{-1}}\Big|{z^{-1}4} \frac{1-4}{12} -1 ] 所以 [ Y_{zs}(z) \frac{2}{1\frac{1}{2}z^{-1}} - \frac{1}{1-\frac{1}{4}z^{-1}} ] 对应 [ y_{zs}[n] 2\left(-\frac{1}{2}\right)^n u[n] - \left(\frac{1}{4}\right)^n u[n] ]零输入部分 [ Y_{zi}(z) -\frac{1}{2\left(1\frac{1}{2}z^{-1}\right)} ] 对应 [ y_{zi}[n] -\frac{1}{2}\left(-\frac{1}{2}\right)^n u[n] ]完全响应 [ y[n] y_{zi}[n] y_{zs}[n] \left(2 - \frac{1}{2}\right)\left(-\frac{1}{2}\right)^n u[n] - \left(\frac{1}{4}\right)^n u[n] ] 整理后 [ y[n] \frac{3}{2}\left(-\frac{1}{2}\right)^n u[n] - \left(\frac{1}{4}\right)^n u[n] ]算到这里我建议你把 (n0)、(1)、(2) 三点的值手工代回原差分方程验证一下。这个习惯能帮你抓出八成以上的计算错误。比如说 (y[0]\frac{3}{2}-1\frac{1}{2})代回原方程 [ y[0] \frac{1}{2}y[-1] x[0] - x[-1] ] 等号左边 (\frac{1}{2} \frac{1}{2}\times 1 1)右边 (1 - 0 1)对上了。方法B零输入响应零状态响应分开求这个方法适合对Z变换还不够熟练的同学当作一种拆解思路感受一下。零输入响应令输入为零解齐次方程 [ y[n] \frac{1}{2}y[n-1]0 ] 由特征根 (\lambda-\frac{1}{2})设 (y_{zi}[n] C\left(-\frac{1}{2}\right)^n)利用 (y[-1]1) 代入 [ C\left(-\frac{1}{2}\right)^{-1} 1 \Rightarrow C -\frac{1}{2} ] 得 (y_{zi}[n] -\frac{1}{2}\left(-\frac{1}{2}\right)^n u[n])。零状态响应就是刚才方法A里的前一项 [ y_{zs}[n] 2\left(-\frac{1}{2}\right)^n u[n] - \left(\frac{1}{4}\right)^n u[n] ] 两项相加结果完全一致。这里我要特别强调一句两种方法算出来的中间形式可能不一样但完全响应应该完全相同。如果你对不上多半是初值处理错了或者在部分分式展开的待定系数上出了差错。3.4 易错点大集合这些坑我年年看见每年批改作业下面这些问题是出现频率最高的我把它们集中列出来希望你在做第九次作业的时候就知道绕开易错点错误示例正确做法单边Z变换时移性质漏掉初值项(y[n-1]\leftrightarrow z^{-1}Y(z))(y[n-1]\leftrightarrow z^{-1}Y(z)y[-1])收敛域不写或乱写(H(z)\frac{z}{z-0.5}) 直接完事必须标注 (部分分式展开不处理假分式分子阶数不低于分母就直接套公式先做多项式长除化成真分式再展开判断稳定性用极点实部实部小于零的极点稳定离散系统看极点模值是否小于1求逆Z变换查表时忽略收敛域用同一个表达式套所有区域收敛域不同逆变换结果完全可能不同3.5 其他常考小题的方法速记第九次作业偶尔还会安排一两道概念题或小题比如求序列的初值终值、判断系统线性时不变性、或者给个零极点分布判断滤波器类型。这类题目不需要完整的大题解法但有几个结论要记牢关于初值定理和终值定理公式本身不算复杂但适用条件容易被忽略。初值定理 [ x[0] \lim_{z\to\infty}X(z) ] 适用于因果序列。终值定理 [ x[\infty] \lim_{z\to 1}\left(1-z^{-1}\right)X(z) ] 适用范围更窄必须保证 (\left(1-z^{-1}\right)X(z)) 的收敛域包含单位圆上 (z1) 附近也就是序列最终趋于一个常数。如果序列是增长的或震荡不收敛的别硬套。关于系统线性时不变性的判断我教学生记一个口诀先运算后系统 先系统后运算如果两者结果一致才是LTI。第九次作业里有时会故意设一些陷阱比如 (y[n] x[2n]) 就不是时不变的(y[n] n x[n]) 就不是线性系统。你上手做之前先把这两条基本定义写出来对照比凭感觉快得多。4. 实操过程与验证方法4.1 手算之外的高效验证MATLAB/Python 对照第九次作业手算起来容易出错我强烈建议你在手写作业之外再用工具做一个交叉验证。以Python为例用scipy.signal可以快速求差分方程的单位样值响应和输出序列。比如刚才3.3节那道题输入差分方程的分子分母系数直接调lfilter就能画出响应曲线看看和自己手算的前几个点是否吻合。import numpy as np from scipy import signal import matplotlib.pyplot as plt # 差分方程 y[n] 0.5*y[n-1] x[n] - x[n-1] # 注意系数需要按 z^-1 的升幂排列 b [1, -1] # x[n] 和 x[n-1] 的系数 a [1, 0.5] # y[n] 和 y[n-1] 的系数 # 生成输入序列 x[n] (1/4)^n * u[n] n np.arange(0, 15) x (1/4)**n # 初值y[-1] 1 可以通过设置 zi 来实现 zi signal.lfilter_zi(b, a) * 1 # 初始条件按 1 缩放 y, _ signal.lfilter(b, a, x, zizi) for k in range(5): print(k, y[k])这里有个细节要注意scipy.signal.lfilter的初始条件zi和我们手算时的 (y[-1]) 并不是一回事它对应的是filter 内部的延迟单元状态。对一阶系统两者有一个换算关系但你如果只是想验证稳态或者前几个点直接把zi设为0再对比零状态响应也行。零输入响应单独用手算的公式画出来两个加起来跟lfilter含初值的结果对照即可。MATLAB同样可以做这件事把b、a系数填进filter函数再把zi设置成对应初始状态即可。不过说实话最后作业提交还是要以手算步骤为主工具验证只是辅助手段。4.2 如何规范地写出解题过程参考答案和评分标准我在批作业的时候见过太多最影响得分的反而不是结果而是过程书写。我的建议是每次作业至少包含以下几要素先写明系统是否为零状态收敛域是什么做Z变换时把时移性质涉及的初值项单独列一行零点、极点分别用不同标记表示部分分式展开时显示关键求系数的算式逆变换结果必须附带 (u[n]) 或 ((u[-n-1])) 这类区间指示。我见过许多学生结果全对却因为没有标注收敛域被扣了三四分。这不是老师苛刻你在做系统稳定性判断或者逆变换时收敛域直接决定你查哪张表、用哪个表达式过程里不写清楚后面一步错步步错。5. 常见问题与排查思路5.1 我的结果和同学的不一样问题出在哪里需要先弄清楚是形式不同还是实质错误。给你7个排查方向检查收敛域。不同的收敛域对应不同的时间区间第一个要先确认检查时移性质。(y[n-k]) 的变换多了还是少了初值项检查部分分式系数。把展开后的分式重新通分看能否还原成原函数检查假分式有没有先做长除处理检查画零极点图时有没有把多重极点漏掉检查终值定理、初值定理的适用条件最后逐点代回原差分方程验证 (n0,1,2)。5.2 为什么零输入响应和零状态响应加起来不等于直接求的完全响应如果出现这种情况绝大多数原因是初值的定义不一致。Z域解法用的是 (y[-1])、(y[-2]) 等初始条件而时域解法可能用 (y[0])、(y[1]) 作为起始状态。这两套初值之间需要先通过原差分方程做迭代换算不能混着用。我举个最简单的例子如果已知 (y[-1])想求 (y[0])就直接用原方程令 (n0) 迭代一次这类换算在写作业前先做完后面才不容易乱。5.3 系统函数的分子分母阶数相同时怎么处理物理上这代表着系统有直接馈通路径也就是说输出信号中包含当前时刻输入的直接贡献。在Z变换上(H(z)) 的分子阶数和分母阶数相同时你先做长除分离出一个常数项然后再对剩余真分式做部分分式。逆变换结果里会多出一个 (\delta[n]) 项这是正常的不要觉得奇怪。6. 后续还能怎么练把第九次作业吃透之后做什么等你把这一份作业完整做完我建议你马上做两件事。第一尝试把所有题目改成求频率响应的版本。比如对3.1节的系统画出幅频响应曲线看看零极点是怎么塑造这段曲线的。这一步打通之后你会发现后面学数字滤波器设计时会轻松很多。第二把差分方程换成MATLAB或Python里的系统对象跑一跑阶跃响应和正弦稳态响应把经典教材里离散系统频率响应的实验题亲手做一遍。纸上谈兵和真正看到波形走向理解的深度完全不一样。我当年就是靠这些额外练习把信号与系统从死记硬背变成真懂后来做数字信号处理相关的项目才没有吃大亏。第九次作业真正的价值不在于那几分成绩而在于它是你从连续时间思维切向离散时间分析的一次系统训练。后面无论是考研复试、通信原理、数字信号处理还是工作中碰到数字滤波器设计你会发现当年花两天啃下来的这套Z变换理论一直都在给你撑场子。
返回列表