

介紹一維卷積的兩種計算方法:
1.h(n)序列倒置->位移->相乘->取和
舉例:x(n) = [4,3,2,1],h(n) = [3,2,1]。
h(n)倒置為h'(n)[1,2,3],逐漸從前向x(n)位移,直到h'(n)最后一個元素3與x(n)第一個元素4接觸時,開始相乘,也就是將兩個序列相交的元素相乘並求和。
因此x(n)*h(n) = [4×3,2×4+3×3,1×4+2×3+3×2,1×3+2×2+3×1,1×2+2×1,1×1] = [12,17,16,10,4,1]
2.對位相乘求和。
步驟:①兩序列右對齊;②逐個元素對應相乘但是不進位;③同列乘值相加
舉例:

矩陣卷積:
同一維數據卷積一樣,它的實質在於將卷積模板圖像翻轉(旋轉180°),這里等同於一維信號的翻轉,然后將卷積模板依次從上到下、從左到右滑動,計算在模板與原始圖像交集元素的乘積和,該和就作為卷積以后的數值。
假設矩陣A(4*3)、B(2*3)如下,計算B * A:
首先,B需要旋轉180,結果為
然后不斷平移、相乘、求和。

依次計算直至結束,結果數據為:

卷積結果shape的取值有三種,令mA表示矩陣A的行數,nA代表矩陣A的列數。full代表返回卷積以后的全部數據,即為(mA+mB-1,nA+nB-1);same代表返回卷積以后的原圖size (mA,nA)的部分數據;valid返回size為(mA-mB+1,nA-nB+1)的數據,指的是模板元素全部參加運算的結果數據,即源圖像和模板的交集為模板。
