| Signal Processing Toolbox™ | ![]() |
A = convmtx(c,n)
A = convmtx(r,n)
A convolution matrix is a matrix, formed from a vector, whose inner product with another vector is the convolution of the two vectors.
A = convmtx(c,n) where 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 = convmtx(r,n) where 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.
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
y = conv(c,x)
than by using a convolution matrix.
n = length(x); y = convmtx(c,n)*x
convmtx uses the function toeplitz to generate the convolution matrix.
![]() | conv2 | corrcoef | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |