用于上采样的PCM算法

gos*_*vka 2 java audio interpolation pcm sampling

我有8k16bit pcm音频,我想将其上采样到16k16bit.我必须手动完成此操作.

有人能告诉我线性插值的算法吗?我应该在每两个字节之间进行插值吗?

此外,当我进行上采样时,我必须对wav标题进行更改 - 我应该更改什么?

Mar*_*ans 6

正如其他人所提到的,线性插值不能提供最佳音质,但它简单而便宜.

对于您创建的每个新样本,只需将其与下一个样本进行平均,例如

short[] source = ...;
short[] result = new short[source.length * 2];
for(int i = 0; i < source.length; ++i) {
  result[i * 2] = source[i];
  result[i * 2 + 1] = (source[i] + source[i + 1]) / 2;
}
Run Code Online (Sandbox Code Playgroud)

您一定要搜索一个可以帮助您处理WAV文件的库.即使它是一种简单的格式,如果有可用的代码可以满足您的需要,您也不必自己动手.顺便问一下,你为什么要这样做呢?也许你可以使用sox或类似的工具来做到这一点.