所以我试图从 .wav 文件中提取不同样本的幅度,以便能够根据时间重建波形。在研究 .wav 文件的格式时,我发现了一些非常有用的信息。但是,当涉及到原始数据部分时,我感到很困惑。我发现的文章说,“在 16 位 PCM 的情况下,16 位样本存储为 2 的补码无符号整数,范围从 0 到 65535”。我很困惑,因为如果文件没有符号,我不知道文件如何区分正幅度和负幅度。例如,如果一个幅度为 5,表示为二进制的 00000000 00000101,则使用 2 的补码 -5 应表示为 11111111 11111011,即 65531 的十进制整数。这让我认为 -5 的幅度被认为比 +5 幅度大得多。显然这不是它的工作方式,所以我做错了什么?此外,当我将 .wav 文件保存到二进制数组并输出值时,我得到负数!如果文章说只应该存储 0 到 65535 之间的值,那么这些负数是从哪里来的。只是很困惑,真的需要把事情弄清楚。我所指的文章的链接附在下面。作者所说的引文位于页面的最底部。谢谢。
http://www.ievs.ch/projects/var/upload/Documentation%20Microsoft%20Wave%20File%20Format.pdf