convmtx - Convolution matrix

Syntax

A = convmtx(c,n)
A = convmtx(r,n)

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 = 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.

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

y = conv(c,x)

than by using a convolution matrix.

n = length(x);
y = convmtx(c,n)*x

Algorithm

convmtx uses the function toeplitz to generate the convolution matrix.

See Also

conv, convn, conv2, dftmtx

  


 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS