MATLAB卷積運算(conv、conv2、convn)

conv(向量卷積運算)

所謂兩個向量卷積,說白了就是多項式乘法。
比如:p=[1 2 3],q=[1 1]是兩個向量,p和q的卷積如下:
把p的元素作爲一個多項式的係數,多項式按升冪(或降冪)排列,比如就按升冪吧,寫出對應的多項式:1+2x+3x^2;同樣的,把q的元素也作爲多項式的係數按升冪排列,寫出對應的多項式:1+x。

卷積就是“兩個多項式相乘取係數”。
(1+2x+3x^2)×(1+x)=1+3x+5x^2+3x^3
所以p和q卷積的結果就是[1 3 5 3]。

記住,當確定是用升冪或是降冪排列後,下面也都要按這個方式排列,否則結果是不對的。
你也可以用matlab試試
p=[1 2 3]
q=[1 1]
conv(p,q)
看看和計算的結果是否相同。


conv2(二維矩陣卷積運算)

a=[1 1 1;1 1 1;1 1 1];
b=[1 1 1;1 1 1;1 1 1];
>> conv2(a,b)

ans =

     1     2     3     2     1
     2     4     6     4     2
     3     6     9     6     3
     2     4     6     4     2
     1     2     3     2     1

>> conv2(a,b,'valid')

ans =

     9

>> conv2(a,b,'same')

ans =

     4     6     4
     6     9     6
     4    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章