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的那部分