A convolution matrix is a matrix whose multiplication by a vector computes a discrete convolution.
For a vector and an input vector
, where
and
are positive integers,
the full linear convolution is represented by an
matrix
with entries
|
(1)
|
where , ...,
and
, ...,
. Thus
,
with
outside the range
. The entries are constant
along each negative-sloping diagonal, so
has Toeplitz structure
(MathWorks).
For example, the convolution of and
is given by
|
(2)
|
The zero padding distinguishes full linear convolution from circular convolution, in which indices wrap around and the corresponding matrix is a circulant matrix.