Convolve two time series

Description

Convolve two time series, using a backward-looking method. This function provides a straightforward convolution, which may be useful to those who prefer not to use convolve and filter in the stats package.

Usage

1
oceConvolve(x, f, end = 2)

Arguments

x

a numerical vector of observations.

f

a numerical vector of filter coefficients.

end

a flag that controls how to handle the points of the x series that have indices less than the length of f. If end=0, the values are set to 0. If end=1, the original x values are used there. If end=2, that fraction of the f values that overlap with x are used.

Value

A vector of the convolution output.

Author(s)

Dan Kelley

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
library(oce)
t <- 0:1027
n <- length(t)
signal <- ifelse(sin(t * 2 * pi / 128) > 0, 1, 0)
tau <- 10
filter <- exp(-seq(5*tau, 0) / tau)
filter <- filter / sum(filter)
observation <- oce.convolve(signal, filter)
plot(t, signal, type='l')
lines(t, observation, lty='dotted')

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.