转载自:http://blog.sina.com.cn/s/blog_7445c2940102wmke.html
说明:文章只用于学习分享记录,不涉及任何利益。
本文重点关注卷积的作用或者说应用,从对应用的了解逐步揭开卷积这个数学工具的神秘面纱,以加深对卷积的理解。因此,在阅读本文的之前需要对卷积有一定的了解。幸运的是,网上已经有很多大神对卷积进行了生动形象的描述,详尽的介绍了卷积运算过程等。当然,本文也借着知乎上的例子说明了卷积的含义。
------------------------------------我叫分割线---------------------------------------
对于大部分工科的学生,应该都会或多或少的接触到卷积这种数学运算。它是在信号系统里首次给出定义的,之后卷积被应用到各个领域之中,都取得了不小的成就(要不然也不用仔细研究了。同时也可以看出来数学强大的辐射能力)。第一次接触卷积,是在信号与系统这门课中,当时的感觉总结一个字,那就是晕。不过好在,考完了就不用了。后来,在学习图像处理的课程中,又了解到卷积可以进行图像滤波,但是这个卷积运算感觉跟之前学的完全不一样啊。不过好在,考试不考。再后来,由于课题原因,我就一直纳闷滤波器和系统脉冲响应到底是神马关系,长得完全一样,为毛叫法不一样。不过好在,我心大。自此,我一直对卷积的感觉就是一堆离散的点,没有真正的理解卷积的含义。为了要更深入的了解卷积,我就在网上搜索卷积的含义,卷积的物理意义。附上一篇如知乎上的一篇文章:
https://www.zhihu.com/question/22298352
但这些文章里面,都是讲的卷积在信号系统里的含义,并没有给出卷积的真正含义或者说物理意义。直到前两天无意间看到一篇文章:
http://www.fseraph.com/?p=260
看完之后,我大受启发,突然感觉这些离散的点连成了线。原来,卷积的真实含义就是一种数学运算,没有物理意义。只有将卷积放到具体的场景中,它才有所谓的物理意义。这才发现之前问的问题是多么天真,就好像在问乘法的物理意义。现在想想,要想理解一个抽象的概念,一定要将它放到多个具体的环境中,从多方面的观察,再总结抽象回概念。经过这个过程,就会对概念有了进一步的理解。不要指望通过一个方面就能了解到它的内涵。从科学上讲,只通过一次观察,就得到的结果,一定是存在误差的。
-----------------------------------我叫分割线----------------------------------------
下面进入正题,到底什么是卷积呢?
那么,首先要为什么会需要卷积运算呢?
参考知乎文章中被打的例子(干嘛要被打,还是打别人吧,哈哈)。假设,有一个人每天都希望你打他一巴掌。而你由于身体状况,每天打的力度是不一样的,那么他感受到的疼痛也就是不一样的,即x(t)。那么请问,这个人在第t天,感受到的疼痛感是多少,即求y(t)。显然,我们只需要要把每天感受到的疼痛加起来就可以了,也就是一个叠加的过程。
上述计算中,有一个潜在的前提,就是无论在什么时候打的他,他在第t天能感受到的疼痛感是一样的,这显然是不符合常识的。真实情况一定是,离t天越近的感受到的疼痛也就越强烈。那么,在这种情况下,我们就需要给每天感受的疼痛感增加一个权重,当天的权重最高,越远的权重越小。于是,在第t天感受的疼痛就是:
上面的公式其实就是卷积公式。等等,那么为什么看着跟书上不一样呢?因为,在这里我采用的是同向标号,而书上的卷积公式采用的是逆向标号。那么,这两个有什么区别么?从计算上讲,这两种是没有区别的,只不过是定义下标不同而已,如下:
但是,从下标的定义上讲就不一样了。同向定义中,下标的含义是某一天的权重。假设,在第t天感受第t天的疼痛权重为1,感受t-1天权重为0.5。那么到了第k+1天呢?h(t+1)=1,h(t)=0.5。可以看到,h(t)的值发生了改变。原因是,h(t)不仅与哪天被打有关,同时还跟哪天感受有关,变成了一个二元函数。
我们再来看卷积的定义方式,卷积定义的下标t,其实不是某一天的意思,而是被打的那天和感受疼痛那天的距离,即0为当天打的,1为前一天打的,依此类推。也就是,卷积将一个二元变量,通过求差的方式,变为了一个一元函数。通过这个例子,也要建立一个概念,那就是y的坐标t与权重h的坐标t,其在形式上是一致的,但是在含以上是不一样的。
总而言之,卷积其实就是一种数学运算,一种为了在运算加和(离散)或积分(连续)的过程中引入不变权重的运算,即一种特殊的加权叠加。
在数字信号处理中,离不开两个过程:采样和还原。
采样过程我们都很熟悉,就是将连续信号与周期采样信号在视域下点乘,就可以得到离散的信号,如下图:
那么,如何将离散的信号还原为连续信号呢?这就要出动卷积这个数学工具了,而且可以选择不同的卷积核进行复原,当然得到的结果也就不同。对于卷积核的选择,可以从频域的角度考虑,具体有时间单说把。在fseraph文中选取了三角卷积核,复原过程如下所示:
先从图像处理中的滑动平均滤波器讲起。在冈萨雷斯的书中第三章(空间域图像增强)中,提到了这个平滑线性滤波器。它的形式,如下所示:
在使用过程中,就是让这个3X3的卷积核的中心,沿着遍历图像的每一个点,再对应点相乘叠加作为处理结果。处理后图像每一点的值,都是原来周围的8个点和自身1个点的平均值,这也就实现了图像的平滑处理。这也就是一个二维卷积的过程,可以参看博主的上一篇博文,更形象的表达了二维卷积过程:
http://blog.sina.com.cn/s/blog_7445c2940102wmrp.html
下面我们再来看线性系统中的有限脉冲响应滤波器(FIR Filiter)。
第一次接触到滤波器这个概念,是在学习信号滤波的时候。书中介绍了三种基本滤波器,低通滤波器、高通滤波器和带通滤波器。他们的共同点就是,都是通过频域来对信号进行滤波的。因此,也就给我们了一个错觉,滤波器就是指的在频域下对信号进行某种处理。所以也就对FIR滤波器这个概念迟迟不能理解。明明FIR描述的是一个线性系统的时域响应,它是如何跟滤波器挂上钩的呢?
相信聪明的你已经想到了,难道只能在频域对信号处理么?为什么不能在时域进行处理?我们接触的信号一般都是在是时域下,如果利用频域滤波器,还需要先将信号转换到频域下,处理后再返回到时域中,而且只能据频率大小进行处理,当然这就很适合去噪等工作。但是,如果能够直接在时域中直接处理,岂不是更加直观。相信发明FIR滤波器的人也是这么想的。所以,就有了FIR滤波器。换句话说,FIR滤波器就是一种时域滤波器。
时间卷积最典型的例子就是线性系统的有限脉冲响应,可以用于描述一个线性过程。给定系统输入,通过与FIR卷积,就得到了系统的输出。
空间卷积最典型的例子就是上面讲的平滑滤波器,它是作用在空间范围的。也就是卷积的坐标是空间位置,而不是时间坐标。
时空混合卷积,比较典型的例子可以参看非稳态热传导过程。这个过程可以用偏微分方程描述,在一些限定条件下,我们可以将温场表述如下形式:
上式中,G称为格林函数,f是热源函数。可见温度值u,是热源和格林函数的二维卷积的结果,且一维是时间维度,一维为空间维度。
当然,卷积的用处还有很多,本文只是希望通过这几个例子能够加深读者对卷积的理解。其实还有一个很重要的方面没有涉及,就是通过傅里叶变换快速计算卷积。