这篇文章解释的非常清楚,做一点小小的补充。文章中对于连续域上的卷积,是从信号处理的角度来解释的,但咱也不是通信专业出身的,一开始理解起来有一些吃力,如果不真正理解一个公式名字的涵义以及它计算的意义,以我这脑子是根本记不住的。。。
1 对于“卷积”这两个字的理解
首先卷积运算有连续形式和离散形式:
- 连续形式:
- 离散形式:
- “卷”的涵义就是把
函数沿着
轴进行翻转(也就是卷起来)
- “积”的意思很简单,其实就是将卷过去的
函数与
对应位置相乘,不过还有一步是乘起来以后相加
所以通俗起来说,卷积就是“卷起来再累积”
(摘用上述文章中的一句话)所谓两个函数的卷积,本质上就是先将一个函数翻转,然后进行滑动叠加。
在连续的情况下,“叠加”指的是对两个函数的乘积求积分,在离散的情况下就是加权求和,统称叠加。
在这里,我的理解是,不管连续还是离散的情况,其实都是在做加权和。这样看还是非常抽象的,需要用信号处理中一个实际的例子才能完全体会卷积到底在算什么。
2 连续域上的卷积实例
是信号处理里面的一个例子,看下面这张图。 是输入信号,随时间变化而变化;
是响应函数,是一个随时间指数下降的函数。理解
对理解这里的卷积运算非常关键:
代表在
时刻输入的信号
,在经过时间
后,它的实际信号强度衰减了多少倍。比如在第 0 时刻输入的
,经过 1 个单位时间后,实际信号强度为
,经过 2 个单位时间后,实际信号强度为
。同理,在
时刻输入的信号
,经过 4 个时间单位后也就是
的时候,实际信号强度已经衰减到了
。

因为信号的输入是连续的,即每一时刻都会有新的信号输入进来。所以最终某一时刻系统的输出,是所有该时刻以前所有输入的累积效应。所以就有了下图的对应相乘然后相加。在 时候系统的总体输出效果为前面所有输入衰减到该时刻后的加和,参与卷积的点有 0~10 共 11 个。而当
取不同的值,参与卷积的点也会变化。

这样看比较别扭,所以把 函数对着一下,变成
:

最后通过平移解决错位,将 向右平移
个单位长度,得到
:

随着时间的推移(即 不断变大),
函数也在不断向右平移。
所以连续域上的卷积,实际上分为三步:
翻转 =====> 滑动 ====> 叠加 ====> 滑动 ====> 叠加 ====> 滑动 ====> 叠加 ……
3 离散域上的卷积实例
关于离散域上的卷积,实际上就是加权求和。最典型的就是图像处理里面的卷积。当然图像中实际的卷积,其实是互相关运算,而且运算是通过卷积核实现的。
- 用来模糊图像的卷积核:
其实就是对周围 9 个临近的像素进行平均,达到模糊图像的效果。其实所谓的图像模糊,从像素的角度来看,就是临近的像素值大小更接近了,而模糊之前图像的相邻像素值之间差距可能比较明显,所以显得比较清晰。
- 而边缘提取的卷积核,实际上是利用了加权求和的方式,计算了一个临近区域内的梯度:
这里其实计算的是水平方向的梯度,假设某 的图像为:
那么这个水平方向的梯度实际上就是:
还是从像素的角度来看,邻近区域像素值差异越大,这里边缘的效果就越明显,即梯度越大。
