ARTICLE DETAIL

资讯详情

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

卷积积分算不对?图形定限法+分段推导吃透矩形脉冲×斜变信号

卷积积分算不对?图形定限法+分段推导吃透矩形脉冲×斜变信号 “卷积积分算不对十有八九不是积分不会算而是积分限没找对。”这句话几乎可以概括信号与系统第一章里绝大多数同学的真实困境。公式背得很熟翻转、平移也画了可一到写积分表达式就卡住上限写多少下限从哪里来为什么这里要分四段结果一算出来波形还连不上明显是错的。本文要讲的是 2025 年福州大学信号与系统风格的一道典型题矩形脉冲信号与斜变信号的卷积求解同时也属于“小马哥960题”中卷积积分部分的高频题型。它看起来只是两个简单信号的卷积实际上隐藏了卷积计算最核心的方法论——通过图形确定积分限再分段积分。这道题吃透了第一章卷积积分的分数基本就稳了。读完这篇文章你会得到三样东西第一一套可以套用到任意有限长信号卷积的“图形定限法”流程第二这道题从 t0 到 t≥5 的完整分段推导第三用 Python 做数值验证的方法让你不但会手算还能用代码确认自己的答案。1. 这道题真正要解决的问题很多初学者会把卷积的难点理解为“微积分计算能力不足”但实际根本不是。像 f(t)t·e^{-t}u(t) 和 h(t)sin(t)u(t) 这种用留数法、卷积表能处理的题目反而容易做真正让人反复出错的是矩形脉冲、斜变信号这种“有限长、带跳变”的信号因为它们的解析式必须用阶跃函数组合表示卷积过程必须分段讨论。矩形脉冲与斜变信号的卷积恰好是这两类信号的组合矩形脉冲典型的有限长门信号数学上是两个阶跃函数之差斜变信号典型的线性增长信号数学上是斜坡乘以门信号。两者卷积的结果可以用来描述很多实际场景一个有限宽度的激励输入到一个具有斜坡响应的线性时不变系统输出会经历“上升—保持—下降”三个阶段。这个输出形态恰恰也是考研和期末最爱考的地方。这道题真正的价值不在于“算出 y(t)”而在于训练一种思维卷积积分不是一个机械的积分动作而是两个信号重叠面积随平移量 t 的变化过程。你只有真正掌握“f(τ) 不动h(t-τ) 翻转后随 t 滑动”这一几何过程才能在任意复杂的信号组合面前不慌。这也是为什么福州大学这类院校会把矩形脉冲×斜变信号放到第一章的核心位置。适合读这篇文章的读者主要有三类正在准备 2026 考研信号与系统、需要夯实卷积基础的同学期末复习信号与系统被分段卷积折磨的本科生工作需要用到卷积概念但当年没学明白、现在想补课的工程师。如果你已经能熟练画出两个有限长信号的波形并一眼看出重叠区间那这篇文章可以当成“自查清单”来用如果你现在还处于“公式会背但一写就错”的阶段建议按顺序从头读到尾每个分段都亲手算一遍。2. 基础概念与卷积的物理意义2.1 卷积积分定义对于两个连续时间信号 f(t) 和 h(t)卷积积分定义为$$ y(t) f(t) * h(t) \int_{-\infty}^{\infty} f(\tau) h(t - \tau) , d\tau $$这里几个符号要反复强调τ 是积分变量是“过去时间”的概念t 是参变量是“当前观察时刻”h(t-τ) 表示 h 先关于 τ 翻转再向右平移 t输出 y(t) 描述的是两个信号重叠部分的加权面积。2.2 矩形脉冲信号矩形脉冲也叫门信号、矩形窗函数这里用的是$$ f(t) u(t) - u(t - 3) $$即$$ f(t) \begin{cases} 1, 0 \le t 3 \ 0, \text{其他} \end{cases} $$它的特点是宽度为 3幅度为 1在 t0 处上升跳变在 t3 处下降跳变。2.3 斜变信号斜变信号Ramp 信号这里是$$ h(t) t \left[ u(t) - u(t - 2) \right] $$即$$ h(t) \begin{cases} t, 0 \le t 2 \ 0, \text{其他} \end{cases} $$它的特点是从 0 开始线性增加到 2在 t2 处“截断”掉。注意 h(t) 在 t2 时刻本身有间断但这对卷积计算没有本质影响只要积分边界处理正确即可。2.4 图解法四步做两道有限长信号的卷积最可靠的方法是四步图解法固定把 f(τ) 画在 τ 轴上保持不动翻转画 h(-τ)即把 h 关于纵轴翻转平移把 h(-τ) 向右平移 t得到 h(t-τ)积分对固定区间上 f(τ) 和 h(t-τ) 的乘积求积分。很多教材把这四步写得很轻巧但实际做题时关键在第 3 步和第 4 步随着 t 从小到大移动h(t-τ) 的非零区间会和 f(τ) 的非零区间发生“部分重叠—全部重叠—渐渐分离”的变化每一段变化对应一个不同的积分区间。2.5 卷积的宽度规律如果 f(t) 的持续时间是 T_fh(t) 的持续时间是 T_h且两者都是有限长信号那么卷积结果 y(t) 的持续时间是$$ T_y T_f T_h $$这是一个极好用的“先验检查”。本题 T_f 3T_h 2所以 y(t) 的总持续时间是 5。如果最后算出来的结果持续时间不是 5那几乎可以断定某个分段写错了。3. 例题设定与总体分析为了防止理解偏差我们把题目完整写出来。题目背景是 2025 年福州大学风格题型本文采用的参数设定为$$ f(t) u(t) - u(t - 3) $$$$ h(t) t \left[ u(t) - u(t - 2) \right] $$求$$ y(t) f(t) * h(t) $$这两个信号的波形特征是f(t) 是 0 到 3 之间幅度恒为 1 的矩形门h(t) 是 0 到 2 之间幅度线性增长的斜坡。由于 f 的宽度比 h 更长所以卷积过程中会出现一段时间内“h(t-τ) 完全落在 f 的区间里”这段时间输出是平顶的。这正是这道题与“两个宽度相同的矩形卷积”不同的地方也是它更有教学价值的地方。在正式开始前先用宽度规律做一个预判f 起始时刻 0h 起始时刻 0所以 y(t) 从 t0 开始非零f 结束时刻 3h 结束时刻 2两者和的最晚时刻是 5所以 y(t) 在 t5 结束总宽度 5。因此y(t) 只可能在 $t \in [0, 5]$ 上有非零值其他区间视为零。这也意味着分段区间至少会围绕 0、2、3、5 这几个关键点来划分。4. 图解法与分区间推导4.1 基本思路写出一组通用积分限回顾卷积定义$$ y(t) \int_{-\infty}^{\infty} f(\tau) h(t - \tau) , d\tau $$f(τ) 的非零区间是$$ 0 \le \tau \le 3 $$h(t-τ) 关于 τ 的非零区间由下式决定$$ 0 \le t - \tau \le 2 $$解这个不等式$$ -2 \le \tau - t \le 0 $$$$ t - 2 \le \tau \le t $$所以乘积 f(τ)·h(t-τ) 的非零区间是两个区间的交集$$ \tau \in [0, 3] \cap [t-2, t] $$因此积分的实际下界和上界分别是$$ \tau_{\min} \max(0, t - 2) $$$$ \tau_{\max} \min(3, t) $$当 $\tau_{\min} \ge \tau_{\max}$ 时重叠面积为零y(t)0。这一段是整个题目的“题眼”。只要把这两个 max/min 搞明白分段就清楚了。接下来我们按 t 的取值范围逐段讨论。4.2 区间划分总览根据 t-2、t、0、3 这四个量的大小关系可以分为五个区间先给总览区间积分下限积分上限重叠情况t 0无无两个信号没有重叠0 ≤ t 20th 左端滑入 f2 ≤ t 3t-2th 整体落在 f 内部3 ≤ t 5t-23h 右端滑出 ft ≥ 5无无两个信号再次分离下面逐段推导。4.3 第一段t 0当 t 0 时h(t-τ) 的区间是 $[\ t-2, \ t\ ]$这个区间的右端点 t 0而 f(τ) 的非零区间从 0 开始所以两者在 τ 轴上没有重叠$$ y(t) 0, \quad t 0 $$从图解法看h(-τ) 翻转后位于 τ 负半轴向右平移一个负数 t实际是向左移更不可能与 [0,3] 上的 f(τ) 相交。4.4 第二段0 ≤ t 2此时 t 为正但 h(t-τ) 的右端点 t 仍然小于 2同时 t-2 0所以$$ [\ t-2, \ t\ ] \cap [0, 3] [0, t] $$被积函数方面由于 $0 \le \tau \le t$且 $0 \le t-\tau \le t 2$有$$ f(\tau) 1, \quad h(t - \tau) t - \tau $$于是$$ y(t) \int_{0}^{t} (t - \tau) , d\tau $$令 $u t - \tau$则 $du -d\tau$积分上下限从 $\tau0$ 到 $\taut$对应 $ut$ 到 $u0$$$ y(t) \int_{t}^{0} u \cdot (-du) \int_{0}^{t} u , du \frac{t^2}{2} $$所以$$ y(t) \frac{t^2}{2}, \quad 0 \le t 2 $$这一段的物理含义是斜变信号的“头部”刚刚进入矩形窗口重叠部分从零逐渐增大输出按抛物线上升。4.5 第三段2 ≤ t 3当 t 跨过 2 之后h(t-τ) 的整个非零区间 $[t-2, t]$ 是否完整落在 f 的非零区间内先检查左端$t - 2 \ge 0$再检查右端$t 3$。所以$$ [\ t-2, \ t\ ] \subset [0, 3] $$也就是说h 的波形完整落在矩形脉冲内没有截断。此时被积函数依然是$$ f(\tau) 1, \quad h(t - \tau) t - \tau $$但积分区间是整个 $[t-2, t]$$$ y(t) \int_{t-2}^{t} (t - \tau) , d\tau $$令 $u t-\tau$$du -d\tau$$\tau t-2$ 时 $u 2$$\tau t$ 时 $u 0$$$ y(t) \int_{2}^{0} u \cdot (-du) \int_{0}^{2} u , du \frac{u^2}{2}\Big|_{0}^{2} 2 $$所以$$ y(t) 2, \quad 2 \le t 3 $$这是一个平顶段。原因是斜变信号 h 的面积为定值只要 h 完全进入矩形脉冲内部且矩形脉冲不截断 h 的任何部分重叠面积就始终等于 h 的总面积。4.6 第四段3 ≤ t 5当 t ≥ 3 后情况发生了变化矩形脉冲的右边界 3 落在了积分区间 $[t-2, t]$ 的内部但区间左端 t-2 仍可能大于 0。此时候h(t-τ) 的左端 t-2 还没超过 3h(t-τ) 的右端 t 已经越过 3所以重叠区间是 $[t-2, 3]$。被积函数仍然是$$ f(\tau) 1, \quad h(t - \tau) t - \tau $$因此$$ y(t) \int_{t-2}^{3} (t - \tau) , d\tau $$令 $u t - \tau$$du -d\tau$$\tau t-2$ 时 $u 2$$\tau 3$ 时 $u t-3$。注意因为 $t \ge 3$所以 $u t-3 \ge 0$且 $u t - 3 2$$$ y(t) \int_{2}^{t-3} u \cdot (-du) \int_{t-3}^{2} u , du $$$$ y(t) \frac{u^2}{2}\Big|_{t-3}^{2} \frac{4}{2} - \frac{(t-3)^2}{2} 2 - \frac{(t-3)^2}{2} $$所以$$ y(t) 2 - \frac{(t-3)^2}{2}, \quad 3 \le t 5 $$这是一段下降抛物线。当 t5 时$$ 2 - \frac{(5-3)^2}{2} 2 - 2 0 $$下降段结束。4.7 第五段t ≥ 5当 t ≥ 5 时$t - 2 \ge 3$说明 h(t-τ) 左端已经越过 f(τ) 右边界 3$$ [\ t-2, \ t\ ] \cap [0, 3] \varnothing $$重叠面积为零$$ y(t) 0, \quad t \ge 5 $$4.8 结果整理与连续性校验把五段结果合写成分段函数$$ y(t) \begin{cases} 0, t 0 \ \dfrac{t^2}{2}, 0 \le t 2 \ 2, 2 \le t 3 \ 2 - \dfrac{(t-3)^2}{2}, 3 \le t 5 \ 0, t \ge 5 \end{cases} $$接下来校验关键点的连续性这是判断分段有没有写错的重要方法t0 时左边 y0右边 y0连续t2 时左边 $y 2^2/2 2$右边 y2连续t3 时左边 y2右边 $y 2 - 0 2$连续t5 时左边 $y 2 - 4/2 0$右边 y0连续。所有分段点处 y(t) 都连续。连续是卷积积分的必然结果两个有限能量信号做卷积输出信号不会出现额外跳变除非原信号中包含冲激信号。这个特性可以用来快速排除明显算错的分段。如果观察输出波形整体形态是“上升抛物线—水平直线—下降抛物线”这也是矩形脉冲与斜变信号卷积的典型形状。5. 解析结果与 Python 数值验证手算完之后强烈建议用代码做一次数值验证。这不仅能确认答案还能帮你建立“分段函数图像”与“重叠面积动态变化”之间的直觉。5.1 用 Python 数值积分验证最简单的验证思路是不手算分段积分直接用数值积分计算卷积在每个 t 处的值。代码如下import numpy as np from scipy.integrate import quad import matplotlib.pyplot as plt # 定义矩形脉冲信号 def f(tau): return 1.0 if 0 tau 3 else 0.0 # 定义斜变信号 def h(x): return x if 0 x 2 else 0.0 # 卷积积分的被积函数 def integrand(tau, t): return f(tau) * h(t - tau) # 数值计算 y(t) f(t) * h(t) def y_numeric(t_val): # 根据两个信号的非零区间求积分上下限 tau_low max(0.0, t_val - 2.0) tau_high min(3.0, t_val) if tau_low tau_high: return 0.0 result, _ quad(integrand, tau_low, tau_high, args(t_val,)) return result # 在 [-1, 7] 上采样 t_vals np.linspace(-1, 7, 400) y_numeric_vals np.array([y_numeric(tv) for tv in t_vals]) # 画图 plt.figure(figsize(8, 4)) plt.plot(t_vals, y_numeric_vals, b-, linewidth2, label数值卷积 y(t)) plt.xlabel(t) plt.ylabel(y(t)) plt.title(矩形脉冲与斜变信号的卷积数值验证) plt.grid(True) plt.legend() plt.savefig(conv_verify.png, dpi120) plt.show()这段代码把卷积积分的上下限写成了 max/min 的形式其实和手算时的做法完全一样。运行后会看到一条“上升—平顶—下降”的曲线这就是 y(t) 的图像。5.2 解析结果绘图叠加对比更严谨的做法是同时画出解析解和数值解两者应基本重合。解析结果绘图代码如下import numpy as np import matplotlib.pyplot as plt def y_analytic(t): if t 0: return 0.0 elif t 2: return 0.5 * t ** 2 elif t 3: return 2.0 elif t 5: return 2.0 - 0.5 * (t - 3) ** 2 else: return 0.0 t_vals np.linspace(-1, 7, 1000) y_analytic_vals np.array([y_analytic(tv) for tv in t_vals]) plt.figure(figsize(8, 4)) plt.plot(t_vals, y_analytic_vals, r--, linewidth2, label解析结果 y(t)) plt.plot(t_vals, y_numeric_vals, b-, linewidth1.2, alpha0.8, label数值结果 y(t)) plt.xlabel(t) plt.ylabel(y(t)) plt.title(解析解与数值解对比) plt.grid(True) plt.legend() plt.show()如果两条曲线完全重合说明手算的分段函数没有问题。如果某一段不重合优先检查对应的分段区间和积分表达式。5.3 用 SymPy 做符号验证除了数值验证还可以借助 SymPy 做符号积分验证。代码如下import sympy as sp tau, t sp.symbols(tau t, realTrue) # 分别定义 f(tau) 和 h(t-tau) # f(tau) 1, 0 tau 3 # h(t-tau) t-tau, 0 t-tau 2 t-2 tau t # 法1手动指定分段区间求积分 y_seg1 sp.integrate(t - tau, (tau, 0, t)) y_seg2 sp.integrate(t - tau, (tau, t - 2, t)) y_seg3 sp.integrate(t - tau, (tau, t - 2, 3)) print(0t2:, sp.simplify(y_seg1)) print(2t3:, sp.simplify(y_seg2)) print(3t5:, sp.simplify(y_seg3))运行后SymPy 会输出三个化简后的表达式0≤t2 段输出 t**2/22≤t3 段输出 23≤t5 段输出 2 - (t-3)**2/2。这相当于用符号计算引擎帮你复核了一遍积分推导极其适合手算后自查。6. 常见错误与排查思路下面这几种错误是卷积分段求解里最常出现的几乎每一届都会有人踩。我按“错误现象、可能原因、排查方式、解决方案”整理成表问题现象可能原因排查方式解决方案算出来的 y(t) 总宽度不是 5漏段或某段积分限写错用宽度规律 T_f T_h 做先验检查先画出两个信号的支持区间再重新划分 t 的区间某个分段点处 y(t) 不连续积分上下限代入时出错把 t 的边界值代入相邻两段结果看是否相等重算该分段的定积分注意上下限与变量替换的对应关系平顶段的高度不是斜变信号面积误以为矩形脉冲把斜变信号“放大”了检查重叠区间是否包含 h 的完整支持区间如果 [t-2, t] 完全在 [0,3] 内部则积分等于 h 的总面积把 h(t-τ) 写成 h(τ-t)翻转方向没搞清检查 h(t-τ) 在 τ 轴上是右移还是左移h 先翻转得到 h(-τ)再向右平移 t积分被积函数里忘了写 f(τ)1 的支持区间把积分限写错成 0 到 ∞先写出 f(τ) 和 h(t-τ) 各自的非零区间再取交集积分上下限必须来自交集不能直接把上限写成 ∞计算时把 2≤t3 段和 3≤t5 段合并以为平顶段会一直持续到结束观察 t3 时 f 的右边界是否截断 h只要 min(3,t) 的上限出现 3说明 h 被 f 右边界截断结果开始下降特别提醒一点很多同学在第四段“3≤t5”中用换元法时上下限容易写反。本来$$ y(t) \int_{t-2}^{3} (t - \tau) d\tau $$换元后 $u t - \tau$会出现“上限小于下限”的假象。正确做法是看清 $\taut-2$ 时 $u2$、$\tau3$ 时 $ut-3$由于 $t-3 \le 2$所以在 u 域积分应从 $t-3$ 积到 2而不是从 2 积到 $t-3$。这个细节值得单独标出来。7. 工程意义与扩展思考这道题看起来是纯数学推导但它对应的物理场景非常具体。在 LTI 系统分析中如果输入信号是宽度为 3 的矩形脉冲系统的冲激响应是持续时间为 2 的斜变信号那么输出 y(t) 就是系统的零状态响应。这个响应正好经历了“建立—稳态—消退”三个阶段。“建立阶段”输入刚刚进入系统输出随 t 的平方增加反映系统对输入的积分累积“平顶阶段”输入已经完全覆盖冲激响应的全部非零区间输出等于冲激响应的面积系统进入“准稳态”“消退阶段”输入逐渐离开冲激响应的区间输出按抛物线回落到零。这种波形在工程中很常见。比如一个有限宽度的门控信号通过积分器或者一个矩形激励加到具有斜坡响应的传感器上输出形态都会出现类似的上升—平坦—下降。理解这道题对你后续学习“用卷积计算系统响应”“信号通过线性系统”有直接的帮助。另一个值得提的扩展是卷积与多项式乘法的类比。矩形脉冲、斜变信号这类“平直信号”的卷积在离散域可以看成多项式乘法。连续域的“分段积分”在离散域变成了“逐点累加”但分段区间和重叠思路完全一致。如果你同时学习离散卷积和连续卷积可以相互印证。此外卷积有一些很有用的性质可以简化计算比如时移性质如果两个信号都延迟了一段时间卷积结果也会平移。本题没有显式加延迟但如果把矩形脉冲换成 $u(t-1)-u(t-3)$可以先算出标准卷积再利用时移性质直接平移结果。这种“先算标准型再平移”的技巧在考试中能节省不少时间。8. 总结与学习建议回到开头那句话卷积积分算不对问题往往出在积分限。本文通过“矩形脉冲 × 斜变信号”这道经典题完整演示了解决分段卷积问题的四步流程写出 f(τ) 和 h(t-τ) 各自的非零支持区间取交集得到积分上下限的 max/min 形式按 t 的取值划分区间逐段积分用关键点连续性和宽度规律校验。这套流程对任意有限长连续信号卷积都成立。你现在可以立刻做三件事来巩固第一把这个题目中的参数改一改比如把矩形脉冲宽度改成 4斜变信号持续时间改成 3重新分段计算。你会发现分段点和结果都变了但方法完全一样。第二用文中的 Python 脚本对照你自己的手算结果。先跑数值解再画解析解两条线一重叠正确与否一目了然。第三练一道改进版把 h(t) 改成下降斜变信号比如 $h(t) (2-t)[u(t)-u(t-2)]$再算卷积。这时平顶段会变成斜直段图形的对称性也会改变能帮你更深刻地理解卷积翻转方向的作用。信号与系统第一张卷积积分的分水岭不在公式记忆而在“图形定限”的熟练度。矩形脉冲和斜变信号这道题练熟了后续学习傅里叶变换、系统响应都会顺畅很多。建议收藏本文下次再被卷积分段折磨时拿出来按流程走一遍。
返回列表