Android 2.3 Visualizer - Problème de compréhension getFft ()

Première fois ici, donc désolé par avance pour les massacrés de mise en forme.

Donc je suis complètement nouvelle DSP j'ai donc une très bonne compréhension générale de la transformée de Fourier. Je suis en train de construire un outil de visualisation de l'app pour Android SDK 9, qui comprend un outil de Visualisation de la classe android.médias.audiofx.Visualizer
http://developer.android.com/reference/android/media/audiofx/Visualizer.html

La javadoc de la méthode getFft(), qui est ce que je suis en utilisant états:

"Retourne la fréquence de capture de
en cours de lecture du contenu audio. L'
capture est un 8-bits de l'ampleur de la FFT. Note
que la taille de la FFT est la moitié de
la capture spécifiée à la taille, mais à la fois
côtés du spectre sont retournés
ce qui donne un nombre d'octets égal à
la taille de capture."

Tout d'abord, que signifie "des deux côtés du spectre"? Comment cette sortie différents à partir d'un standard de la FFT?

Voici quelques exemple de sortie du tableau d'octets, getFft() a été donné 124 points à garder les choses simples et j'ai attrapé la première 31 bacs. Voici les grandeurs de la première 31 bacs:

{123, -2, -23, -3, 6, -16, 15, -10, -8, -12, 9, -9, 17, -6, -18, -22, -8, 4, -5, -2, 10, -3, -11, 3, -4, -11, -8, 15, 16, 11, -12, 12}

De l'aide ou des explications serait grandement apprécié!

Edit: Donc après avoir regarder un tas de graphiques, il ressemble à une partie de mon problème est que Google ne précise pas à quelle unité est utilisée. Presque toutes les autres mesures sont effectuées en mHz, serait-il juste de supposer que la TTF sortie est également en mHz? Est-il un endroit où je peux voir le code source de l'outil de Visualisation de la classe donc je peux peut-être comprendre ce que l'enfer qui se passe réellement sous le capot?

Je suis allé de l'avant et a saisi la totalité de la production de getFft()

93, -2, -28, -16, -21, 19, 44, -16, 3, 16, -9, -4, 0, -2, 21, 16, -3, 1, 2, 4, -3, 5, 5, 10, 6, 4, -9, 7, -2, -1, 2, 11, -1, 5, -8, -2, -1, 4, -5, 5, 1, 3, -6, -1, -5, 0, 0, 0, -3, 5, -4, -6, -2, -2, -1, 2, -3, 0, 1, -3, -4, -3, 1, 1, 0, -2, -1, -1, 0, -5, 0, 4, -1, 1, 1, -1, 1, -1, -3, 2, 1, 2, -2, 1, 0, -1, -2, 2, -3, 4, -2, -2, 0, 1, -4, 0, -4, 2, -1, 0, -3, -1, -1, -1, -5, 2, -2, -2, 0, -3, -2, 1, -5, -2, 0, 0, 0, -2, -2, -1, -1, -1, -2, 0, 3, -3, -1, 0

Donc, si je comprends bien, ma sortie ici devrait être de-N de 0 à N. -N 0 devrait ressembler 0 à N. Mais quand je regarde ces amplitudes, je ne vois pas de données miroir. Google semble indiquer que la sortie doit être de 0 à N seulement sur les deux côtés du spectre. Je devrais donc être en mesure de prendre les données à partir (de sortie.longueur-1)/2 à la sortie.longueur-1. Le négatif amplitudes sont plus rapides que la fréquence d'échantillonnage et le positif amplitudes sont en mouvement plus lent que le taux d'échantillonnage. Ai-je comprends bien?

source d'informationauteur ebolyen