音频从 44100 上采样到 96000 Hz 和线性插值



我正在尝试将 44100 Hz 采样到 96000 Hz,我已经尝试过了。

sum1 = mPastWavBuffer[(int)mOffset];
sum2 = mPastWavBuffer[(int)mOffset+1];
double sum = (sum1 + (sum2-sum1)) * (mOffset-(int)mOffset);

mOffset 是一个双精度值,包含递增的步进因子,以在 44100 Hz 示例文件中移动并使其达到 96000 Hz。这个线性插值取自维基线性插值从两个已知点 但这并没有给我我想要的结果,这听起来很糟糕。

我在这里用错了还是如果这不是使用它的方式,我应该怎么做这个公式?

问候,摩根

这可能是因为线性插值并不是您真正想要的。 如果您只是将采样率加倍,它可能工作得很好,但是对于非整数因子,如果您获得良好的结果,我会感到惊讶。

我建议要么尝试高阶多项式插值,要么在频率空间中做一些事情(第一个比第二个更容易)。

编辑:从评论中我还注意到您的总和计算已关闭:

double sum = sum1 + (sum2-sum1) * (mOffset-(int)mOffset);

是你想要的。

相关内容

  • 没有找到相关文章

最新更新