TOPICS
Search

Convolution Matrix


A convolution matrix is a matrix whose multiplication by a vector computes a discrete convolution. For a vector h=(h_0,...,h_(m-1)) and an input vector x=(x_0,...,x_(n-1)), where m and n are positive integers, the full linear convolution is represented by an (m+n-1)×n matrix C with entries

 C_(ij)={h_(i-j)   if 0<=i-j<m; 0   otherwise,
(1)

where i=0, ..., m+n-2 and j=0, ..., n-1. Thus (Cx)_i=sum_(j=0)^(n-1)h_(i-j)x_j, with h_k=0 outside the range 0<=k<m. The entries are constant along each negative-sloping diagonal, so C has Toeplitz structure (MathWorks).

For example, the convolution of h=(a,b,c) and x=(u,v) is given by

 [a 0; b a; c b; 0 c][u; v]=[au; bu+av; cu+bv; cv].
(2)

The zero padding distinguishes full linear convolution from circular convolution, in which indices wrap around and the corresponding matrix is a circulant matrix.


See also

Circulant Matrix, Circular Convolution, Convolution, Toeplitz Matrix

Explore with Wolfram|Alpha

References

MathWorks. "convmtx: Convolution Matrix." MATLAB Documentation. https://www.mathworks.com/help/signal/ref/convmtx.html.

Cite this as:

Weisstein, Eric W. "Convolution Matrix." From MathWorld--A Wolfram Resource. https://mathworld.wolfram.com/ConvolutionMatrix.html

Subject classifications