Je dois utiliser FFT pour analyser la fréquence d'un fichier audio. Mais je ne sais pas quelle est l'entrée et la sortie. p>
Dois-je utiliser une matrice à 1 dimension, à 2 dimensions ou à 3 dimensions si je veux dessiner le fichier audio du spectre? Et quelqu'un peut-il me suggérer une bibliothèque pour FFT sur J2ME? P>
3 Réponses :
Si je me souviens que l'algorithme FFT n'est pas si complexe, j'écris une classe de calcul de la FFT pour ma thèse. A cette époque, l'entrée est une gamme de valeurs 1D qui sont lues à partir des fichiers * .wav. Mais avant FFT, il y avait un filtrage et une normalisation effectuée. P>
Merci pour l'aide. Vous pouvez me dire ce qui est la sortie, c'est une valeur ou un tableau? Vous pouvez me partager le code source de FFT? Merci beaucoup !
Je dois jeter un coup d'œil à mon disque dur de sauvegarde si j'ai toujours le code, c'était il y a longtemps. S'il vous plaît, déposez-moi un email pour un rappel.
Dans le sens théorique, un complexe de cartes FFT [N] => complexe [n]. Toutefois, si vos données sont simplement un fichier audio, votre entrée sera simplement complexes sans composant imaginaire. Ainsi, vous allez mapper réel [N] => complexe [n]. Cependant, avec un peu de mathématiques, vous voyez que le format de la sortie sera toujours sorti [I] == complexe_conjugate (sortie [N-I]). Ainsi, vous n'avez vraiment besoin que de regarder les premiers échantillons N / 2 + 1. De plus, la sortie complexe de la FFT vous donne des informations sur la phase et la magnitude. Si tout ce que vous vous souciez est comment em> une grande partie d'une certaine fréquence est dans votre audio, il vous suffit de regarder la magnitude, qui peut être calculé comme Square_root (imaginaire ^ 2 + réel ^ 2), car chaque élément de la sortie. p>
Bien sûr, vous devrez examiner la documentation de toute la bibliothèque que vous utilisez pour comprendre quel élément de tableau correspond à la partie réelle de la sortie complexe et de trouver la partie imaginaire de la sortie complexe. < / p>
@thongcaoloi, p>
La réponse simple concernant la dimensionnalité de vos données d'entrée est la suivante: vous avez besoin de données 1D. Maintenant, je vais expliquer ce que cela signifie. P>
Parce que vous souhaitez analyser des données audio, votre entrée à la transformée de Fourier discrète (DFT ou FFT) est une séquence à 1 dimension de nombres réels, ce qui représente la tension de changement du signal audio au fil du temps et de votre fichier audio. est une représentation numérique de cette tension changeante au fil du temps. p>
Votre fichier audio a été produit en échantillonnant la tension d'un signal audio continu à une fréquence d'échantillonnage fixe (également appelée fréquence d'échantillonnage), typiquement 44,1 kHz pour l'audio de qualité CD. p>
Mais votre fichier de données aurait pu être échantillonné à une fréquence beaucoup plus bas, essayez donc de déterminer la fréquence d'échantillonnage de vos données avant de faire une FFT sur ces données. P>
Alors maintenant, vous devez extraire les échantillons individuels de votre fichier audio. Si votre fichier est stéréo, il aura deux séquences d'échantillons distinctes, une pour le canal droit et un pour le canal gauche. Si le fichier est mono, il n'aura qu'une séquence d'échantillons. P>
Si votre fichier est stéréo ou tout autre format audio multicanal tel que 5.1 ou 7.1, vous pouvez jouer chaque canal séparément, ou vous pouvez combiner n'importe quel nombre de canaux ensemble à l'aide de l'addition de tension. C'est à vous et dépend de ce que vous essayez de faire avec vos résultats FFT. P>
La sortie du DFT ou FFT est une séquence de nombres complexes. Chaque numéro complexe est une paire constituée d'une partie réelle et d'une partie imaginaire, généralement montrée en tant que paire (RE, IM). P>
Si vous souhaitez grapher la densité spectrale de puissance de votre fichier audio, c'est ce que la plupart des gens veulent de la FFT, vous aurez graphiquement 20 * log10 (sqrt (re ^ 2 + im ^ 2)), en utilisant le premier N / 2 numéros complexes de la sortie FFT, où N est le nombre d'échantillons d'entrée à la FFT. P>
Vous pouvez essayer de construire votre propre logiciel d'analyseur de spectre, mais je suggère d'utiliser quelque chose déjà construit et testé. P>
Ces deux analyseurs de spectre FFT donnent des résultats instantanément et ont une synthèse intégrée de la FFFT, ce qui signifie que vous pouvez transférer inverse Fourier de transformer les données spectrales de fréquence-domaine pour reconstruire le signal d'origine dans le domaine temporel. P>
http://www.mathworks.com/help/techdoc/ref/fft.htmlle_ a> p>
http://www.sooeet.com/math/fft.php p>
Il y a beaucoup plus à ce sujet et au sujet du traitement du signal numérique en général, mais cette brève introduction devrait vous faire démarrer. P>