【发布时间】:2012-08-18 20:28:04
【问题描述】:
我试图将 2 个 16 位线性 PCM 音频流混合在一起,但我似乎无法克服噪音问题。我认为它们在将样本混合在一起时来自溢出。
我有以下功能...
short int mix_sample(short int sample1, short int sample2)
{
return #mixing_algorithm#;
}
...这是我尝试过的#mixing_algorithm#
sample1/2 + sample2/2
2*(sample1 + sample2) - 2*(sample1*sample2) - 65535
(sample1 + sample2) - sample1*sample2
(sample1 + sample2) - sample1*sample2 - 65535
(sample1 + sample2) - ((sample1*sample2) >> 0x10) // same as divide by 65535
其中一些产生了比其他更好的结果,但即使是最好的结果也包含相当多的噪音。
有什么办法解决吗?
【问题讨论】:
-
你能写出完整的算法吗,我看不到任何作业!!
-
当你将sample1和sample2除以2时,你得到的误差范围是1。
标签: c audio signal-processing pcm mixing