Estoy tratando de crear un analizador de espectro gráfico en Python.
Actualmente estoy leyendo 1024 bytes de un flujo de audio de frecuencia de muestreo de 44,100 Hz de doble canal de 16 bits y promediando la amplitud de los 2 canales juntos. Así que ahora tengo una serie de 256 cortos firmados. Ahora quiero preformar un fft en esa matriz, usando un módulo como numpy, y usar el resultado para crear el analizador de espectro gráfico, que, para comenzar, será solo de 32 barras.
He leído los artículos de Wikipedia sobre Transformada rápida de Fourier y Transformada discreta de Fourier, pero todavía no tengo claro qué representa la matriz resultante. Así es como se ve la matriz después de realizar un fft en mi matriz usando numpy:
[ -3.37260500e+05 +0.00000000e+00j 7.11787022e+05 +1.70667403e+04j
4.10040193e+05 +3.28653370e+05j 9.90933073e+04 +1.60555003e+05j
2.28787050e+05 +3.24141951e+05j 2.09781047e+04 +2.31063376e+05j
-2.15941453e+05 +1.63773851e+05j -7.07833051e+04 +1.52467334e+05j
-1.37440802e+05 +6.28107674e+04j -7.07536614e+03 +5.55634993e+03j
-4.31009964e+04 -1.74891657e+05j 1.39384348e+05 +1.95956947e+04j
1.73613033e+05 +1.16883207e+05j 1.15610357e+05 -2.62619884e+04j
-2.05469722e+05 +1.71343186e+05j -1.56779748e+04 +1.51258101e+05j
-2.08639913e+05 +6.07372799e+04j -2.90623668e+05 -2.79550838e+05j
-1.68112214e+05 +4.47877871e+04j -1.21289916e+03 +1.18397979e+05j
-1.55779104e+05 +5.06852464e+04j 1.95309737e+05 +1.93876325e+04j
-2.80400414e+05 +6.90079265e+04j 1.25892113e+04 -1.39293422e+05j
3.10709174e+04 -1.35248953e+05j 1.31003438e+05 +1.90799303e+05j...
Me pregunto qué representan exactamente estos números y cómo convertiría estos números en un porcentaje de una altura para cada una de las 32 barras. Además, ¿debería promediar los 2 canales juntos?