Use the Fast Fourier Transform to perform convolutions between a sequence and each column of a matrix.
convolve2D(x, y, conj = TRUE, type = c("circular", "open"))
\(M{\times}N\) matrix.
numeric sequence of length \(N\).
logical; if TRUE
, take the complex conjugate
before back-transforming (default, and used for usual convolution).
character; one of circular
, open
(beginning of word is ok). For circular
, the two sequences
are treated as circular, i.e., periodic.
For open
and filter
, the sequences are padded with
zeros (from left and right) first; filter
returns the middle
sub-vector of open
, namely, the result of running a
weighted mean of x
with weights y
.
This is a corrupted version of convolve
made by replacing
fft
with mvfft
in a few places. It would be nice to
submit this to the R Developers for inclusion.