按有理因子进行速率转换
resample 函数执行从一个采样率到另一个采样率的速率转换。resample 允许您按积分因子 p 进行上采样,然后按另一个积分因子 q 进行抽取。这样,您能够以原始采样率的有理倍数 (p/q) 进行重采样。
要对均匀采样使用 resample 函数,您必须提供此有理因子的分子和分母。要确定所需的整数,可以使用 rat 函数。
以下是从 48 kHz 转换为 44.1 kHz 时如何调用 rat 的示例:
originalFs = 48000;
desiredFs = 44100;
[p,q] = rat(desiredFs / originalFs)
p = 147
q = 160
rat 表示可以按 147 进行上采样,按 160 进行下采样。要验证这是否会产生所需的速率,请将 p/q 乘以原始采样率:
originalFs * p / q
ans = 44100
一旦您确定了新采样率和原始采样率之间的比率,您就可以调用 resample。
例如,使用 48 kHz 的原始采样率创建一段 10 毫秒长的 500 Hz 正弦波,并将其转换为 44.1 kHz:
tEnd = 0.01;
Tx = 0:1/originalFs:tEnd;
f = 500;
x = sin(2*pi*f*Tx);
y = resample(x,p,q);
Ty = (0:numel(y)-1)/desiredFs;
plot(Tx,x,'. ')