一维向量和二维矩阵卷积的等价矩阵乘法实现

经过学习和探索,掌握了一维卷积和二维卷积的矩阵乘法实现。

对于一维向量的卷积,Matlab提供了convmtx计算向量对应的乘法矩阵。它是一个Toeplitz矩阵。

% By TomHeaven, hanlin_tan@nudt.edu.cn @ 2016.09.28
x = [1 2 3]';
y = [4 5 6]';
 
n = length(y);
H = convmtx(x,n);
z = H*y;
 
z_c = conv(x, y);
 
diff = norm(z - z_c)

二维卷积(图像与核卷积)的矩阵乘法形式,矩阵的构造方法可以通过简单的算理推演得到。它是一个Band(带宽)矩阵。

设二维图像矩阵为$X \in R^{m \times n}$,卷积核矩阵为$Y \in R^{p \times p}$。它们按行优先展开得到的向量分别为$x,y$。
继续阅读