卷积的直观解释

发表时间

卷积运算应用广泛,但是由于计算公式中存在反转,违背直觉所以不容易理解。本文试着避免从信号处理的角度出发,从本质上解释卷积运算的来源。

TL;DR

太长不看版:卷积是两个函数包含的信息糅合生成新函数的过程。

相互作用的例子

两个对等的事物相互作用、相互影响,你中有我,我中有你,最后形成的新事物,带着原来双方的影子。比如:

  • 整数乘法:

3 × 5 = 15

  • 两幅图糅和成为一个新图:
  • 两套染色体合成一套新的染色体,孩子染色体上的每对基因,由父母的等位基因共同决定:

字面含义

“卷积”并不是 convolution 的唯一翻译,其他还有摺积、叠积等,这些翻译的含义中总包含有混合、纠缠、重叠的意思,所以这种算法注定包含了充分混合得到新事物的过程。

卷积公式中反转坐标的意义

两个离散序列$x[n]$和$y[n]$,它们的卷积运算定义为:$$f[n]=x[n]*y[n]=\sum^{\infty}_{k=-\infty}{x[k]y[n-k]}=\sum^{\infty}_{k=-\infty}{x[n-k]y[k]} \tag{1}$$

我们观察卷积公式 $(1)$ 里,相乘的两项$x[k]$ 和 $y[n-k]$ 的下标有一个特点,就是$x[k]$ 和 $y[n-k]$ 下标之和总等于 $n$ . 所以,卷积公式 $(1)$ 可以用语言描述为

卷积函数 $f[n]$ 下标 $n$ 的值 ,等于所有下标之和等于 $n$ 的 $x[n]$ 和 $y[n]$ 乘积之和。

这个描述中,$x[n]$ 和 $y[n]$ 是平等的,所以卷积运算满足交换律。两个原始序列下标的配对过程如下图:

这就是卷积公式 $(1)$ 里,坐标反转的意义。

举个例子, 若将卷积函数记为 $f[n]$ ,那么 $f \left[ 5 \right] $ 的值等于所有下标之和等于$5$的 $x$ 和 $y$ 序列乘积之和:

$$ f \left[ 5 \right] = \cdots + x \left[ 0 \right] y \left[ 5 \right] + x \left[ 1 \right] y \left[ 4 \right] + x \left[ 2 \right] y \left[ 3 \right] + x \left[ 3 \right] y \left[ 2 \right] + x \left[ 4 \right] y \left[ 1 \right]+\cdots $$

反转的本质是取齐

上一节 提到,反转坐标的目的是找到所有下标之和等于 $n$ 的原始序列,这样做的本质是在自变量 $n$ 的维度里取齐。

  • 如果自变量 $n$ 是时间,那么就是在时间上取齐;比如同一时刻到达终点的运动员个数。
  • 如果自变量 $n$ 是一维位置,那么就是在长度上取齐;比如同一个高度上观众的个数。
  • 如果自变量 $n$ 是二维位置,那么就是在平面上取齐;比如同一个平面坐标点上的强度。
  • 如果自变量 $n$ 是三维位置,那么就是在空间上取齐……

总结起来就是:
卷积就是两件事物相互合作,在同一个坐标点上共同施加的影响。

这里的共同施加,未必一定是如卷积公式 $(1)$ 中的先乘法再相加,只要是相互作用并得到新事物即可。

另一种视角:筛选

卷积公式 $(1)$ 除了 上面提到的共同施加影响 以外,还有另一种视角就是:一方 $x[n]$ 对另一方 $y[n]$ 的筛选,只有取齐了的结果才能放置在同一个坐标下。由于卷积满足交换律,所以这里的筛选并没有方向性,可以说 $x[n]$ 过滤了$y[n]$,同时也可以说 $y[n]$ 过滤了$x[n]$.

时间上的取齐

超市的例子

超市需要经常清理临近保质期的商品。如何在所有商品中,找到所有在今天到达保质期的商品?以我们的常识,应该是找出所有满足下面等式的商品:

生产日期 + 保质期 = 今天

例如,我们找出的商品可能如下表所示:

商品 生产日期 保质期 生产日期+保质期
方便面 2014-7-22 5年 2019-7-22
薯片 2017-7-22 2年 2019-7-22
酸奶 2019-5-22 2月 2019-7-22
面包 2019-7-20 2天 2019-7-22

对于任何一天 n,用上面的方法找出所有的失效商品,作为这一天的函数值:

失效期 n 商品集合 f[n]
2019-7-20 前天过期的商品集合
2019-7-21 昨天过期的商品集合
2019-7-22 今天过期的商品集合
2019-7-23 昨天过期的商品集合
…… ……

得到的就是在不同日期 $x[n]$ 生产的商品,经过各自保质期 $y[n]$,筛选出特定某一天的过期商品集合。

空间上的取齐

波纹的例子

一滴水引起的波纹,波峰将形成什么形状?

水面所有质点都受同一个水滴激发,由于振动的相位只和到水滴的距离有关,所以波峰必然是圆形。圆形的波峰是空间上取齐的集合。

杨氏双缝干涉的例子

双缝干涉的亮斑,是两个振动源的相位在空间上取齐的结果。

