卷积(Convolution)的含义

线性时不变系统(Linear Time Invariant System)

在讨论卷积的含义之前,我们要先引入线性时不变系统的概念。线性时不变的系统有两方面的特点,一是线性的,这就表示这个系统满足叠加原理。

给定系统的输入f(t),系统的输出y(t)=x[f(t)]。如果满足:

(1)x[α1f1(t)+α2f2(t)]=α1y1(t)+α2y2(t)

我们就称这个系统是线性的。


而时不变指的是当系统的输入超前或滞后一定时间间隔时,系统的输出也超前或滞后一定的时间。也就是:

(2)x[f(tτ)]=y(tτ)

一个例子

下面我们来看一个线性时不变系统的例子:

728418D7FE82A7D8C4EA0161C1FACEC6.png

这是一个由弹簧、质量、阻尼器组成的机械系统,在所受外力f(t)的作用下,质量为m的物体相对于初始状态的位移、速度、加速度分别为xdxdtd2xdt2。选定f(t)为输入量、x(t)为输出量。根据牛顿第二定律可以写出:

(3)md2xdt2=f(t)kxfkdxdt

其中,kfk分别为弹簧的弹性系数和阻尼器的粘性摩擦系数。

对两边进行拉普拉斯变换,可以得到:

(4)ms2X(s)=f(t)kX(s)fksX(s)

从而得到该系统的传递函数为:

(5)H(s)=1ms2+fks+k

系统输入的响应

下面我们关心的是这个系统的输入输出关系,也就是在输入变化时,系统的输出是怎样变化的。

这里的难点在于,这个系统是时不变的,也就是在不同时间施加在这个系统上的输入都会对这个系统之后的输出产生影响。

比如我们向水中扔了一块石头,这个石头会在水面上产生涟漪,涟漪可能会表现出一些规律性。但当第一块石头产生的涟漪还没有消失时,又扔进去一块石头,两块石头的作用就叠加在一起了,这时的输出又应该怎么分析呢?

涟漪.jpg

我们再回到上面举的弹簧阻尼系统的例子上来,假如我们给定一段图中所示的输入,并把这段输入所起的作用近似为几段恒定施加的力(这有点类似于微分的思想)。就可以分别得出不同段输入所产生的输出。

AFC0550E42A4D954C06395818C47E605.png

此时我们选取输出图像中的一点,其实得到的就是系统对该时刻之前所有输入的响应叠加在一起的效果。当我们选取的间隔无限小时,这实际上就变为了积分。

(6)x(t)=t

单位冲激函数(Unit Impulse Function)

为了在数学上给出严谨的推导,我们还要引入脉冲函数和单位冲激函数概念。

脉冲函数的数学描述定义为:

(7)r(t)={Ah,0th0,else

1691663312204.jpg

在脉冲函数中,A为脉冲面积,h为脉冲宽度。当h0时,也就是脉冲宽度无限小的时候,脉冲的高度r(t)应该趋于无穷。若在此条件上,脉冲面积取1,就得到了单位脉冲函数,记为δ(t)

(8)δ(t)={0,t0δ(t)dt=1

单位冲激函数是一个宽度为0、面积为1的函数。可以把它理解为一瞬间施加的一个信号,就像往水里大力扔了一块石头一样。

再分析例子

有了以上的知识,我们再来分析上文提到的弹簧阻尼系统。

如果我们对这个系统施加一个单位冲激信号δ(t),我们会得到相应的单位冲激响应x(t)=h(t)。 当这个冲激信号延时τ个单位的时候,也就是输入δ(tτ)时,其对应的响应也就变为了x(t)=h(tτ)。当输入的脉冲信号面积不再为1的时候,也就是输入Aδ(t)时,相应的响应也会变为x(t)=Ah(t)。这些都是由系统的线性特征决定的。

7B8A2DCE2FB73528E86C24CD8B76D9DD.png

那么当输入的信号是连续的时候,它的响应又是怎么样的呢?如下图所示的那样,当时间间隔Δ无限趋于0时,我们把0t时刻的输入分成n份,我们取出其中的第i份,把这第i份看作一个脉冲信号,不难得知,它的脉冲面积就可以认为是A=Δ×f(iΔ)。那么对于这第i份脉冲信号,就可以得出它的响应为x(t)=Δf(iΔ)h(tiΔ)

92D54880B8441E0F71305A47C07B3986.png

对应的输入和响应关系可以在下表中清晰的看到:

输入f(t)响应x(t)
δ(t)h(t)
δ(tτ)h(tτ)
Aδ(t)Ah(t)
Δf(iΔ)δ(tiΔ)Δf(iΔ)h(tiΔ)

得到了这些,我们就可以确定系统某一时刻的最终响应了。我们需要做的就是把t时刻之前的所有输入响应叠加在一起,也就是:

(9)x(t)=i=0nΔf(iΔ)h(tiΔ)

在连续输入的条件下,Δ0Δ=dτ,iΔ=τ。此时有:

(10)x(t)=limΔ0i=0nΔf(iΔ)h(tiΔ)=0tf(τ)h(tτ)dτ

这样就得到了卷积的定义:

(11)f(t)h(t)=0tf(τ)h(tτ)dτ

从而我们可以得知,对于一个线性时不变系统,可以通过它的单位冲激响应完全定义该系统。也就是说,我们知道了一个线性时不变系统的单位冲激响应,就可以用任何输入信号和它进行卷积,得到该系统的输出。