Итак, я пытаюсь извлечь амплитуды различных выборок из файла .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