Как извлечь частоту из выборочных данных WAV? - PullRequest
6 голосов
/ 16 ноября 2011

Я разрабатываю приложение на c для чтения простых файлов PCM WAV.У меня вопрос: как мне интерпретировать выборки из блока данных, чтобы я мог извлечь частоту выборки?

Учитывая пример WAV, как исходные данные могут представлять частоты.Например, этот фрагмент данных, 24 17 1e f3, для стерео, 16 бит, выборка левого канала, 0x1724 = 5924d, означает 5924 Гц?Как это может быть, для образцов, которые подписаны или частоты, которые люди не могут услышать?

Ответы [ 2 ]

11 голосов
/ 17 ноября 2011

Ваше предположение неверно.Данные сэмпла - это просто цифровое представление фактической звуковой волны.Числа представляют амплитуду волны, смещение массива представляет время.

Я бы посоветовал прочитать о Как представлено аудио , в частности PCM .

КЧтобы преобразовать эти данные (амплитуду-время) в частотные данные, вам необходимо понять основные понятия Преобразование Фурье

Я действительно предлагаю потратить время на их чтение, прежде чем пытаться сделатьлюбая обработка звука.

0 голосов
/ 31 октября 2017

Вы можете извлечь частоту дискретизации в заголовке WAV, но если вам нужны фактические данные частоты записанного звука, то есть, сколько энергии на частоте 200 Гц, сколько на частоте 2 кГц, сколько на частоте 8 кГц и т. Д. Вам нужносделать БПФ, или запустить его через спектрограмму.

...