decimate: Decrease sample rate

View source: R/decimate.R

decimateR Documentation

Decrease sample rate

Description

Downsample a signal by an integer factor.

Usage

decimate(x, q, n = ifelse(ftype == "iir", 8, 30), ftype = c("iir", "fir"))

Arguments

x

input data, specified as a numeric vector or matrix. In case of a vector it represents a single signal; in case of a matrix each column is a signal.

q

decimation factor, specified as a positive integer.

n

Order of the filter used prior to the downsampling, specified as a positive integer. Default: 8 if ftype equals "iir"; 30 of ftype equals "fir".

ftype

filter type; either "fir", specifying a FIR filter of length n designed with the function fir1, or "iir" (default), specifying an IIR Chebyshev filter of order 8 using the function cheby1.

Value

downsampled signal, returned as a vector or matrix.

Author(s)

Paul Kienzle, pkienzle@users.sf.net.
Conversion to R by Geert van Boxtel, G.J.M.vanBoxtel@gmail.com.

See Also

cheby1, fir1

Examples

t <- seq(0, 2, 0.01)
x <- chirp(t, 2, .5, 10, 'quadratic') + sin(2 * pi * t * 0.4)
w <- 1:121
plot(t[w] * 1000, x[w], type = "h", col = "green")
points(t[w] * 1000, x[w], col = "green")
y = decimate(x, 4)
lines(t[seq(1, 121, 4)] * 1000, y[1:31], type = "h", col = "red")
points(t[seq(1, 121, 4)] * 1000, y[1:31], col = "red")


gjmvanboxtel/gsignal documentation built on Nov. 22, 2023, 8:19 p.m.