Skip to content
Related Articles

Related Articles

Improve Article

Down-sampling in MATLAB

  • Last Updated : 01 Oct, 2020

The two basic operations in a multi-rate system are decreasing/down-sampling (decimation) and increasing (interpolation) the sampling rate of a signal.

In down-sampling we start with a constant time signal x(t) and convert it into a succession of tests x[n], in decimation we start with a discrete-time signal x[n] and convert it into another discrete-time signal y[n], which comprises of sub-tests of x[n].

We will be using the decimate() and stem() function.
The decimate() function is used to decrease a sample rate by an integer factor.

Syntax: a = decimate(x, r)

  • x: input signal,
  • r: decimation factor

Return Value: Decimated Signal

The stem() function is used to plot a discrete sequence data.

Syntax: stem(y)

  • y: data sequence

Return Value: Plot of data sequence in discrete time

MATLAB code for down-sampling:

% Time vector
t = 0 : .00025 : 1;
% Original signal
x = sin(2 * pi * 50 * t) + sin(2 * pi * 100 * t);
% Reduces the sample rate of original signal by factor of 4
y = decimate(x, 4); 
subplot(2, 2, 1);
% Plot few samples of the Original signal
title('Original Signal');
subplot(2, 2, 2);
% Plots few samples of the Decimated signal
title('Decimated Signal');


My Personal Notes arrow_drop_up
Recommended Articles
Page :