多个振动源干涉的例子

天线的方向图

上面两个例子 更广泛的例子,是多个振动源的相位在空间上取齐的结果。比如天线的方向图,就是多个振动源在空间取齐的结果。

时空上的取齐

下雨的例子

某一个时刻落在地面的雨滴数量,是什么决定的?

特定的出发位置、配合特定的出发时刻,让有缘分的雨滴在同一个时刻到达了地面。

交通的例子

同一条路上的人、车的集合,都是各自的出发地点、出发时间、和各自的路线、路上消耗的时间共同决定,最终在时间和空间上共同取齐的结果。

这些车在相同的时刻,聚到了相同的地点。

骰子点数之和的概率

正如 扔出两个骰子的点数之和 中表格所列,得到点数3的事件分解为:[1, 2] 和 [2, 1] 两种事件,就是两颗骰子能共同得到3的两种情况。

整数乘法

整数的乘法中包含了取齐求和的过程。比如:乘积里的十位,是由所有乘数里,能相乘得到十位数字的组合,取齐后相加得来。

       1  2
  x    3  4
---------------
       4  8
    3  6  0
---------------
    4  0  8

上面的竖式里,乘积十位的 0 是由 4×10=40 和 30×2=60 相加得到的。如果用 反转平移 ,就能将更清楚的观看乘法过程。比如计算 12 × 34 = (10 + 2) × (30 + 4),下面例子里将 34 反转。

         10  2   --->
             ▼
       <---  4   30
----------------------
  个位        8
         10   2   --->
         ▼    ▼
   <---  4    30
---------------------
  十位    40 + 60 = 100
             10   2  --->
             ▼
  <---  4    30
----------------------
  百位       300

所以,整数乘法是卷积运算。

多项式乘法

作为整数乘法的抽象,多项式乘法同样是卷积。$$({x}+2)(3{x}+4) = (1 \times 3){x}^2+(1\times4+2\times3){x}+(2\times4)$$

中学时候学的交叉相乘法求各项系数,

     1   2
      \ /
      / \ 
     3   4
----------------------
     6 + 4  = 10

其实是卷积运算的特殊情形,更一般的情况是反转-相乘-求和。比如 $$({x^2}+{2x}+3)(4{x^2}+5{x}+6)$$

信号与系统

许多对卷积的解释都是从《信号与系统》开始,但是《信号与系统》本身就是抽象的概念,并不能帮助理解卷积,反倒让人更加迷惑。了解了上面的多个例子以后,再看信号和系统函数的卷积,也许更能加深理解。

混响系统

唱 K 的时候,会用混响系统来产生回声效果:当你喊“喂”,它输出“喂(原声),喂(稍弱),喂(更弱)”……

所以当你唱歌的时候,你在任何一个时刻听到的其实是你的原声和多个更弱的回声相加的结果。

假设你唱的歌可以用 $x[n]$ 表示,那么加了混响后,你听到的歌用 $f[n]$ 表示:$$ f[n] = x[n] + a_1x[n-1] + a_2x[n-2] + \cdots + a_nx[n-n]$$ 这里$a_1,a_2, \cdots$ 通常应该是递减序列,如果用 $y[n]$ 表示: $y\left[ 0 \right] = 1, y\left[1 \right] = a_1, y\left[2 \right] = a_2, \cdots, y[n]=a_n$. 如下图所示:

那么 $f[n]$ 可以重新写为:$$ f[n] = x[n]y\left[ 0 \right] + x[n-1] y\left[ 1 \right] + x[n-2]y\left[ 2 \right] + \cdots + x[n-n]y\left[ n \right]=\sum^{n}_{k=0}{x[k]y[n-k]}$$

符合卷积公式 $(1)$

信号和系统的互易性

正如 上节 所提到,由于卷积运算满足交换律,所以信号和系统的地位是相同的,你可以说是“信号”通过了“系统”,也可以说是“系统”通过了“信号”。举个例子:音箱发烧友喜欢用《渡口》来检验音箱的低频响应,如何在多个音箱中选出自己喜欢的,就用一首信号$x[n]$来处理不同音箱的系统函数$y[n]$.

和相关运算的区别

相关与卷积运算十分相似,都是两个集合的整体运算。但是和卷积不同的是,相关运算的结果,表明了二者的相似程度。由于位移方向和序列方向相同,所以对于两个序列来说,相关就是滑动点积,或者可以称为滑动投影。
$$R_{xy}[n]=\sum^{\infty}_{k=-\infty}{x[k] y[n+k]}$$卷积用来使两个集合相互影响,生成新的集合。相关用来在一个集合中,寻找另一个集合的影子。这一切的差异,仅来自一个正负号。

卷积满足交换律,而相关不满足。比如父亲和母亲共同的孩子,也可以说是母亲和父亲共同的孩子,并没有区别。

但是,如果把一个人的儿童和成人时期作对比:对于儿童来说,若干年后和成人长得完全一致;对于成人来说,则是若干年前和儿童完全一致。这一前一后,说明改变了相关顺序,得到的结果是不同,而且是对称的。


  欢迎到 留言板 写下你的看法。
  本页面内容采用 署名协议 CC-BY 授权。欢迎转载,请保留原文链接