Я не знаю вашу библиотеку, но, думаю, у них есть обширная документация по применению преобразований.
Что касается интерпретации, если вы используете сложное преобразование, вы можете интерпретировать действительную часть как энергию для соответствующей корзины частот, а мнимую - как фазу синусоиды.
Спектральная плотность мощности (PSD) может быть вычислена как
real(fftData)*conj(fftData)
, что равно
abs(fftData^2)
(умножьте действительные части на их комплексное сопряжение).
Одна вещь, которую вы, возможно, должны учитывать, это масштабирование выходного FFT. Некоторые алгоритмы масштабируют вывод пропорционально fftSize. Поэтому вам придется умножить вывод на 1 / fftSize.
И последнее, если вы не в курсе, вам нужно взять только половину выходного БПФ, поскольку спектр симметричен.
Средний бин (fftSize / 2) обычно является зеркальной основной частотой и равен fftData [0]. Это отмечает частоту Найквиста, которая является самой высокой частотой, которую вы можете анализировать с заданным значением fftSize.
Поэтому, если вы хотите отображать частоты до 22 кГц, убедитесь, что ваш fftSize составляет не менее 44 кГц.
Есть много подводных камней с БПФ, поэтому не забудьте прочитать некоторые части и понять, что вы там делаете. Сама математика не так важна, если вы просто хотите ее использовать, так что вы можете ее пропустить.
РЕДАКТИРОВАТЬ: Есть даже больше. Подумайте о том, чтобы взвесить ваши входные данные с помощью конусного окна (гауссово, хемминга, Хеннинга ...), чтобы избежать неприятных краевых эффектов, если вы не вводите весь wav-файл в качестве входных данных. В противном случае вы получите искусственные высокие частоты на выходе БПФ, которых просто нет в оригинале.