@ thongcaoloi,
Простой ответ, касающийся размерности ваших входных данных: вам нужны одномерные данные.Теперь я объясню, что это значит.
Поскольку вы хотите анализировать аудиоданные, ваш вход в дискретное преобразование Фурье (DFT или FFT) представляет собой одномерную последовательность действительных чисел, которая представляет изменениенапряжение аудиосигнала с течением времени, и ваш аудиофайл является цифровым представлением об этом изменяющемся напряжении с течением времени.
Ваш аудиофайл был создан путем дискретизации напряжения непрерывного аудиосигнала с фиксированной частотой дискретизации (также известной как частота дискретизации), обычно 44,1 КГц для звука с качеством CD.
Но ваш файл данных мог быть выбран с гораздо меньшей частотой, поэтому попробуйте выяснить частоту выборки ваших данных, прежде чем делать БПФ для этих данных.
Итак, теперь у вас естьчтобы извлечь отдельные образцы из вашего аудио файла.Если ваш файл стереофонический, он будет иметь две отдельные последовательности сэмплов, одну для правого канала и одну для левого канала.Если файл монофонический, у него будет только одна последовательность семплов.
Если ваш файл стереофонический или любой другой многоканальный аудиоформат, например 5.1 или 7.1, вы можете использовать БПФ для каждого канала отдельно илиобъедините любое количество каналов вместе, используя сложение напряжения.Это зависит от вас, и зависит от того, что вы пытаетесь сделать с результатами FFT.
Вывод DFT или FFT представляет собой последовательность комплексных чисел.Каждое комплексное число представляет собой пару, состоящую из действительной части и мнимой части, обычно показанную в виде пары (re, im).
Если вы хотите построить график спектральной плотности мощности вашего аудиофайла, которыйэто то, что большинство людей хотят от БПФ, вы построите график 20 * log10 (sqrt (re ^ 2 + im ^ 2)), используя первые N / 2 комплексных чисел вывода FFT, где N - количество входных выборокв БПФ.
Вы можете попытаться создать свою собственную программу анализа спектра, но я предлагаю использовать что-то, что уже создано и протестировано.
Эти два анализатора спектра БПФ дают результаты мгновенно и имеютвстроенный синтез IFFT, означающий, что вы можете использовать обратное преобразование Фурье спектральных данных частотной области для восстановления исходного сигнала во временной области.
http://www.mathworks.com/help/techdoc/ref/fft.html
http://www.sooeet.com/math/fft.php
В этой теме и в целом по теме цифровой обработки сигналов есть еще много всего, но это краткое введение должно помочь вам начать работу.