信号与系统考研:f(at+b)波形变换关键点映射法,一张图搞定复合变换

信号与系统考研:f(at+b)波形变换关键点映射法,一张图搞定复合变换 这次我们看一类信号与系统考研里的高频基础题给定一个信号波形 (f(t))要求画出尺度变换、时移、反转综合作用之后的波形。它出现在2024年成都信息工程大学真题第2.1题同时被收录进小马哥960题第2章。很多同学平时只背“左加右减”遇到 (f(1-2t))、(f(2t1)) 这种既有系数、又有反转和时移的复合形式就画错原因不是代数能力不够而是没有一套统一的操作流程。这类题单题分值不算高但一旦画错后面卷积图解、傅里叶变换性质应用、抽样定理相关题目都会连带出错所以值得专门花时间练透。本文不绕弯直接给出一套“关键点映射”解法先提取参数再逐个映射拐点接着处理斜率变化最后用端点代入和区间宽度做验证。整个过程都配有可运行的 Python 代码方便你自己换一个波形来验证。这篇文章适合正在准备信号与系统考研初试、期末复习或者需要补波形作图基本功的读者。内容不依赖具体原图重点是把判断方法讲成模板任何分段线性波形都能直接套用。看完之后你应该能搞定 (f(atb)) 里几乎所有的复合变换作图题。1. 核心考点速览项目内容考点类型连续时间信号的波形变换核心知识点尺度变换、时移、反转及其复合形式常见考法已知 (f(t)) 波形画出 (f(atb)) 或 (f(b-at))反向考法已知 (y(t)f(atb)) 波形反推 (f(t))难度系数中等偏易但易错点集中建议用时考场上 2 到 3 分钟完成典型资料小马哥960题第2章、相关院校历年真题主要验证手段关键点代数映射、区间宽度检查、端点代入易错点变换顺序、斜率缩放、左加右减口诀误用、反转忘做小马哥960题在信号与系统考研复习里属于刷题量比较大的习题集按章节组织每道题会标注年份和院校。2024年成都信息工程大学这道2.1题正好落在第2章的连续信号变换部分。从考生回忆和习题集分类来看这类题基本不会直接给函数解析式而是给一个分段线性波形图要求画出变换后的波形。因此解题的关键不是“算函数”而是“跟踪关键点”。2. 尺度变换、时移、反转的数学定义2.1 尺度变换(f(t) \rightarrow f(at))尺度变换处理的是时间轴压缩和扩展。当 (|a| 1)波形在时间轴上被压缩所有横坐标除以 (|a|)。当 (0 |a| 1)波形在时间轴上被拉伸所有横坐标除以 (|a|)。当 (a 0)在压缩或拉伸的同时还需要做反转。这个操作只改变时间轴上的位置不改变纵坐标数值。如果一个点在原信号里是 ((t_0, f(t_0)))变换后变成 (\left(\frac{t_0}{a}, f(t_0)\right))。注意“除以 (a)”不是“乘以 (a)”这是第一个容易写错的点。2.2 时移(f(t) \rightarrow f(t-t_0))时移的完整说法是(f(t-t_0)) 表示把 (f(t)) 的波形向右平移 (t_0)如果 (t_0 0) 则是向左平移。因为代码里常用“右减左加”所以很多同学记成“减号往右”这没问题但要注意这个口诀只适用于 (f(t-t_0)) 这种标准形式。当信号写成 (f(atb)) 的时候不能直接对 (b) 用“左加右减”。必须先提出系数把式子变成 (f\left[a\left(t\frac{b}{a}\right)\right]) 这种形式再看平移方向和距离。否则很容易把 (f(2t1)) 误判成“左移 1”实际上左移的是 (\frac{1}{2})而不是 1。2.3 反转(f(t) \rightarrow f(-t))反转就是把波形关于纵轴做镜像翻转。原来在 (t_0) 处的高度现在出现在 (-t_0) 处。反转本身不改变纵坐标值但它会改变单调性。原信号上升的线段反转后变成下降的线段对应的斜率会变号。如果题目里出现了 (f(1-2t))很多同学会忽略 (-2t) 里的负号忘记做反转这是高频失分点。2.4 复合形式 (f(atb)) 的统一公式综合三种基本变换最常用的形式是 (y(t) f(atb))其中 (a \neq 0)。对原信号上的任意一个关键点 ((t_0, f(t_0)))变换后对应的横坐标为[ t_{\text{new}} \frac{t_0 - b}{a} ]这个公式非常关键。分母上的 (a) 对应尺度变换分子里的 (-b) 对应时移。只要把原信号的所有转折点、起点、终点、跳变点都代入这个公式再按新的时间坐标排序就能得到变换后波形的基本骨架。同时如果原信号在某段是斜率为 (k) 的直线那么变换后对应线段的斜率变为[ k_{\text{new}} a \cdot k ]这个斜率变化很多人容易漏。原因是复合函数求导带来的自然结果(\frac{d}{dt} f(atb) a f(atb))。当原斜率是 (k) 时变换后的斜率就是 (a k)。也就是说即使只做时移、反转、尺度中的一部分只要系数 (a) 存在斜率就会按比例缩放。3. 综合变换作图标准流程3.1 先写成标准形式提取参数拿到题第一件事不是找特殊点而是把变换式整理成 (f(atb)) 的形式。比如 (f(1-2t))写成 (f(-2t1))于是 (a -2)(b 1)。再比如 (f\left(\frac{t}{3} 2\right))直接得到 (a \frac{1}{3})(b 2)。这一步做完后面所有计算都有了确定依据。不要在这里省时间参数提错了整道题必错。3.2 罗列原信号的全部关键点关键点包括这几类信号非零区间的起始点和终止点分段直线之间的转折点信号发生跳变的点题目中用空心或实心标出的特殊点。每个关键点需要记录两种信息横坐标 (t_0) 和该点的函数值 (f(t_0))或者左右极限值。后面做映射时横坐标用来计算新位置函数值直接平移到新位置上。3.3 关键点映射并重新排序对每个关键点使用公式[ t_{\text{new}} \frac{t_0 - b}{a} ]得到一组新的横坐标。把这些点按 (t_{\text{new}}) 从小到大排序并保持对应的纵坐标不变。排序看起来是小事但很多同学画图时容易漏掉中间某一段或者在反转后把左右区间写反。3.4 检查斜率缩放关键点之间如果原本是直线段则变换后仍然是直线段但斜率会变成原来的 (a) 倍。以原信号斜率为 (1) 的线段为例如果 (a -2)变换后斜率就是 (-2)。画图时这段线会比原来更陡而且方向反转。如果只平移关键点、不重新计算线段斜率图形会在中间段明显不连续代入端点检验时也能发现对不上。3.5 端点代入验证画完草图后任选几个新时间坐标 (t)代入 (u at b)再回到原波形找 (f(u))。如果得到的纵坐标和画出的图形一致说明流程基本正确。这个验证只需要 3 到 5 个点就能覆盖主要分段区间。考场上不要求画得多精细但验证这一步能救回不少马虎分。4. 2024年成都信息工程大学2.1题同类题型实操需要说明的是目前网络流传的考生回忆版只保留了题号没有统一的原始波形图。这里不猜原题图形而是用一道同型题完整走一遍流程。只要把原信号关键点换成真题给的点方法可以直接套。4.1 一个典型原信号假设原信号 (f(t)) 定义如下当 (-1 \le t 0)信号从 0 线性上升到 1当 (0 \le t \le 2)信号保持为 1其余时间信号为 0。用小马哥960题的常见画法这就是一个“斜坡 平线”的组合信号。它的关键点有三个((-1, 0))、((0, 1))、((2, 1))。4.2 例 1画 (y_1(t) f(1-2t))先整理成标准形式[ y_1(t) f(1-2t) f(-2t1) ]所以 (a -2)(b 1)。三个关键点分别映射(t_0 -1)新位置 (t \frac{-1-1}{-2} 1)值 0(t_0 0)新位置 (t \frac{0-1}{-2} 0.5)值 1(t_0 2)新位置 (t \frac{2-1}{-2} -0.5)值 1。将新关键点排序((-0.5, 1))、((0.5, 1))、((1, 0))。再看斜率。原信号在 ([-1,0]) 段斜率 (k1)变换后对应 (t \in [0.5, 1]) 这一段斜率变成 (a \cdot k -2)。因此这一段从高度 1 下降到高度 0下降的斜率是 (-2)区间长度 0.5高度差 1正好吻合。最终结果(t -0.5)0(-0.5 \le t \le 0.5)1(0.5 t \le 1)从 1 线性降到 0(t 1)0。4.3 例 2画 (y_2(t) f(2t1))同样先整理[ y_2(t) f(2t1) ]这里 (a 2)(b 1)。关键点映射(t_0 -1)新位置 (t \frac{-1-1}{2} -1)值 0(t_0 0)新位置 (t \frac{0-1}{2} -0.5)值 1(t_0 2)新位置 (t \frac{2-1}{2} 0.5)值 1。排序后是 ((-1, 0))、((-0.5, 1))、((0.5, 1))。斜率方面原信号斜坡段斜率 (k1)变换后对应 (t \in [-1, -0.5])斜率变成 (a \cdot k 2)。也就是说从 (t-1) 的 0 上升到 (t-0.5) 的 1斜率是 2区间长度 0.5高度差 1完全对得上。最终结果(t -1)0(-1 \le t -0.5)从 0 线性升到 1(-0.5 \le t \le 0.5)1(t 0.5)0。对比例 1 和例 2 可以发现同样是 (f(2t1)) 和 (f(-2t1)) 相差一个负号波形在水平方向上的分布位置、折线方向和斜率符号完全不同这正好说明“反转”不是可选项而是必须做的一步。4.4 反向题由 (y(t)f(2t1)) 反推 (f(t))有些题不直接考正向作图而是反过来给出 (y(t)f(2t1)) 的波形要求恢复 (f(t))。此时使用逆映射。如果 (y(t)) 的某个关键点横坐标为 (t_{\text{new}})则原信号中对应关键点横坐标为[ t_0 a \cdot t_{\text{new}} b ]以例 2 的结果 ((-1,0))、((-0.5,1))、((0.5,1)) 为例(t_{\text{new}} -1)(t_0 2 \times (-1) 1 -1)值 0(t_{\text{new}} -0.5)(t_0 2 \times (-0.5) 1 0)值 1(t_{\text{new}} 0.5)(t_0 2 \times 0.5 1 2)值 1。得到原信号关键点 ((-1,0))、((0,1))、((2,1))正好回到题目给出的 (f(t))。这说明正反两个方向的公式是对偶的考场上只要记住正向公式反向题稍作变形就能处理。4.5 用 Python 自动计算关键点下面给一个可以直接复制运行的 Python 脚本用于计算任意关键点列表在 (f(atb)) 下的新坐标。def transform_points(points, a, b): 输入原信号 f(t) 的关键点列表 [(t0, f(t0)), ...] 输出 y(t) f(a*t b) 的关键点坐标并按时间排序 mapped [] for t0, value in points: t_new (t0 - b) / a mapped.append((t_new, value)) mapped.sort(keylambda x: x[0]) return mapped # 原信号关键点 original [(-1, 0), (0, 1), (2, 1)] # 例 1y(t) f(1 - 2t)对应 a -2, b 1 result1 transform_points(original, a-2, b1) # 例 2y(t) f(2t 1)对应 a 2, b 1 result2 transform_points(original, a2, b1) print(y(t) f(1 - 2t):) for t, v in result1: print(f t {t:.4f}, y(t) {v:.4f}) print(y(t) f(2t 1):) for t, v in result2: print(f t {t:.4f}, y(t) {v:.4f})运行后可以看到两组关键点坐标和前面手算的结果一致。这个脚本的价值在于做题时可以用来批量验证自己手算的关键点是否正确尤其是分段点比较多的信号能省下大量检查时间。5. 两条作图路径的等价性除了关键点映射法很多教材会把综合变换拆成“先尺度、再时移”或“先时移、再尺度”两条路径。两条路都能得到正确答案但中间步骤的图形不一样容易让学生纠结。5.1 路径一先尺度再时移对于 (y(t) f(atb))先把它写成[ y(t) f\left[a\left(t \frac{b}{a}\right)\right] ]第一步先做 (f(t) \rightarrow f(at))完成尺度和反转。第二步再做时移。注意这里平移的是 (t \frac{b}{a})也就是当 (\frac{b}{a} 0) 时向左平移 (\frac{b}{a})当 (\frac{b}{a} 0) 时向右平移 (-\frac{b}{a})。以 (y(t)f(2t1)) 为例标准形式是 (f\left[2\left(t\frac12\right)\right])。先画 (f(2t))再向左平移 0.5得到最终的 (f(2t1))。5.2 路径二先时移再尺度先做时移得到 (g(t) f(tb))再做尺度 (g(at))。这里的核心坑点是第二步是把中间变量 (t) 替换成 (at)不是对原信号 (f) 的自变量做尺度。还是以 (y(t)f(2t1)) 为例先画 (f(t1))这时候信号向左平移 1。然后再把时间轴压缩 2 倍得到 (f(2t1))。注意此时“向左平移 1”这个位置也会被压缩所以最终平移量是 0.5和路径一的结果一致。5.3 为什么两条路径结果相同本质原因是复合函数括号内是同一个线性表达式 (atb)。无论先处理 (a) 还是先处理 (b)最后落到信号横坐标上的结果都满足 (t_{\text{new}} \frac{t_0 - b}{a})。区别只在于中间过程。实际做题我建议固定用关键点映射法因为它的计算量最小也最不容易被中间图形绕晕。两条路径可以在理解原理时看不建议作为考场首选方法。6. 常见错误与排查方法错误现象可能原因排查方式正确做法(f(2t1)) 画成左移 1对“左加右减”口诀使用范围理解不清检查平移量是否除以 (a)标准形式提取 (a)平移量为 (\frac{b}{a})(f(1-2t)) 没有做反转看到负号但没有意识到是反转检查 (a) 的正负(a0) 时波形必须关于纵轴翻转关键点横坐标算反把公式错记成 (t_{\text{new}} t_0 a b)代入端点验证使用 ((t_0-b)/a)斜坡斜率不变漏掉复合函数求导带来的缩放检查对应折线高度差与区间长度新斜率 原斜率 (\times a)端点空心实心判断错原信号存在跳变映射后没重新判断分别看原信号该点左右极限按左右极限对应到新时间区间排序后漏段反转后原区间顺序颠倒检查时间区间是否连续覆盖新关键点按时间排序逐段连接非零区间长度不对只做了平移没做尺度用区间长度除以 (|a|) 核对原非零长度 (L) 变为 (L/|a|)除了表格里的问题还有一个容易忽略的细节当原信号存在阶跃跳变时变换后同样需要画空心点和实心点。判断方法很简单看原信号在关键点处的左极限对应到新信号哪个区间右极限对应到哪个区间。左极限对应的画法保留右极限对应保留不能简单地把原点的空心或实心直接搬过来。如果画完图后总觉得波形位置不对可以先做一个快速自检原信号非零区间长度是不是 (L)变换后非零区间长度是不是 (L / |a|)原信号任意一个明显特征点代入 (u atb) 后是否落在对应的新位置斜线段的斜率是不是原斜率的 (a) 倍反转信号是否真的关于纵轴做了翻转。这五步做完绝大多数错误都能暴露出来。7. 考场快速检查技巧平时练习可以用 Python 或画图工具验证考场上没有这些条件但可以靠几条数学特征快速校验。7.1 区间宽度检查原信号非零区间长度 (L)。对 (f(atb))变换后非零区间长度应该是[ \frac{L}{|a|} ]例 1 中原信号非零区间长度是 (3)(|a|2)所以变换后非零区间长度应该是 (1.5)。我们算出的区间 ([-0.5, 1]) 长度确实为 (1.5)。这个检查完全不依赖图形特别适合在答题卡上快速扫一眼。7.2 中心位置检查原信号非零区间的中心点记为 (c)。变换后非零区间的中心点应该是[ c_{\text{new}} \frac{c - b}{a} ]原信号非零区间是 ([-1, 2])中心 (c0.5)。例 2 中 (a2, b1)所以 (c_{\text{new}} \frac{0.5-1}{2} -0.25)。而我们画出的非零区间 ([-1, 0.5]) 中心正好是 (-0.25)。中心对上了说明平移和尺度两个环节大概率都没错。7.3 端点代入法选几个新横坐标比如区间的左右端点和中间值代入 (u atb)再回原协议。很多同学觉得这一步慢其实只需要取 3 个点30 秒足够。一旦发现其中一个点对不上往往能直接定位是参数提取错了还是斜率没有缩放。7.4 时间分配信号作图题在考试里属于“送分题”。如果一道题超过 4 分钟还没画出来基本可以判断是方法出了问题不要恋战先做后面的大题。等全部做完再回头检查反而更容易看出错误。8. 复习建议与小马哥960题使用方式小马哥960题的用法不建议一上来就翻答案。它里面很多题都标了年份和院校比如2024年成都信息工程大学这道2.1题就是典型的“换一个信号、换一个变换式”的重复训练。建议每道题都按下面的流程走一遍自己提取 (a) 和 (b)列出原信号所有关键点用公式计算新关键点手动画出波形用宽度和中心公式检查。如果这一步能稳定做对再去练卷积作图。因为卷积图解里的“反转、平移、相乘、积分”四步第一步就是信号反转和平移。很多同学卷积图解卡住不是因为卷积概念不懂而是因为信号反转和平移本身就不熟练。把本章作图题练透后面的卷积、傅里叶变换图形题会顺很多。具体到成都信息工程大学的复习需要关注的是基础作图规范。从历年题目方向看这类题不考复杂的高阶数学重点考察分段点是否完整、空心实心是否严格、斜率是否按比例缩放。只要流程固定反复练到条件反射基本可以保证不再失分。9. 总结与下一步这次我们核心解决了一个问题面对 (f(atb)) 这类综合变换不要凭感觉画直接用 ((t_0-b)/a) 映射关键点再用斜率缩放补齐折线最后用宽度、中心、端点三种方法验证。这是一套可以重复操作的模板不依赖具体波形形状。真正容易踩的坑有三个一是忘记先提 (a) 就直接套“左加右减”二是 (a0) 时忘记反转三是变换后折线斜率没有乘以 (a)。把这三点写在笔记本首页每次画图前过一遍正确率会明显提高。下一步可以继续练两类内容一类是卷积图解法的反转和平移操作另一类是傅里叶变换的尺度变换性质。前者把这篇文章里的 (f(-t)) 和 (f(t-t_0)) 操作放到卷积计算中反复使用后者直接从波形变换推导出频谱的压缩与扩展。作图功底打好了后面这两个章节会轻松很多。建议先自己动手把例 1 和例 2 重新画一遍再试着用文中的 Python 脚本换一个三角波信号验证。只有亲手画到纸上才能发现自己是在哪一步开始跑偏的。