卷积与差分方程
第一讲里,课程先讲离散时间序列的移位、翻褶、相加、相乘、差分,再讲单位抽样序列、线性移不变系统、单位抽样响应、卷积和,最后进入常系数线性差分方程。很多同学半懂不懂,通常不是因为某个公式太难,而是因为这几个概念之间的桥没有搭起来。
本页的主线是:
前置知识回顾:如果这里卡住,先去哪里补
本页会默认你知道下面几个概念。如果不熟,建议先回看对应页面或材料。
- 离散时间信号 $x[n]$:一串按整数索引排列的样本。去补:离散时间信号与系统,第一讲 PPT p3-p6。
- 序列移位 $x[n-m]$:把序列向右平移 $m$ 个采样点,是差分方程里“过去输入/过去输出”的符号基础。去补:第一讲 PPT p7-p9。
- 翻褶 $x[-n]$:把序列左右反转,是图解卷积“翻褶、移位、相乘、求和”的第一步。去补:第一讲 PPT p10-p11。
- 单位抽样序列 $\delta[n]$:只有 $n=0$ 处为 1,其余为 0。它像离散世界里的“积木块”。去补:第一讲 PPT p28。
- 线性与移不变:线性保证“加权输入的输出等于加权输出”,移不变保证“输入延迟,输出同样延迟”。去补:第一讲 PPT p41-p44。
离散系统本质上是一个运算规则:输入一个序列 $x[n]$,输出另一个序列 $y[n]$,记为
如果系统是任意黑箱,我们几乎没法用一个简单公式描述它。但如果它满足两个很强的条件,事情就会变简单:
- 线性:输入可以拆开算,输出再加起来。
- 移不变:今天输入一个脉冲和明天输入同样脉冲,响应形状一样,只是整体平移。
满足这两个条件的系统叫 LTI 系统。卷积和不是任意定义的运算,而是 LTI 系统的必然输出公式。
先定义单位抽样响应:当输入是单位抽样序列 $\delta[n]$ 时,系统输出称为 $h[n]$:
这句话的含义很关键。$\delta[n]$ 是“最小测试输入”,$h[n]$ 是系统被这个最小输入敲一下之后的完整反应。对 LTI 系统,只要知道 $h[n]$,就可以预测任意输入的输出。
原因来自任意序列的单位脉冲分解:
这不是玄学。右边每一项 $x[m]\delta[n-m]$ 只在 $n=m$ 处留下一个高度为 $x[m]$ 的脉冲。把所有位置的脉冲加起来,正好拼回原来的 $x[n]$。
把输入分解式送进系统:
由于系统线性,可以把求和与常数 $x[m]$ 提出来:
由于系统移不变,$\delta[n]$ 的响应是 $h[n]$,那么 $\delta[n-m]$ 的响应就是 $h[n-m]$。于是
这就是卷积和。它的直觉是:输入的每一个样本 $x[m]$ 都会激发一个移位后的系统响应 $h[n-m]$,最终输出是所有这些响应的叠加。
卷积公式
里面 $k$ 是哑变量,$n$ 是当前输出时刻。为了算某个 $n$ 下的输出,需要看 $x[k]$ 和 $h[n-k]$ 在 $k$ 轴上哪里重叠。图解法四步是:
- 翻褶:把 $h[k]$ 变成 $h[-k]$。
- 移位:把 $h[-k]$ 平移成 $h[n-k]$。
- 相乘:只在 $x[k]$ 和 $h[n-k]$ 都非零的位置有贡献。
- 求和:把所有重叠位置的乘积加起来。
所以,卷积题最重要的不是先算,而是先找支撑区间的交集。
例题 1:第一讲作业第 1 题
题目:已知
直接计算卷积和 $y[n]=x[n]*h[n]$,并用公式表示。
第一步:写卷积。
第二步:找非零条件。 $h[k]\ne0$ 要求 $0\le k\le N-1$;$x[n-k]\ne0$ 要求 $n-k\ge n_0$,即 $k\le n-n_0$。所以
第三步:分段。 当 $n<n_0$ 时没有重叠,$y[n]=0$。当 $n\ge n_0$ 时,
答案:若 $\alpha\ne\beta$,则
若 $\alpha=\beta$,几何和退化为项数:
对 LTI 系统,单位抽样响应 $h[n]$ 不只用来算输出,还能直接判断系统性质。
- 因果系统:输出不能依赖未来输入。对 LTI 系统,充要条件是 $h[n]=0,n<0$。
- BIBO 稳定系统:有界输入产生有界输出。对 LTI 系统,充要条件是 $\sum_{n=-\infty}^{\infty}|h[n]|<\infty$。
直观上,如果 $h[n]$ 在负时间不为零,说明一个单位脉冲还没输入,系统就已经响应了,所以非因果。如果 $h[n]$ 的绝对和发散,输入虽然有界,但卷积叠加可能无限放大,所以不稳定。
例题 2:第一讲作业第 5 题
题目:以下序列是系统单位抽样响应 $h[n]$,判断系统是否因果、稳定:
| $h[n]$ | 因果性 | 稳定性 | 理由 |
|---|---|---|---|
| $\frac{1}{n^2}u[n]$ | 因果 | 稳定 | 支撑在 $n\ge0$,且 $\sum 1/n^2$ 收敛,$n=0$ 处需另行定义有限值。 |
| $\frac{1}{n!}u[n]$ | 因果 | 稳定 | $\sum_{n=0}^{\infty}1/n!=e$。 |
| $3^n u[n]$ | 因果 | 不稳定 | $\sum 3^n$ 发散。 |
| $3^n u[-n]$ | 非因果 | 稳定 | 负时间非零;但 $\sum_{n=-\infty}^{0}3^n$ 收敛。 |
| $\delta[n+3]$ | 非因果 | 稳定 | 在 $n=-3$ 处非零;绝对和为 1。 |
连续时间系统常用微分方程,因为变化发生在连续时间上;离散时间系统常用差分方程,因为当前输出经常由过去若干个输入和过去若干个输出决定。常系数线性差分方程的一般形式是
这里 $y[n-k]$ 是过去第 $k$ 个输出,$x[n-k]$ 是过去第 $k$ 个输入。这个式子给出的是递推关系:只要初始状态和输入序列已知,就能一步一步算出输出。
这也解释了为什么后面要学 Z 变换:时域递推适合手算少数样本,但不适合一眼看出系统结构。Z 变换会把移位 $y[n-k]$ 变成乘以 $z^{-k}Y(z)$,从而把差分方程压缩成代数式。
例题 3:第一讲作业第 4 题
题目:对系统
求单位抽样响应 $h[n]$,并判断系统是否稳定。
第一步:单位抽样响应的定义。 令 $x[n]=\delta[n]$,输出就是 $h[n]$。
第二步:代入。
第三步:判断稳定。 对 LTI 系统,稳定当且仅当 $\sum_n|h[n]|<\infty$。本题中
由于 $N$ 有限、各 $\alpha_k$ 为有限常数,所以系统稳定。
实验 2 要求编程求两个系统的单位抽样响应和阶跃响应,并画图。实验原理已经把关键链条写出来了:
MATLAB 中常见两条路线:
filter(p,d,x):从差分方程递推求输出。conv(x,h):从单位抽样响应卷积求输出。
对 FIR 系统,两条路线通常很容易对上;对 IIR 系统,$h[n]$ 无限长,实际计算时只能截断观察前若干项。
例题 4:实验 2 第一个系统的理论入口
题目:
求单位抽样响应时令 $x[n]=\delta[n]$,于是
递推步骤:假设因果松弛系统,$h[n]=0,n<0$。
- $n=0$:$h[0]+0+0=1$,所以 $h[0]=1$。
- $n=1$:$h[1]+0.6h[0]+0=-1$,所以 $h[1]=-1.6$。
- $n=2$:$h[2]+0.6h[1]+0.09h[0]=0$,所以 $h[2]=0.87$。
- $n\ge2$ 后右端为 0,按齐次递推继续算。
实验验证:用 filter([1 -1],[1 0.6 0.09],delta) 可以得到同样的前若干项。阶跃响应则把输入换成 $u[n]$,或者把 $h[n]$ 与 $u[n]$ 卷积。
实验 2 第二个系统:移动平均 FIR
题目:
令 $x[n]=\delta[n]$,直接得到
它是长度为 5 的 FIR 系统,相当于对过去 5 个输入样本做等权平均再乘以 0.5。阶跃输入下,输出会先逐步爬升,等窗口完全填满后保持常数。
到这里,时域链条已经完整了:
但时域方法有局限:递推能算点值,却不容易直接看极点、稳定性边界和频率响应。下一节 Z 变换会把
于是差分方程变成系统函数
这就是本页和 Z 变换 页之间的衔接:卷积与差分方程解决“时域如何描述系统”,Z 变换解决“如何用复平面分析系统”。
复习速查
- 任意序列分解:$x[n]=\sum_m x[m]\delta[n-m]$。
- LTI 输出:$y[n]=x[n]*h[n]=\sum_m x[m]h[n-m]$。
- 卷积图解四步:翻褶、移位、相乘、求和。
- 因果判据:$h[n]=0,n<0$。
- 稳定判据:$\sum_n|h[n]|<\infty$。
- FIR:单位抽样响应有限长;IIR:单位抽样响应通常无限长。
- 差分方程:描述递推;Z 变换:把递推变成代数。
参考来源
- 《数字信号处理教程(第五版)》第 1 章卷积和与差分系统相关部分
- 课程讲义:第一讲《离散时间信号与系统》p21-p60
- 第一讲作业、第一讲作业答案
- 实验 2《离散系统的差分方程、单位抽样响应和卷积分析》
- LibreTexts · Discrete Time Impulse Response
- DSP First
- The Scientist and Engineer's Guide to DSP