为什么.WAV文件的声音与其补码完全相同?

时间:2016-05-13 09:57:45

标签: audio wav

所以在这里,我一直在玩一些C#编码试图看看当我反转每个样本的越来越多的位时,.WAV音频文件听起来有多大,但当我到达时我翻转整个文件的位,期望更多的噪音,甚至原始音频将不再清晰听到的步骤。但是当我尝试播放原始音频的补码(所有位都被反转)时,我很惊讶前面步骤中的噪声(反转的位数减少而不是所有的位置)甚至消失了,文件再次像原始音频一样响起。 / p>

我想知道背后的原因是什么。

3 个答案:

答案 0 :(得分:2)

其实的原因实际上与C#无关,而是人类对声音的感知

  

人耳仅响应其接收到的声音的强度I(更具体地说,响应于不同频率上的强度分布),这或多或少类似于幅度的平方,

I~A^2

  

更改波形符号会更改A的符号,这对I无效。

这是a post on physics.stackexchange

的直接引用

答案 1 :(得分:1)

我的猜测是WAV文件值是使用有符号整数存储的。

查看此页面:https://en.wikipedia.org/wiki/Signed_number_representations

如果反转有符号整数的所有位,则具有相反的值。

所以你刚刚创建了一个对称的WaveForm,它与原始声音相同。

答案 2 :(得分:0)

您需要从第一原则开始 - 考虑44KHz的采样频率和一位采样分辨率;纯22KHz声音的部分流将读作:

010101010101

如果反转所有位,则变为:

101010101010

该流仍然是纯22KHz音调(虽然具有相位差)

在现实世界中,声波的形状与正弦波的形状更接近,但原理仍然存在 - 与录制的声音相反,它与原始声音的相似性更低。如果你在不同的立体声声道中对着原声进行倒置会更加明显(在2nd Hand on their www.pitchshifter.com album上有一首Pitchshifter歌曲,并在同一时间解释它(arond 2:20-> 2:30)如果你喜欢听)