Signal Toolkit - decimate


Function File: y = decimate (x, q)
Function File: y = decimate (x, q, n)
Function File: y = decimate (…, "fir")

Downsample the signal x by a reduction factor of q. A lowpass antialiasing filter is applied to the signal prior to reducing the input sequence. By default, an order n Chebyshev type I filter is used. If n is not specified, the default is 8.

If the optional argument "fir" is given, an order n FIR filter is used, with a default order of 30 if n is not given.

Note that q must be an integer for this rate change method.

Example:

 ## Generate a signal that 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.  Next you will 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 = 0:0.01:2;
 x = chirp (t, 2, .5, 10, "quadratic") + sin (2*pi*t*0.4);
 y = decimate (x, 4);
 stem (t(1:121) * 1000, x(1:121), "-g;Original;"); hold on; # original
 stem (t(1:4:121) * 1000, y(1:31), "-r;Decimated;"); hold off; # decimated