| Products & Services | Industries | Academia | Support | User Community | Company |
| Download Product Updates | | | Get Pricing | | | Trial Software |
| Documentation → Signal Processing Toolbox |
| Contents | Index |
| Learn more about 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.
![]() | chirp | corrmtx | ![]() |

Includes the most popular MATLAB recorded presentations with Q&A sessions led by MATLAB experts.
| © 1984-2009- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |