luhui

简谈卷积

0
阅读(107) 评论(2)

大家好,之前有文章说到信号处理,说到卷积,那今天咱们来聊一聊卷积。


关于卷积,之前在大学时候学信号与系统的时候就感觉理解的不是很深刻,我于是心想一定要把卷积完全搞明白。经过一段时间的思考之后,有一些很有趣的体会和大家分享。据说卷积这种运算式物理学家发明的,在实际中用得不亦乐乎,而数学家却一直没有把运算的意义彻底搞明白。仔细品以下,还是有那么点滋味的。


下面先看一下剑桥大学的教科书对卷积的定义:

image.png

我们都知道这个公式,但是它有什么物理意义呢,平时我们用卷积做过很多事情,信号处理时,输出函数是输入函数和系统函数的卷积,在图像处理时,两组幅分辨率不同的图卷积之后得到的互相平滑的图像可以方便处理。卷积甚至可以用在考试作弊中,为了让照片同时像两个人,只要把两人的图像卷积处理即可,这就是一种平滑的过程,可是我们怎么才能真正把公式和实际建立起一种联系呢,也就是说,我们能不能从生活中找到一种很方便且具体的例子来表达公式的物理意义呢?


那下面咱们就来看一看详细的卷积本质以及物理意义的介绍

1 来源


卷积其实就是为冲击函数诞生的。“冲击函数”是狄拉克为了解决一些瞬间作用的物理现象而提出的符号。古人曰:“说一堆大道理不如举一个好例子”,冲量这一物理现象很能说明“冲击函数”。在t时间内对一物体作用F的力,倘若作用时间t很小,作用力F很大,但让Ft的乘积不变,即冲量不变。于是在用t做横坐标、F做纵坐标的坐标系中,就如同一个面积不变的长方形,底边被挤的窄窄的,高度被挤的高高的,在数学中它可以被挤到无限高,但即使它无限瘦、无限高、但它仍然保持面积不变(它没有被挤没!),为了证实它的存在,可以对它进行积分,积分就是求面积嘛!于是“卷积”这个数学怪物就这样诞生了。


卷积是“信号与系统”中论述系统对输入信号的响应而提出的。


2 意义


信号处理是将一个信号空间映射到另外一个信号空间,通常就是时域到频域,(还有z域,s域),信号的能量就是函数的范数(信号与函数等同的概念),大家都知道有个Paserval定理就是说映射前后范数不变,在数学中就叫保范映射,实际上信号处理中的变换基本都是保范映射,只要Paserval定理成立就是保范映射(就是能量不变的映射)。


信号处理中如何出现卷积的。假设B是一个系统,其t时刻的输入为x(t),输出为y(t),系统的响应函数为h(t),按理说,输出与输入的关系应该为


Y(t)=h(t)x(t),


然而,实际的情况是,系统的输出不仅与系统在t时刻的响应有关,还与它在t时刻之前的响应有关,不过系统有个衰减过程,所以t1(<t)时刻的输入对输出的影响通常可以表示为x(t)h(t-t1),这个过程可能是离散的,也可能是连续的,所以t时刻的输出应该为t时刻之前系统响应函数在各个时刻响应的叠加,这就是卷积,用数学公式表示就是


y(s)=∫x(t)h(s-t)dt,


离散情况下就是级数了。


3 计算


卷积是一种积分运算,它可以用来描述线性时不变系统的输入和输出的关系:即输出可以通过输入和一个表征系统特性的函数(冲激响应函数)进行卷积运算得到。(以下用$符号表示从负无穷大到正无穷大的积分)


1)一维卷积:


y(t)=g(k)*x(k)=$g(k)x(t-k)


先把函数x(k)相对于原点反折,然后向右移动距离t,然后两个函数相乘再积分,就得到了在t处的输出。对每个t值重复上述过程,就得到了输出曲线。   


2)二维卷积:


h(x,y)=f(u,v)*g(u,v)=$$f(u,v)g(x-u,y-v)


先将g(u,v)绕其原点旋转180度,然后平移其原点,u轴上像上平移x,   v轴上像上平移y。然后两个函数相乘积分,得到一个点处的输出。


4 幽默笑话——谈卷积的物理意义


有一个七品县令,喜欢用打板子来惩戒那些市井无赖,而且有个惯例:如果没犯大罪,只打一板,释放回家,以示爱民如子。


有一个无赖,想出人头地却没啥指望,心想:既然扬不了善名,出恶名也成啊。怎么出恶名?炒作呗!怎么炒作?找名人呀!他自然想到了他的行政长官——县令。


无赖于是光天化日之下,站在县衙门前撒了一泡尿,后果是可想而知地,自然被请进大堂挨了一板子,然后昂首挺胸回家,躺了一天,嘿!身上啥事也没有!第二天如法炮制,全然不顾行政长管的仁慈和衙门的体面,第三天、第四天......每天去县衙门领一个板子回来,还喜气洋洋地,坚持一个月之久!这无赖的名气已经和衙门口的臭气一样,传遍八方了!


县令大人噤着鼻子,呆呆地盯着案子上的惊堂木,拧着眉头思考一个问题:这三十个大板子怎么不好使捏?......想当初,本老爷金榜题名时,数学可是得了满分,今天好歹要解决这个问题:


 ——人(系统!)挨板子(脉冲!)以后,会有什么表现(输出!)?


 ——费话,疼呗!


——我问的是:会有什么表现?


 ——看疼到啥程度。像这无赖的体格,每天挨一个板子啥事都不会有,连哼一下都不可能,你也看到他那得意洋洋的嘴脸了(输出0);如果一次连揍他十个板子,他可能会皱皱眉头,咬咬牙,硬挺着不哼(输出1);揍到二十个板子,他会疼得脸部扭曲,象猪似地哼哼(输出3);揍到三十个板子,他可能会象驴似地嚎叫,一把鼻涕一把泪地求你饶他一命(输出5);揍到四十个板子,他会大小便失禁,勉强哼出声来(输出1);揍到五十个板子,他连哼一下都不可能(输出0)——死啦!


县令铺开坐标纸,以打板子的个数作为X轴,以哼哼的程度(输出)为Y轴,绘制了一条曲线:


 ——呜呼呀!这曲线像一座高山,弄不懂。为啥那个无赖连挨了三十天大板却不喊绕命呀?


 —— 呵呵,你打一次的时间间隔(Δτ=24小时)太长了,所以那个无赖承受的痛苦程度一天一利索,没有叠加,始终是一个常数;如果缩短打板子的时间间隔(建议Δτ=0.5秒),那他的痛苦程度可就迅速叠加了;等到这无赖挨三十个大板(t=30)时,痛苦程度达到了他能喊叫的极限,会收到最好的惩戒效果,再多打就显示不出您的仁慈了。


——还是不太明白,时间间隔小,为什么痛苦程度会叠加呢?


——这与人(线性时不变系统)对板子(脉冲、输入、激励)的响应有关。什么是响应?人挨一个板子后,疼痛的感觉会在一天(假设的,因人而异)内慢慢消失(衰减),而不可能突然消失。这样一来,只要打板子的时间间隔很小,每一个板子引起的疼痛都来不及完全衰减,都会对最终的痛苦程度有不同的贡献:


t个大板子造成的痛苦程度=Σ(第τ个大板子引起的痛苦*衰减系数)


[衰减系数是(t-τ)的函数,仔细品味]


 数学表达为:y(t)=∫T(τ)H(t-τ)


——拿人的痛苦来说卷积的事,太残忍了。除了人以外,其他事物也符合这条规律吗?


 ——呵呵,县令大人毕竟仁慈。其实除人之外,很多事情也遵循此道。好好想一想,铁丝为什么弯曲一次不折,快速弯曲多次却会轻易折掉呢?


 ——恩,一时还弄不清,容本官慢慢想来——但有一点是明确地——来人啊,将撒尿的那个无赖抓来,狠打40大板!


也可以这样理解:T(τ)即第τ个板子,H(t-τ)就是第τ个板子引起的痛苦到t时刻的痛苦程度,所有板子加起来就是∫T(τ)H(t-τ)


