异步重采样器应该可以解决问题。
基本上将连续时间窗 sinc 定位在所需的(均匀)输出时刻,通过输入时刻的邻域对其进行采样,选择 sinc 宽度(带宽的倒数)作为最大输入间样本间距的函数,或局部作为样本密度的函数。
除非样本密度变化很大或质量要求非常高,否则您可能会使用更简单的方法。对于某些应用,简单的线性插值可能就足够了。对于具有音调组件的高质量音频应用程序,这可能会导致严重的听觉伪影,但我很难想象采样时间显着变化的高质量音频应用程序?
编辑:一个简单的 MATLAB 代码片段可能会满足您的需要:
t1 = [0.000934,0.004197,0.005921,0.006978,0.007306,0.009449,0.012022,0.024245,0.030468,0.038149];
x1 = [0.446907,0.432984,0.410248,0.385579,0.363269,0.343606,0.328705,0.309281,0.285214,0.268380];
max_fs = 48e3;
fs = min(1/min(diff(t1)), max_fs);
[x2, t2] = resample(x1, t1, fs);
figure
plot(t1, x1, '*')
hold on
plot(t2, x2, '-')
hold off
请注意,我没有费心去深入研究文档来查看细节。我确认输入点和输出点之间存在一些形状相似性,并假设实现是明智的。