decimate function

Decrease sample rate

Decrease sample rate

Downsample a signal by an integer factor.

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

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.
  • 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.
  • 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".

Returns

downsampled signal, returned as a vector or matrix.

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")

See Also

cheby1, fir1

Author(s)

Paul Kienzle, pkienzle@users.sf.net .

Conversion to R by Geert van Boxtel, G.J.M.vanBoxtel@gmail.com .

  • Maintainer: Geert van Boxtel
  • License: GPL-3
  • Last published: 2024-09-11