跳转至

冲激响应与卷积

对 LTI 系统而言,冲激响应 \(h\) 是系统的“完整指纹”,卷积则是用这枚指纹计算任意输入响应的方法。


1. 为什么一个冲激响应就够了

任意离散信号都可以拆成许多移位冲激之和:

\[ x[n]=\sum_{k=-\infty}^{\infty}x[k]\delta[n-k] \]

把它想成:在每个位置 \(k\) 放一个冲激,高度取该处样本值 \(x[k]\)。

若系统对 \(\delta[n]\) 的响应是 \(h[n]\),由于时不变性,对 \(\delta[n-k]\) 的响应就是 \(h[n-k]\);由于线性,所有响应可以按 \(x[k]\) 加权后相加:

\[ y[n]=\sum_{k=-\infty}^{\infty}x[k]h[n-k] \]

这就是离散卷积,记作

\[ y[n]=(x*h)[n] \]

连续信号可理解为无数个宽度趋近于零的冲激之和,于是

\[ y(t)=\int_{-\infty}^{\infty}x(\tau)h(t-\tau)d\tau \]

2. 卷积究竟在做什么

固定某个输出时刻 \(n\),离散卷积执行四件事:

  1. 翻转 \(h[k]\) 得到 \(h[-k]\);
  2. 平移到 \(h[n-k]\);
  3. 与 \(x[k]\) 对齐后逐点相乘;
  4. 对所有 \(k\) 求和,得到这个时刻的 \(y[n]\)。

连续卷积同理,只把求和换成积分。

更实用的直觉

\(x[k]h[n-k]\) 表示:过去第 \(k\) 个输入样本对当前第 \(n\) 个输出贡献了多少。卷积把所有历史贡献加起来。


3. 离散卷积完整例题

已知

\[ x[n]=\{1,2,1\},\qquad h[n]=\{1,1\} \]

两者都从 \(n=0\) 开始。输出长度是 \(3+2-1=4\):

\(n\) 参与相乘的项 \(y[n]\)
0 \(1\times1\) 1
1 \(2\times1+1\times1\) 3
2 \(1\times1+2\times1\) 3
3 \(1\times1\) 1

因此

\[ y[n]=\{1,3,3,1\} \]

这与多项式乘法非常像:\((1+2z^{-1}+z^{-2})(1+z^{-1})=1+3z^{-1}+3z^{-2}+z^{-3}\)。

滑动平均就是卷积

长度为 \(M\) 的移动平均滤波器有

\[ h[n]=\frac1M\bigl(u[n]-u[n-M]\bigr) \]

所以

\[ y[n]=\frac1M\sum_{k=0}^{M-1}x[n-k] \]

它把最近 \(M\) 个样本取平均。噪声起伏会被平滑,但快速变化也会变钝并产生延迟。


4. 连续卷积完整例题

设输入和冲激响应都是宽度为 1 的矩形脉冲:

\[ x(t)=h(t)=u(t)-u(t-1) \]

卷积

\[ y(t)=\int_{-\infty}^{\infty}x(\tau)h(t-\tau)d\tau \]

的积分值等于两个单位高度矩形在 \(\tau\) 轴上的重叠长度:

\[ y(t)= \begin{cases} 0,&t<0\\ t,&0\le t<1\\ 2-t,&1\le t<2\\ 0,&t\ge2 \end{cases} \]

两个矩形卷积得到三角形。这个例子说明,卷积不是神秘公式,而是在不同平移位置计算“重叠程度”。

用支撑区间快速判断范围

若 \(x(t)\) 仅在 \([a,b]\) 非零,\(h(t)\) 仅在 \([c,d]\) 非零,则卷积仅可能在

\[ [a+c,\ b+d] \]

非零。这能在正式积分前检查答案的起止位置。


5. 卷积的重要性质

