decimate | R Documentation |

Downsample a signal by a factor, using an FIR or IIR filter.

```
decimate(x, q, n = if (ftype == "iir") 8 else 30, ftype = "iir")
```

`x` |
signal to be decimated. |

`q` |
integer factor to downsample by. |

`n` |
filter order used in the downsampling. |

`ftype` |
filter type, |

By default, an order 8 Chebyshev type I
filter is used or a 30-point FIR filter if `ftype`

is `'fir'`

. Note
that `q`

must be an integer for this rate change method.

Makes use of the `filtfilt`

function with all its limitations.

The decimated signal, an array of length `ceiling(length(x) / q)`

.

Original Octave version by Paul Kienzle pkienzle@user.sf.net. Conversion to R by Tom Short.

Octave Forge https://octave.sourceforge.io/

`filter`

, `resample`

, `interp`

```
# The signal to decimate starts away from zero, is slowly varying
# at the start and quickly varying at the end, decimate and plot.
# Since it starts away from zero, you will see the boundary
# effects of the antialiasing filter clearly. You will also see
# how it follows the curve nicely in the slowly varying early
# part of the signal, but averages the curve in the quickly
# varying late part of the signal.
t <- seq(0, 2, by = 0.01)
x <- chirp(t, 2, 0.5, 10, 'quadratic') + sin(2*pi*t*0.4)
y <- decimate(x, 4) # factor of 4 decimation
plot(t, x, type = "l")
lines(t[seq(1,length(t), by = 4)], y, col = "blue")
```

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.