y=conv(u,v);
傳回向量 u 和 v 的線性卷積。
y ( n ) = u ( n ) ∗ v ( n ) = ∑ k = − ∞ ∞ u ( k ) v ( n − k ) y(n)=u(n)*v(n)=\sum_{k=-∞}^{∞}u(k)v(n-k) y(n)=u(n)∗v(n)=k=−∞∑∞u(k)v(n−k)
若 u 的長度為N,v的長度為M,則 u 和 v 卷積的結果的長度為 L=N+M-1。
y=conv(u,v,shape);
傳回 shape 指定的 u 和 v 卷積結果的一部分。
shape的選擇 | 說明 |
---|---|
‘full’ | 全卷積(預設值。 |
‘same’ | 與 u 大小相同的卷積的中心部分。 |
‘valid’ | 僅計算沒有補零邊緣的卷積部分。此時,length(y) 是 max(length(u)-length(v)+1,0)。 |
x1=[1,1,3,4,2];
x2=[1,3,2,1];
y1=conv(x1,x2); % 計算x1和x2的卷積,傳回全部結果
y2=conv(x1,x2,'same'); % 計算x1和x2的卷積,傳回長度為5的卷積的中心部分
y3=conv(x1,x2,'valid'); % 僅計算沒有補零邊緣的卷積部分:也就是先将x2反褶,然後僅計算x1全部覆寫x2的那部分