主要内容

downsample

R2026b

按整数倍数降低采样率

描述

y = downsample(x,n) 用于降低 x 的采样率,方法是首先保留第一个采样,然后再保留第一个采样后的每第 n 个采样。如果 x 是矩阵,该函数将每列视为一个单独序列。

示例

y = downsample(x,n,phase) 用于指定对下采样序列偏移多少个采样。

示例

示例

全部折叠

将序列的采样率降低 3 倍。

x = [1 2 3 4 5 6 7 8 9 10];
y = downsample(x,3)
y = 1×4

     1     4     7    10

将序列的采样率降低 3 倍,并增加相位偏移量 2。

y = downsample(x,3,2)
y = 1×3

     3     6     9

将矩阵的采样率降低 3 倍。

x = [1  2  3;
     4  5  6;
     7  8  9;
    10 11 12];
y = downsample(x,3)
y = 2×3

     1     2     3
    10    11    12

自 R2026b 起

生成 100 秒的正弦波形,基频为 0.01 Hz。

t = (1:100)';
x = sin(2*pi*0.01*t);

使用下采样因子 5 对信号进行下采样。比较原始信号和下采样后的信号。

out = downsample([t x],5);
plot(t,x,".",out(:,1),out(:,2),"*")
legend(["Original" "Downsampled"])

Figure contains an axes object. The axes object contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent Original, Downsampled.

使用下采样因子 5 和相位偏移 3 对信号进行下采样。比较原始信号和下采样后的信号。由于指定的相位偏移,下采样信号的第一个采样从原始信号上的第四个采样开始。

out3 = downsample([t x],5,3);
plot(t,x,".",out3(:,1),out3(:,2),"*")
legend(["Original" "Downsampled"])

Figure contains an axes object. The axes object contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent Original, Downsampled.

输入参数

全部折叠

输入数组,指定为向量或矩阵。如果 x 是矩阵,该函数将列视为独立通道。

提示

为避免下采样输出中出现混叠,请在将 x 传递给函数之前,对其应用归一化截止频率为 pi/n 弧度/采样点的低通滤波器。或者,使用 decimate 函数。

示例: cos(pi/4*(0:159)) + randn(1,160) 用于指定嵌入高斯白噪声中的正弦波。

示例: cos(pi./[4;2]*(0:159))' + randn(160,2) 用于指定双通道含噪正弦波。

下采样因子,指定为正整数。

数据类型: single | double

偏移量,指定为从 0 到 n - 1 的正整数。

数据类型: single | double

输出参量

全部折叠

下采样数组,以向量或矩阵形式返回。

扩展功能

全部展开

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

版本历史记录

在 R2006a 之前推出

全部展开