从数学上讲,卷积就是一种运算。定义函数 $f,g$ 的卷积 $(f * g)(t)$ 如下

1. 连续形式:

$$(f*g)(t) = int_{-infty}^{+infty}f(tau)g(t - tau)dtau$$

   那这个怎么理解呢?

   函数 $g(t)$ 可以理解为冲击响应,即一个冲击信号经过一个线性系统后产生的输出函数,假设它的图像长成下面这个样子:

       信号卷积(线性卷积)

   在 $0$ 时刻输入了一个冲击信号,这个作用是瞬时的,但是它产生的影响不是瞬时的,而是一个持续性的后果,从上图可以观察到,$0$ 

   时刻接收到冲击信号后立马产生了一个 $w_{0}$ 的影响,然后这个影响不断衰退,直到 $0$,举个例子:某个时刻打了你一巴掌,一开始很疼,

   然后痛感逐渐减弱,$g(t)$ 就是痛感随时间变化的函数。

   假设现在打了你无数个巴掌,那怎么计算出某个时刻你的痛感呢?先考虑一个简单的情形,每次打巴掌的时间间隔大于 $T$,如下图

      信号卷积(线性卷积)

   这种情况下,因为没有重叠,所以只要知道打巴掌的时间和效果函数 $g(t)$,就很容易可以得到疼痛感,但假如没等到 $T$ 就连续打了多个巴掌呢?

         信号卷积(线性卷积)

   在时刻 $0$,$t_{1}$,$t_{2}$ 分别输入了三个冲击信号,即打了三巴掌,现在计算时刻 $a$ 的痛感。很明显越早打巴掌,到时刻 $a$ 时痛感越弱。

   根据线性系统的性质可知,痛感具有叠加性,于是时刻 $a$ 的痛感为

$$g_(a - 0) + g_(a - t_{1}) + g_(a - t_{2})$$

   回到卷积公式,$g(t - tau)$ 就表示在 $tau$ 时刻打了一巴掌,这一巴掌在 $t$ 时刻时的痛感(有衰减)。

   现在更进一步,在 $-infty-+infty$ 区间的任一时刻,我都可能打你一巴掌,相同的时刻可能连打好几巴掌,那么怎么计算时刻 $t$ 的痛感?

   将函数 $f(t)$ 理解为冲击信号输入的速度,即打巴掌的速度,那怎么求某个时刻 $tau$ 打了多少巴掌?这里可以用极限逼近的思想。

   设 $tau - varepsilon < tau < tau + varepsilon$,当 $varepsilon rightarrow 0$ 时,就认为是匀速打巴掌,那么时刻 $tau$ 打的巴掌数为

$$lim_{varepsilon rightarrow 0}f(tau) cdot 2varepsilon$$

   因为痛感可以叠加,所以每个时刻在 $t$ 产生的痛感为

$$sum lim_{varepsilon rightarrow 0}f(tau) cdot 2varepsilon cdot g(t - tau) = int_{-infty}^{+infty}f(tau)g(t-tau)dtau$$

 

2. 离散形式:

$$(f*g)(t) = sum_{tau = -infty}^{+infty}f(tau)g(t - tau)$$

   类比于连续的情况,区别是这里的 $f(tau)$ 直接理解为冲击信号在时刻 $tau$ 输入的次数(在时刻 $tau$ 打的巴掌数),而不是冲击信号输入的速度。

 

综上:系统的输出不仅与系统在 $t$ 时刻的响应有关,还与它在 $t$ 时刻之前的响应有关,不过系统有个衰减过程,$tau < t$ 时刻的输入在 $t$ 时刻

      对输出的影响可以表示为 $f(tau)g(t-tau)$,这个过程可能是离散的,也可能是连续的,所以 $t$ 时刻的输出应该为 $t$ 时刻之前系统响应函数

      在 $t$ 时刻响应的叠加,这便是卷积。