@thongcaoloi,
Die einfache Antwort bezüglich der Dimensionalität Ihrer Eingabedaten lautet: Sie benötigen 1D-Daten. Jetzt werde ich erklären, was das bedeutet.
Da Sie Audiodaten analysieren wollen, ist Ihre Eingabe für die diskrete Fourier-Transformation (DFT oder FFT) eine eindimensionale Folge von reellen Zahlen, die die sich im Laufe der Zeit ändernde Spannung des Audiosignals darstellt, und Ihre Audiodatei ist eine digitale Darstellung dieser sich im Laufe der Zeit ändernden Spannung.
Ihre Audiodatei wurde durch Abtasten der Spannung eines kontinuierlichen Audiosignals mit einer festen Abtastrate (auch als Abtastfrequenz bezeichnet) erzeugt, in der Regel 44,1 KHz für Audio in CD-Qualität.
Ihre Datendatei könnte jedoch mit einer viel niedrigeren Frequenz abgetastet worden sein. Versuchen Sie daher, die Abtastfrequenz Ihrer Daten herauszufinden, bevor Sie eine FFT mit diesen Daten durchführen.
Nun müssen Sie die einzelnen Samples aus Ihrer Audiodatei extrahieren. Wenn es sich um eine Stereodatei handelt, enthält sie zwei separate Sample-Sequenzen, eine für den rechten und eine für den linken Kanal. Handelt es sich um eine Mono-Datei, enthält sie nur eine Sample-Sequenz.
Wenn Ihre Datei in Stereo oder einem anderen Mehrkanal-Audioformat wie 5.1 oder 7.1 vorliegt, können Sie jeden Kanal separat fFTen oder eine beliebige Anzahl von Kanälen durch Spannungsaddition kombinieren. Das bleibt Ihnen überlassen und hängt davon ab, was Sie mit Ihren FFT-Ergebnissen erreichen wollen.
Das Ergebnis der DFT oder FFT ist eine Folge von komplexen Zahlen. Jede komplexe Zahl ist ein Paar, das aus einem Realteil und einem Imaginärteil besteht und in der Regel als Paar (re,im) dargestellt wird.
Wenn Sie die Leistungsspektraldichte Ihrer Audiodatei grafisch darstellen wollen, was die meisten Leute von der FFT erwarten, werden Sie 20*log10( sqrt( re^2 + im^2 ) ) grafisch darstellen, wobei Sie die ersten N/2 komplexen Zahlen der FFT-Ausgabe verwenden, wobei N die Anzahl der Eingangsabtastwerte für die FFT ist.
Sie können versuchen, Ihr eigenes Spektrum-Analyseprogramm zu erstellen, aber ich empfehle, etwas zu verwenden, das bereits erstellt und getestet wurde.
Diese beiden FFT-Spektrumanalysatoren liefern sofort Ergebnisse und verfügen über eine integrierte IFFT-Synthese, d. h., Sie können die Spektraldaten im Frequenzbereich invers Fourier-transformieren, um das ursprüngliche Signal im Zeitbereich zu rekonstruieren.
http://www.mathworks.com/help/techdoc/ref/fft.html
http://www.sooeet.com/math/fft.php
Es gibt noch viel mehr zu diesem Thema und zum Thema der digitalen Signalverarbeitung im Allgemeinen, aber diese kurze Einführung sollte Ihnen den Einstieg erleichtern.