天天看點

MATLAB-conv函數

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的那部分
           
MATLAB-conv函數
MATLAB-conv函數
MATLAB-conv函數

繼續閱讀