我正在用 C++ 编写我的 WAVE 解码器/编码器。我已经设法在不同的样本大小(8、16 和 32)之间正确转换,但我需要一些关于通道和频率的帮助。
渠道:
如果我想从立体声转换为单声道:
- 我只从一个通道(哪个通道?1 还是 2?)获取数据?
- 还是我从通道 1 和 2 中取平均值作为单声道。
如果我想从单声道转换为立体声:(我知道这不是很科学)
- 我可以简单地将来自单个通道的样本添加到两个立体声通道中吗?
- 有没有更科学的方法来做到这一点(例如:插值)?
采样率:
如何更改采样率(重新采样),例如:从 44100 Hz 到 22050 Hz:
- 我是否只需为新的(较低频率)值取 2 个连续样本的平均值?
- 还有更多的科学算法吗?