Analyse du spectre audio à l'aide de l'algorithme FFT en Java


Je veux analyser le spectre d'un fichier audio en Java (MOI). Je veux dessiner spectrum comme le font certains lecteurs multimédias. Mais je ne comprends pas certains points:

  1. Entrée pour l'algorithme FFT, que je dois obtenir à partir du fichier audio. Je ne sais pas maintenant comment ça s'appelle, ce que c'est et plus important, je ne sais pas comment l'obtenir.
  2. Sortie: si l'entrée est un tableau (gamme?) J'obtiens un autre tableau, et il a une plage: 0-1, non (ou non)? Donc ce que j'ai à faire avec elle?
Author: Andrew Thompson, 2011-07-08

1 answers

Vous avez besoin de quelques étapes supplémentaires en plus de la FFT. Cela a déjà été couvert à plusieurs reprises dans des questions similaires précédentes ici sur SO, et vous pouvez trouver du matériel supplémentaire en recherchant "dsp", "fft", "spectrum", "spectrogram", etc., mais vous devez essentiellement faire ce qui suit:

  • appliquer un fonction fenêtre pour les données d'entrée (par exemple, Hann(ing))
  • appliquer FFT aux données d'entrée fenêtrées (pour FFT complexe à complexe, les entrées imaginaires doivent toutes être zéro)
  • calculer la magnitude au carré des premiers bacs de sortie N / 2 FFT(re * re + im * im)
  • convertir la magnitude au carré en échelle dB (10 * log10(squared_magnitude))
 14
Author: Paul R, 2011-07-09 08:31:04