@thongcaoloi,
La respuesta simple en cuanto a la dimensionalidad de los datos de entrada es: necesita datos 1D. Ahora explicaré lo que eso significa.
Como quiera analizar datos de audio, su entrada a la discreta transformada de Fourier (DFT o FFT) es una secuencia unidimensional de números reales que representa el voltaje cambiante de la señal de audio a lo largo del tiempo y su audio archivo es una representación digital de ese voltaje cambiante a lo largo del tiempo.
Su archivo de audio se produjo al muestrear el voltaje de una señal de audio continua a una frecuencia de muestreo fija (también conocida como la frecuencia de muestreo), normalmente 44.1 KHz para audio con calidad de CD.
Pero su archivo de datos podría haber sido muestreado a una frecuencia mucho menor, así que trate de averiguar la frecuencia de muestreo de sus datos antes de hacer una FFT con esos datos.
Ahora tiene que extraer las muestras individuales de su archivo de audio. Si su archivo es estéreo, tendrá dos secuencias de muestra separadas, una para el canal derecho y otra para el canal izquierdo. Si el archivo es mono, tendrá solo una secuencia de muestra.
Si su archivo es estéreo, o cualquier otro formato de audio multicanal como 5.1 o 7.1, puede FFT cada canal por separado, o puede combinar cualquier cantidad de canales mediante la adición de voltaje. Eso depende de usted, y depende de lo que intente hacer con sus resultados de FFT.
La salida de DFT o FFT es una secuencia de números complejos. Cada número complejo es un par que consta de una parte real y una parte imaginaria, generalmente se muestra como un par (re, im).
Si desea graficar la densidad espectral de potencia de su archivo de audio, que es lo que la mayoría de la gente quiere de la FFT, graficará 20 * log10 (sqrt (re^2 + im^2)), utilizando primeros N/2 números complejos de la salida FFT, donde N es el número de muestras de entrada a la FFT.
Puede intentar crear su propio programa de software para el analizador de espectros, pero le sugiero que utilice algo que ya está construido y probado.
Estos dos analizadores de espectro FFT dan resultados instantáneamente, y tienen síntesis IFFT incorporada, lo que significa que puede invertir la transformada de Fourier los datos espectrales del dominio de frecuencia para reconstruir la señal original en el dominio de tiempo.
http://www.mathworks.com/help/techdoc/ref/fft.html
http://www.sooeet.com/math/fft.php
Hay mucho más en este tema, y con el tema de procesamiento de señales digitales en general, pero esta breve introducción, en caso de que pueda empezar.
Gracias por la ayuda. ¿Puede decirme qué es salida, es un valor o una matriz? ¿Me pueden compartir el código fuente de FFT? Muchas gracias ! – thongcaoloi
sí, el resultado es también una matriz 1D. –
Tengo que echar un vistazo a mi disco duro de copia de seguridad si todavía tengo el código, fue hace mucho tiempo. Por favor envíeme un correo electrónico para un recordatorio. –