4 卷积在具体学科中的应用


图像处理:用一个模板和一幅图像进行卷积,对于图像上的一个点,让模板的原点和该点重合,然后模板上的点和图像上对应的点相乘,然后各点的积相加,就得到了该点的卷积值。对图像上的每个点都这样处理。由于大多数模板都是对称的,所以模板不旋转。卷积是一种积分运算,用来求两个曲线重叠区域面积。可以看作加权求和,可以用来消除噪声、特征增强。


把一个点的像素值用它周围的点的像素值的加权平均代替。


卷积是一种线性运算,图像处理中常见的mask运算都是卷积,广泛应用于图像滤波。


卷积在数据处理中用来平滑,卷积有平滑效应和展宽效应.


电路学:卷积法的原理是根据线性定常电路的性质(齐次性、叠加性、时不变性、积分性等),借助电路的单位冲激响应h(t),求解系统响应的工具,系统的激励一般都可以表示为冲击函数和激励的函数的卷积,而卷积为高等数学中的积分概念。概念中冲击函数的幅度是由每个矩形微元的面积决定的。


卷积关系最重要的一种情况,就是在信号与线性系统或数字信号处理中的卷积定理。利用该定理,可以将时间域或空间域中的卷积运算等价为频率域的相乘运算,从而利用FFT等快速算法,实现有效的计算,节省运算代价。


信号处理:


1)卷积实质上是对信号进行滤波;


2)卷积就是用冲击函数表示激励函数,然后根据冲击响应求解系统的零状态响应。


卷积是求和(积分)。对于线性时不变的系统,输入可以分解成很多强度不同的冲激的和的形式(对于时域就是积分),那么输出也就是这些冲激分别作用到系统产生的响应的和(或者积分)。所以卷积的物理意义就是表达了时域中输入,系统冲激响应,以及输出之间的关系。


信号角度:卷积代表了线性系统对输入信号的响应方式,其输出就等于系统冲击函数和信号输入的卷积,只有符合叠加原理的系统,才有系统冲击函数的概念,从而卷积成为系统对输入在数学上运算的必然形式,冲击函数实际上是该问题的格林函数解。点激励源作为强加激励,求解某个线性问题的解,得到的格林函数即是系统冲击响应.所以在线性系统中,系统冲击响应与卷积存在着必然的联系。


数学:来说卷积就是定义两个函数的一种乘法,或者是一种反映两个序列或函数之间的运算方法。对离散序列来说就是两个多项式的乘法。物理意义就是冲激响应的线性叠加,所谓冲激响应可以看作是一个函数,另一个函数按冲激信号正交展开。


在现实中:卷积代表的是将一种信号搬移到另一频率中,比如调制,这是频率卷。


物理:卷积可代表某种系统对某个物理量或输入的调制或污染


在现实中:卷积代表的是将一种信号搬移到另一频率中,比如调制,这是频率卷。


形象比喻:卷积我觉得就象一把锉刀,它主要是把一些非光滑的函数或算子光滑化。


信号处理的任务就是寻找和信号集合对应的一个集合,然后在另外一个集合中分析信号,Fourier变换就是一种,它建立了时域中每个信号函数与频域中的每个频谱函数的一一对应关系,这是元素之间的对应。那么运算之间的对应呢,在时域的加法对应频域中的加法,这就是FT线性性的体现;那么时域的乘法对应什么呢,最后得到的那个表达式我们就把它叫卷积,就是对应的频域的卷积。


简单来说,卷积是一种重叠关系,也就是说,所得到的结果反映了两个卷积函数的重叠部分。所以,用一个已知频段的函数卷积另一个频段很宽的函数,也就是对后者进行了滤波,后者跟前者重叠的频段才能很好地通过这个filter.


5 卷积与多项式


信号处理中的一个重要运算是卷积.初学卷积的时候,往往是在连续的情形,两个函数f(x),g(x)的卷积,是∫f(u)g(x-u)du。当然,证明卷积的一些性质并不困难,比如交换,结合等等,但是对于卷积运算的来处,初学者就不甚了了。


其实,从离散的情形看卷积,或许更加清楚,对于两个序列f[n],g[n],一般可以将其卷积定义为s[x]= ∑f[k]g[x-k]。


卷积的一个典型例子,其实就是初中就学过的多项式相乘的运算。


比如(x*x+3*x+2)(2*x+5)一般计算顺序如下:


(x*x+3*x+2)(2*x+5)


= (x*x+3*x+2)*2*x+(x*x+3*x+2)*5

= 2*x*x*x+3*2*x*x+2*2*x+ 5*x*x+3*5*x+10

然后合并同类项的系数,


2x*x*x


3*2+1*5x*x


2*2+3*5x


2*5

2*x*x*x+11*x*x+19*x+10


实际上,从线性代数可以知道,多项式构成一个向量空间,其基底可选为{1,x,x*x,x*x*x,...}如此,则任何多项式均可与无穷维空间中的一个坐标向量相对应,如,(x*x+3*x+2)对应于(1 3 2),(2*x+5)对应于(2,5)。线性空间中没有定义两个向量间的卷积运算,而只有加法、数乘两种运算,而实际上,多项式的乘法,就无法在线性空间中说明,可见线性空间的理论多么局限了。但如果按照我们上面对向量卷积的定义来处理坐标向量,(1 3 2)*(2 5)则有(1 3 2)*(2 5)=(2 11 19 10)。


回到多项式的表示上来,(x*x+3*x+2)(2*x+5)=2*x*x*x+11*x*x+19*x+10,结果跟我们用传统办法得到的是完全一样的.换句话,多项式相乘,相当于系数向量的卷积.其实道理也很简单,卷积运算实际上是分别求 x*x*x ,x*x,x,1的系数,也就是说,他把加法和求和杂合在一起做了。(传统的办法是先做乘法,然后在合并同类项的时候才作加法)以x*x的系数为例,得到x*x,或者是用x*x乘5,或者是用3x乘2x,也就是


2 3 1

_ 2 5

6+5=11


其实,这正是向量的内积.如此则,卷积运算,可以看作是一串内积运算.既然是一串内积运算,则我们可以试图用矩阵表示上述过程。

[ 2 3 1 0 0 0]

[ 0 2 3 1 0 0]==A

[ 0 0 2 3 1 0]

[ 0 0 0 2 3 1]

[0 0 2 5 0 0]' == x

b= Ax=[ 2 11 19 10]'


采用行的观点看Ax,则b的每行都是一个内积。A的每一行都是序列[23 1]的一个移动位置。显然,在这个特定的背景下,我们知道,卷积满足交换,结合等定律,因为,众所周知的,多项式的乘法满足交换律,结合律.在一般情形下,其实也成立.


在这里,我们发现多项式,除了构成特定的线性空间外,基与基之间还存在某种特殊的联系,正是这种联系,给予多项式空间以特殊的性质.


在学向量的时候,一般都会举这个例子,甲有三个苹果,5个橘子,乙有5个苹果,三个橘子,则共有几个苹果,橘子。老师反复告诫,橘子就是橘子,苹果就是苹果,可不能混在一起。所以有(3,5)+(5,3)=(8,8).是的,橘子和苹果无论怎么加,都不会出什么问题的,但是,如果考虑橘子乘橘子,或者橘子乘苹果,这问题就不大容易说清了。


又如复数,如果仅仅定义复数为数对(a,b),仅仅在线性空间的层面看待C2,那就未免太简单了。实际上,只要加上一条(a,b)*(c,d)=(ac-bd,ad+bc)。则情况马上改观,复变函数的内容多么丰富多彩,是众所周知的。另外,回想信号处理里面的一条基本定理,频率域的乘积,相当于时域或空域信号的卷积.恰好和这里的情形完全对等.这后面存在什么样的隐态联系,需要继续参详.


从这里看,高等的卷积运算其实不过是一种初等的运算的抽象而已.中学学过的数学里面,其实还蕴涵着许多高深的内容(比如交换代数)。温故而知新,斯言不谬.其实这道理一点也不复杂,人类繁衍了多少万年了,但过去n多年,人们只知道男女媾精,乃能繁衍后代。精子,卵子的发现,生殖机制的研究,也就是最近多少年的事情。


孔子说,道在人伦日用中,看来我们应该多用审视的眼光看待周围,乃至自身,才能知其然,而知其所以然。


参考资料:

http://hi.baidu.com/a__g/blog/item/10873722cab331ac4723e8f7.html

http://blog.chinaunix.net/u2/76475/showart_1682636.html


  1. 网上摘录的一个小故事,觉得对于理解三大变换很有意思。

    张三刚刚应聘到了一个电子产品公司做测试人员,他没有学过"信号与系统"这门课程。一天,他拿到了一个产品,开发人员告诉他,产品有一个输入端,有一个输出端,有限的输入信号只会产生有限的输出。 然后,经理让张三测试当输入sin(t)(t<1秒)信号的时候(有信号发生器),该产品输出什么样的波形。张三照做了,画了一个波形图。 "很好!"经理说。然后经理给了张三一叠A4纸: "这里有几千种信号,都用公式说明了,输入信号的持续时间也是确定的。你分别测试以下我们产品的输出波形是什么吧!" 这下张三懵了,他在心理想"上帝,帮帮我把,我怎么画出这些波形图呢?" 于是上帝出现了: "张三,你只要做一次测试,就能用数学的方法,画出所有输入波形对应的输出波形"。 上帝接着说:"给产品一个脉冲信号,能量是1焦耳,输出的波形图画出来!" 张三照办了,"然后呢?" 上帝又说,"对于某个输入波形,你想象把它微分成无数个小的脉冲,输入给产品,叠加出来的结果就是你的输出波形。你可以想象这些小脉冲排着队进入你的产品,每个产生一个小的输出,你画出时序图的时候,输入信号的波形好像是反过来进入系统的。" 张三领悟了:" 哦,输出的结果就积分出来啦!感谢上帝。这个方法叫什么名字呢?" 上帝说:"叫卷积!" 从此,张三的工作轻松多了。每次经理让他测试一些信号的输出结果,张三都只需要在A4纸上做微积分就是提交任务了! ---------------------------------------- 张三愉快地工作着,直到有一天,平静的生活被打破。 经理拿来了一个小的电子设备,接到示波器上面,对张三说: "看,这个小设备产生的波形根本没法用一个简单的函数来说明,而且,它连续不断的发出信号!不过幸好,这个连续信号是每隔一段时间就重复一次的。张三,你来测试以下,连到我们的设备上,会产生什么输出波形!" 张三摆摆手:"输入信号是无限时长的,难道我要测试无限长的时间才能得到一个稳定的,重复的波形输出吗?" 经理怒了:"反正你给我搞定,否则炒鱿鱼!" 张三心想:"这次输入信号连公式都给出来,一个很混乱的波形;时间又是无限长的,卷积也不行了,怎么办呢?" 及时地,上帝又出现了:"把混乱的时间域信号映射到另外一个数学域上面,计算完成以后再映射回来" "宇宙的每一个原子都在旋转和震荡,你可以把时间信号看成若干个震荡叠加的效果,也就是若干个可以确定的,有固定频率特性的东西。" "我给你一个数学函数f,时间域无限的输入信号在f域有限的。时间域波形混乱的输入信号在f域是整齐的容易看清楚的。这样你就可以计算了" "同时,时间域的卷积在f域是简单的相乘关系,我可以证明给你看看" "计算完有限的程序以后,取f(-1)反变换回时间域,你就得到了一个输出波形,剩下的就是你的数学计算了!" 张三谢过了上帝,保住了他的工作。后来他知道了,f域的变换有一个名字,叫做傅里叶,什么什么... ... ---------------------------------------- 再后来,公司开发了一种新的电子产品,输出信号是无限时间长度的。这次,张三开始学拉普拉斯了......

  2. 傅立叶变换和卷积的物理意义

    这里没有数学公式,倒不是像费曼那样高风亮节,而是这里输入公式太烦,不然...

    突然说这个话题是因为在水房洗衣的时候,一数学系正在刮胡子的哥们突然问我傅立叶变换的物理意义是什么?当时我就死机了,不知怎么答。

    傅立叶变换伴随了我四年,从数学分析课上学会计算,然后光学中的夫朗和费衍射,接着信号处理,然后是SRTP中的数字全息都和这个息息相关,可是,课堂上强调的是会算,会用就行了,而对其物理意义,书上语焉不详,老师只字未提。

    傅立叶变换的产生,是一个叫约瑟夫.傅立叶的法国人《热的分析理论》中作为一个数学工具而引入的,所以它的发展一直在其工具出身的阴影下,对于其意义不同学科有不同版本的阐释,但更多的是作为一个计算工具辅助计算,所以要我说其有什么物理意义,一时间真的不知怎么回答。

    于是我只好举个例子,傅立叶变换在光学上的物理意义。

    我们都知道,会聚透镜(简单地说,就是普通的凸透镜啦)除了具有成像性质外,最有用的就是它还具有进行二维傅 立叶变换的本领。由物理光学可知,在单位振幅的平面光波垂直照明下 的夫朗和费衍射,恰好实现衍射屏透过率函数的傅立叶变换。

    即一束光通过凸透镜在焦平面上采集到的图像即为这束光的频率空间信息,亦即数学上对这束光进行一次傅立叶变换后的结果。

    所以傅立叶变换在这里的物理意义就是将光的空间分布转换为频率分布(相空间),在靠近原点的部分为图像低频部分,远离原点部分为图像高频部分。

    这时那哥们就问:那么变换后高频部分对应图像的哪一部分呢?因为有个老师讲课时说,原来原点部分对应变换后距原点无穷远处,而原来的无穷远处则对应变换后的原点。(我突然想起了倒易空间,联想到这个没什么道理)

    直觉上我觉得这样说是错误的,因为傅立叶变换并非一一对应的,频率空间上任何一处,哪怕只有一点都与原来的整幅图像有关,也就是说,这是非局域性的。

    举个例子,全息图,任取全息图的一部分还原(做一次逆傅立叶变换)成的图像都是原来的整幅图像,但由于高频信息的缺失所以还原图像比原图像要模糊。

    而频率空间体现的是什么呢?是原图像的变化程度。举个最简单的例子,一束平行光经过凸透镜后在焦平面(即频率空间)上会聚为一点,在数学上就是平面波函数经过傅立叶变换后得到一个常量(信号处理上又称为直流量),意思是原来的图像(平面波)没有"起伏"(即光强变化,因为是平行光),所以在原点(低频)处有一点强光,数学上是冲击函数,这样搞过信号的人大概会共鸣了吧。

    没错!信号书上经典例题,对阶跃函数和冲击函数通过傅立叶变换在物理光学上的对应就是平行光通过凸透镜。

    这就是傅立叶变换在光学上的物理意义,至于傅立叶变换在量子力学上的意义...不写公式光靠文字描述的话我讲不清楚。

    还有就是卷积了,我只能说,它的图像意义便是两个函数随着自变量的变化不断重叠的面积的叠加,至于其物理意义我就说不清了,因为我接触卷积以来,它都只是计算工具,拉普拉斯变换啊之类的用于计算两个函数叠加的工具,变换之后又做逆变换,然后很方便地得出正确结果。

    我知道这肯定是不足的,除了知道怎么算(这是基础!),然后知道图像意义,可是卷积肯定有对应的物理意义。工科老师上课时只是把这个当成一个工具,能用就行,可是这对学物理的我来说,对why有一种近似着魔的obsession,就像Nolan的《The Prestige》里面对决的两个魔术师一样...

    P.S.Google卷积的物理意义得到的多数是定义,数学表达,图像意义,或者干脆给个例题:一个系统,其单位冲激响应为h(t),当输入信号为f(t)时,该系统的输出为y(t)。y(t)是f(t)和h(t)的卷积。

    这些都不是其物理意义,最好给一个物理过程对应卷积的计算过程。