Audio 正确解码/编码原始PCM数据 我在C++中编写我的波解码器/编码器。我已经成功地在不同的样本大小(8、16和32)之间进行了正确的转换,但是我需要一些通道和频率方面的帮助

Audio 正确解码/编码原始PCM数据 我在C++中编写我的波解码器/编码器。我已经成功地在不同的样本大小(8、16和32)之间进行了正确的转换,但是我需要一些通道和频率方面的帮助,audio,frequency,wave,resampling,Audio,Frequency,Wave,Resampling,频道: 如果我想从立体声转换为单声道: 我是否只从一个通道获取数据(哪一个?1还是2?) 或者我要从通道1和通道2取单通道的平均值 如果我想从单声道转换为立体声: (我知道这不是很科学) 我可以简单地将单个通道中的采样添加到两个立体声通道中吗 有没有更科学的方法(如插值法) 采样率: 如何更改采样率(重采样),例如:从44100 Hz更改为22050 Hz: 我是否只需为新(较低频率)值取2个连续样本的平均值 还有其他科学算法吗 立体声到单声道-取左右采样的平均值,即M=(L+R)/2-这适用

频道:

如果我想从立体声转换为单声道:

  • 我是否只从一个通道获取数据(哪一个?1还是2?)
  • 或者我要从通道1和通道2取单通道的平均值
  • 如果我想从单声道转换为立体声: (我知道这不是很科学)

  • 我可以简单地将单个通道中的采样添加到两个立体声通道中吗
  • 有没有更科学的方法(如插值法)
  • 采样率:

    如何更改采样率(重采样),例如:从44100 Hz更改为22050 Hz:

  • 我是否只需为新(较低频率)值取2个连续样本的平均值
  • 还有其他科学算法吗
    • 立体声到单声道-取左右采样的平均值,即
      M=(L+R)/2
      -这适用于绝大多数立体声内容,但请注意,在一些罕见的情况下,可以进行左/右取消

    • 单声道到立体声-将单声道采样置于左声道和右声道,即
      L=R=M
      -这将提供一个声音图像,当作为立体声播放时,该声音图像居中

    • 重采样-对于上面示例中的简单整数比率下采样,过程如下:

      • 低通滤波器,以适应新的奈奎斯特频率,例如,22.05 kHz采样率的10 kHz LPF
      • 按所需比率抽取(即,为您的2x下采样示例丢弃备用样本)

    请注意,有第三方库,例如在一般情况下可以为您处理重采样,因此如果您需要支持多个比率,或者您有一些棘手的非整数比率,那么这可能是一种更好的方法

    我想你的问题更适合我,你的意思是44100 Hz到22050 Hz?为了将来的参考,你可以点击上面的
    |编辑|
    链接,修复问题中的打字错误和其他错误