downsample

Downsample a signal by an integer factor.

📝 Syntax

  • Y = downsample(X, n)

  • Y = downsample(X, n, phase)

  • Y = downsample(X, n, phase, dim)

📥 Input argument

  • X - input sequence. Vector or matrix. If X is a matrix, columns are processed independently by default.

  • n - positive integer downsampling factor (n > 0).

  • phase - optional integer in the range 0..n-1 (default 0). The output starts at X(phase+1) and then takes every n-th sample.

  • dim - optional dimension along which to downsample. If omitted, downsampling is applied to columns for 2-D inputs.

📤 Output argument

  • Y - downsampled result: elements of X taken every n samples starting at index (phase + 1) along the specified dimension.

📄 Description

The downsample function returns every n-th sample of the input sequence X, beginning at sample index (phase + 1). For example, downsample(X, 2) returns the odd-indexed samples of X (1,3,5,...). If X is a matrix, the operation is applied column-wise by default unless a dimension is provided.

No anti-aliasing filtering is performed; if you need to reduce high-frequency content before decimation, consider using decimate or applying a low-pass filter first.

💡 Example


% Downsample a vector by 2
X = 1:10;
Y = downsample(X, 2);
% Y is [1 3 5 7 9]

% Downsample with phase = 1 (start at second element)
Y2 = downsample(X, 3, 1);
% Y2 is [2 5 8]

% Downsample columns of a matrix by 2
A = reshape(1:12, 4, 3);
B = downsample(A, 2);

🔗 See also

interp1.

🕔 History

Version
📄 Description

1.15.0

initial version

Last updated

Was this helpful?