Learn R Programming

signal (version 0.5)

filter: Filter a signal.

Description

Generic filtering function. The default is to filter with an ARMA filter of given coefficients. The default filtering operation follows Matlab/Octave conventions.

Usage

## S3 method for class 'default':
filter(filt, a, x, \ldots)

## S3 method for class 'Arma':
filter(filt, x, \ldots)

## S3 method for class 'Ma':
filter(filt, x, \ldots)

## S3 method for class 'Zpg':
filter(filt, x, \ldots)

Arguments

filt
For the default case, the moving-average coefficients of an ARMA filter (normally called 'b'). Generically, filt specifies an arbitrary filter operation.
a
the autoregressive (recursive) coefficients of an ARMA filter.
x
the input signal to be filtered.
...
additional arguments (ignored).

Value

  • The filtered signal, normally of the same length of the input signal x.

Details

The default filter is an ARMA filter defined as: $$a_1y_n + a_2y_{n-1} + \dots + a_ny_1 = b_1x_n + b_2x_{m-1} + \dots + b_mx_1$$ The default filter calls stats:::filter, so it returns a time-series object. Since filter is generic, it can be extended to call other filter types.

References

http://en.wikipedia.org/wiki/Digital_filter Octave Forge http://octave.sf.net

See Also

filter in the stats package, Arma, fftfilt, filtfilt, and runmed.

Examples

Run this code
bf = butter(3, 0.1)                          # 10 Hz low-pass filter
t = seq(0, 1, len=100)                       # 1 second sample
x = sin(2*pi*t*2.3) + 0.25*rnorm(length(t))  # 2.3 Hz sinusoid+noise
z = filter(bf, x) # apply filter
plot(t, x, type = "l")
lines(t, z, col="red")

Run the code above in your browser using DataLab