Анализ аудио спектра с использованием алгоритма FFT на Java - PullRequest
4 голосов
/ 08 июля 2011

Я хочу проанализировать спектр аудиофайлов в Java (ME). Я хочу нарисовать спектр, как это делают некоторые медиаплееры. Но я не понимаю некоторые моменты:

  1. Вход для алгоритма FFT, который я должен получить из аудиофайла. Я не знаю, как это называется, что это и что важнее, я не знаю, как это получить.
  2. Вывод: если вход является массивом (диапазон?), Я получаю другой массив, и у него есть диапазон: 0-1, верно (или нет)? Так что мне с этим делать?

1 Ответ

14 голосов
/ 09 июля 2011

Вам нужно несколько дополнительных шагов в дополнение к БПФ. Об этом уже много раз говорилось в предыдущих подобных вопросах на SO, и вы можете найти дополнительный материал, выполнив поиск по «dsp», «fft», «spectrum», «спектрограмма» и т. Д., Но по сути вам нужно сделать следующее :

  • применить оконную функцию к входным данным (например, Hann (ing) )
  • применить БПФ к оконным входным данным (для комплексного БПФ мнимые входные данные должны быть равны нулю)
  • рассчитать квадратную величину первых N / 2 выходных лотков FFT (re * re + im * im)
  • преобразование квадрата в шкалу дБ (10 * log10(squared_magnitude))
...