Как я могу получить частоту во временной области из файла WAV?

0

Другими словами, я пытаюсь воспроизвести WAV файл, и для этого мне нужно знать частоту и сколько она длится; API, который я использую, имеет метод, который нужен как параметр вектор с двумя полями (частота и время)!

Я попытался использовать быстрое преобразование Фурье, но это дает мне частоту и величину!

магнитный
/\ | | | - Общение

Но мне нужно что-то вроде этого: freq/\ | | - | --→ время

Я хочу знать, можно ли получить эту информацию из wav файла!

  • 0
    Если только файл WAV не содержит единственную синусоидальную волну с постоянной частотой, то не нужно измерять только одну частоту - для речи, музыки и т. Д. Будет сложный ассортимент изменяющихся во времени компонентов. Чего вы на самом деле пытаетесь достичь ? Обнаружение шага?
  • 2
    Под «частотой» вы действительно подразумеваете частоту дискретизации? Все, что вы используете для открытия файла wav должно дать вам эту информацию.
Показать ещё 2 комментария
Теги:
audio
wav
fft
signal-processing

1 ответ

0

Цифровой аудиосигнал представляет собой серию пар (амплитуда, время). Или вы можете сказать, что это функция времени. Если вы берете последовательность аудиосигнала и выполняете преобразование Фурье (DFT/FFT) в этой последовательности, вы получите новую последовательность, которая содержит пары (амплитуда, частота). Или вы можете сказать, что функция частоты.

Эта последовательность описывает свойства сигнала в частотной области. Он не содержит никакой информации о времени.

Я думаю, что вы хотите, это функция, которая описывает изменение компонентов частоты аудиосигнала с течением времени. Это не может быть сделано простым БПФ.

Что вы можете сделать, так это:

  • Возьмите N выборок потока аудиоданных, образцы (0,..., N-1)
  • Выполнение FFT
  • Возьмем еще N выборок потока аудиоданных, (m,..., m + N-1) с m << N
  • Выполнение FFT
  • Возьмем еще N выборок потока аудиоданных, (2m,..., 2m + N-1)
  • Выполнение FFT
  • и так далее

Если ваше время выборки равно ts, вы получите новый анализ частоты после T = m * ts.

Возможно, это то, что вы хотите.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню