根据您要实现的目标,downsample可能就足够了。
示例代码:
pkg load signal % To download the signal package
x = cos(1:1000); % Create a signal
y = downsample(x, 2);
Run Code Online (Sandbox Code Playgroud)
但是,它不会应用低通滤波器,因此会在您的信号中引入不需要的混叠效应。就像命令help downsample说的那样:
对于大多数信号,您将希望使用
decimate它,因为它会预过滤信号的高频分量并避免混叠效应。
现在,如果您想下采样并应用低通滤波器,您会想要使用,decimate但它仅适用于具有整数因子的下采样,例如从 96kHz 到 48kHz,您将抽取因子 2。从help decimate
请注意,对于此速率更改方法,Q 必须是整数。
示例代码:
pkg load signal % To download the signal package
x = cos(1:1000); % Create a signal
y = decimate(x, 2);
Run Code Online (Sandbox Code Playgroud)
最后,如果您想通过一个有理数进行下采样,例如通过 2/3 的因子,从 96kHz 到 64kHz,您将需要resample像其他用户建议的那样。
pkg load signal % To download the signal package
x = cos(1:1000); % Create a signal
y = resample(x, 2, 3);
Run Code Online (Sandbox Code Playgroud)
请注意,例如,您仍然可以使用resample整数因子进行下采样,y = resample(x, 1, 2);但它会减慢decimate.
| 归档时间: |
|
| 查看次数: |
1031 次 |
| 最近记录: |