以所需采样率对非均匀采样信号进行重采样
resample 函数允许您将非均匀采样信号转换为使用新的均匀采样率。
创建一个以大约 48 kHz 采样率不规则采样的 500 Hz 正弦波。我们通过向均匀向量添加随机值来模拟不规则性。
rng default
nominalFs = 48000;
f = 500;
Tx = 0:1/nominalFs:0.01;
irregTx = sort(Tx + 1e-4*rand(size(Tx)));
x = sin(2*pi*f*irregTx);
plot(irregTx,x,'.')
要对非均匀采样信号进行重采样,可以调用带时间向量输入的 resample。
下一个示例将我们的原始信号转换为均匀的 44.1 kHz 采样率。
desiredFs = 44100;
[y, Ty] = resample(x,irregTx,desiredFs);
plot(irregTx,x,'.-', Ty,y,'o-')
legend('Original','Resampled')
ylim([-1.2 1.2])
您可以看到,经过重采样的信号与原始信号具有相同的形状和大小。
选择插值方法
resample 中的转换算法在输入采样尽可能接近规则间距时效果最佳,因此观察采样数据中缺失一部分输入采样时可能发生的情况很有意义。
下一个示例使输入正弦波的第二个波峰出现陷波,并对其应用重采样。
irregTx(105:130) = [];
x = sin(2*pi*f*irregTx);
[y, Ty] = resample(x,irregTx,desiredFs);
plot(irregTx,x,'. ')
hold on
plot(Ty,y,'.-')
hold off
legend('Original','Resampled')
ylim([-1.2 1.2])
缺失段通