| Signal Processing Toolbox | ![]() |
Syntax
Description
A convolution matrix is a matrix, formed from a vector, whose inner product with another vector is the convolution of the two vectors.
A where = convmtx(c,n)
c is a length m column vector returns a matrix A of size (m+n-1)-by-n. The product of A and another column vector x of length n is the convolution of c with x.
A where = convmtx(r,n)
r is a length m row vector returns a matrix A of size n-by-(m+n-1). The product of A and another row vector x of length n is the convolution of r with x.
Examples
Generate a simple convolution matrix:
h = [1 2 3 2 1];
convmtx(h,7)
ans =
1 2 3 2 1 0 0 0 0 0 0
0 1 2 3 2 1 0 0 0 0 0
0 0 1 2 3 2 1 0 0 0 0
0 0 0 1 2 3 2 1 0 0 0
0 0 0 0 1 2 3 2 1 0 0
0 0 0 0 0 1 2 3 2 1 0
0 0 0 0 0 0 1 2 3 2 1
Note that convmtx handles edge conditions by zero padding.
In practice, it is more efficient to compute convolution using
than by using a convolution matrix.
Algorithm
convmtx uses the function toeplitz to generate the convolution matrix.
See Also
| conv2 | corrcoef | ![]() |