Learn R Programming

gsignal (version 0.3-7)

convmtx: Convolution matrix

Description

Returns the convolution matrix for a filter kernel.

Usage

convmtx(h, n)

Value

Convolution matrix of input h for a vector of length n. If h is a vector of length m, then the convolution matrix has

m + n - 1 rows and n columns.

Arguments

h

Input, coerced to a vector, representing the filter kernel

n

Length of vector(s) that h is to be convolved with.

Author

David Bateman adb014@gmail.com.
Conversion to R by Geert van Boxtel G.J.M.vanBoxtel@gmail.com.

Details

Computing a convolution using conv when the signals are vectors is generally more efficient than using convmtx. For multichannel signals, however, when a large number of vectors are to be convolved with the same filter kernel, convmtx might be more efficient.

The code cm <- convmtx(h, n) computes the convolution matrix of the filter kernel h with a vector of length n. Then, cm x gives the convolution of h and x.

See Also

conv

Examples

Run this code
N <- 1000
a <- runif(N)
b <- runif(N)
cm <- convmtx(b, N)
d <- cm %*% a

cref = conv(a, b)
all.equal(max(d - cref), 0)

Run the code above in your browser using DataLab