轉自 http://blog.sina.com.cn/s/blog_7445c2940102wmrp.html
本篇博文本來是想在下一篇博文中順帶提一句的,結果越寫越多,那么索性就單獨寫一篇吧。在此要特別感謝實驗室董師兄,正因為他的耐心講解,才讓我理解了卷積運算的統一性(果然學數學的都不是蓋的)。
------------------------------------我叫分割線----------------------------------------
所謂卷積,其實是一種數學運算。但是在我們的學習生涯中,往往它都是披上了一層外衣,使得我們經常知其然不知其所以然。比如在信號系統中,他是以一維卷積的形式出現描述系統脈沖響應。又比如在圖像處理中,他是以二維卷積的形式出現,可以對圖像進行模糊處理。乍一看,兩個形式風馬牛不相及,但其實他們的本質都是統一的。可見,我們看待事物不僅要看他們的表象,還要從表象中分辨出他們的本質。下面進入正題。
1.一維卷積
在這個部分,我們主要從數學的角度看一看卷積,也就是看一下卷積是怎么運算的。這里要說明一下,卷積分為連續卷積和離散卷積。在此為了方便大家理解,在此先以離散卷積舉例,本文也就不再專門討論連續卷積(因為連續卷積和離散卷積的區別也就是連續和離散的區別,找時間我會總結一下連續和離散的異同)。說到數學角度,那首先就要給出卷積運算的公式定義:
這個公式中有三個序列(y,h,u),其中h長度為lh=3,u的長度為lu=6。那么就有y的長度ly=lh+lu-1=8(至於為什么后面會說)。如何計算這個卷積呢?我們先將一個序列從小到大排列(U0,U1,U2,U3,U4,U5)在一維直線上,因為公式中U的序號i是從小到大。而將H序列從大到小排列(H2,H1,H0),因為H的序號是-i。再將兩個序列的開頭對齊,如下圖:
排列好之后,我們就可以開始進行卷積運算。當位移K=0時,下面H序列不移動,上下兩個序列中都存在的項相乘后相加,即y(0)=H0*U0。當位移K=1時,下面H序列移動1位,之后對應項相乘后相加得到y(1)=H1*U0+H0*U1。依此移動,直到取到K的最大值停止。可見,一維卷積就是卷積核H,在被卷積信號U的一維直線上的移動之后的對應項相乘后求和運算。那么K的取值范圍時多少呢?從圖中我們可以看出當K=8時,H序列和U序列對應項都不存在了,那么K=8也就沒有意義。因此的最大長度要使得兩個序列至少有1個項重合,即兩個序列長度求和再減去重合的一項的長度。
2.多維卷積
我們還是先從簡單的入手,以二維卷積為例。二維卷積的公式如下:
此時,三個序列(y,h,u)都是雙下標的序列。在一維卷積中,我們將U展開在一維直線上。那么對於二維卷積運算,我們就將U展開在二維平面中,左下角為U(0,0),右上角為U(5,5)。同樣的,將H也展開在二維平面中,同時要與U的方向相反,左下角為H(2,2),右上角為H(0,0)。如下圖所示:
同樣,二維卷積中p,q的長度也是由H和U序列長度所決定的,即Lp=Lux+Lhx-1,Lq=Luy+Lhy-1。二維卷積運算就是卷積核H,在被卷積信號U的平面上的對應項相乘后求和運算。那么對於更高維的卷積運算,同樣可以按照該方法理解。相信大家讀到這里,可以理解不同維卷積的統一性。
特別注意:
1.卷積后的序號k,q,p其實表示的是兩個卷積序列的相對位置關系,也就是與被卷積信號的坐標不相同。
2.卷積的兩個信號的坐標既可以是時間坐標也可以是空間的坐標,甚至是時空坐標。只不過,如果是時間坐標,注意坐標不可為負。