性质 公式 系统含义
交换律 \(x*h=h*x\) 可交换输入与冲激响应进行计算
结合律 \(x*(h_1*h_2)=(x*h_1)*h_2\) 串联系统可先合并
分配律 \(x*(h_1+h_2)=x*h_1+x*h_2\) 并联系统响应相加
单位元 \(x*\delta=x\) 冲激对应恒等系统
平移 \(x(t-t_0)*h(t)=y(t-t_0)\) 输入延迟导致输出等量延迟
微分 \(\frac d{dt}(x*h)=\frac{dx}{dt}*h=x*\frac{dh}{dt}\) 微分可移到任一因子

对串联 LTI 系统,等效冲激响应为 \(h_{eq}=h_1*h_2\)。由交换律,在纯 LTI 数学模型下交换串联顺序不会改变输入输出关系;但真实硬件中的饱和、噪声注入和量化会破坏这个结论。


6. 阶跃响应与冲激响应

系统对单位阶跃 \(u(t)\) 的响应称为阶跃响应 \(s(t)\):

\[ s(t)=u(t)*h(t)=\int_{-\infty}^{t}h(\tau)d\tau \]

因此

\[ h(t)=\frac{ds(t)}{dt} \]

工程上产生理想冲激很困难,却很容易给系统一个阶跃指令,所以常测量阶跃响应,再由它推断系统速度、阻尼和稳定性。

一阶系统

若

\[ h(t)=\frac1\tau e^{-t/\tau}u(t) \]

则阶跃响应为

\[ s(t)=\bigl(1-e^{-t/\tau}\bigr)u(t) \]

在 \(t=\tau\) 时到终值约 63.2%,\(t=3\tau\) 时约 95%。


7. 卷积和系统性质

因果

因果 LTI 系统满足 \(h(t)=0\)(\(t<0\))。此时

\[ y(t)=\int_{-\infty}^{t}x(\tau)h(t-\tau)d\tau \]

输出只使用当前和过去的输入。

BIBO 稳定

若输入 \(|x(t)|\le B\),则

\[ |y(t)|\le B\int_{-\infty}^{\infty}|h(\tau)|d\tau \]

因此 LTI 系统 BIBO 稳定的充要条件是 \(h\) 绝对可积;离散系统则要求 \(h[n]\) 绝对可和。

能衰减不等于一定绝对可积

判断稳定性要检查 \(\int|h(t)|dt\) 或 \(\sum|h[n]|\),不能只看 \(h\) 是否“好像趋于零”。例如 \(h[n]=u[n]/(n+1)\) 会趋于零,但调和级数不绝对收敛,因此不 BIBO 稳定。


8. 初学者常见错误

  • 忘记 \(h(n-k)\) 中先翻转再平移;
  • 把相乘 \(x(t)h(t)\) 当成卷积;
  • 离散有限序列输出长度误写成 \(L_x+L_h\),正确是 \(L_x+L_h-1\);
  • 只算积分表达式,不先判断重叠区间;
  • 忽略序列的起始下标,只有数值没有索引就无法唯一确定信号。

9. 本章自测

1. \(x[n]=\{2,1\}\),\(h[n]=\{1,-1\}\),均从 0 开始,卷积结果是什么?

依次得到 \(2\)、\(1-2=-1\)、\(-1\),所以 \(y[n]=\{2,-1,-1\}\)。

2. 两个分别支撑在 \([-1,2]\) 与 \([3,5]\) 的信号,卷积可能在哪个区间非零?

端点相加,得到 \([2,7]\)。

3. 若 \(h[n]=(1/2)^nu[n]\),系统是否因果、稳定?

\(n<0\) 时为零,所以因果;且 \(\sum_{n=0}^{\infty}(1/2)^n=2<\infty\),所以 BIBO 稳定。

4. 为什么测得阶跃响应后可以得到冲激响应?

因为 \(u'(t)=\delta(t)\),LTI 系统中微分可与卷积交换,所以冲激响应等于阶跃响应的导数。

下一步:傅里叶分析与频率响应。