Estou tentando criar um analisador de espectro gráfico em python.
No momento, estou lendo 1.024 bytes de um fluxo de áudio de taxa de amostragem de canal duplo de 16 bits e 44.100 Hz e calculando a média da amplitude dos 2 canais juntos. Portanto, agora tenho uma matriz de 256 shorts assinados. Agora quero pré-formar um fft nessa matriz, usando um módulo como numpy, e usar o resultado para criar o analisador de espectro gráfico, que, para começar, terá apenas 32 barras.
Eu li os artigos da Wikipedia sobre Fast Fourier Transform e Discrete Fourier Transform, mas ainda não estou certo do que a matriz resultante representa. Esta é a aparência da matriz depois que eu pré-formo um fft na minha 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...
Estou me perguntando o que exatamente esses números representam e como eu converteria esses números em uma porcentagem de uma altura para cada uma das 32 barras. Além disso, devo calcular a média dos 2 canais juntos?