Tengo una matriz de datos de audio que estoy pasando a un lector:¿Cómo puedo obtener los datos de frecuencia de PCM mediante FFT
recorder.read(audioData,0,bufferSize);
La ejemplificación es el siguiente:
AudioRecord recorder;
short[] audioData;
int bufferSize;
int samplerate = 8000;
//get the buffer size to use with this audio record
bufferSize = AudioRecord.getMinBufferSize(samplerate, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT)*3;
//instantiate the AudioRecorder
recorder = new AudioRecord(AudioSource.MIC,samplerate, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT,bufferSize);
recording = true; //variable to use start or stop recording
audioData = new short [bufferSize]; //short array that pcm data is put into.
tengo una La clase de FFT I la he encontrado en línea y una clase compleja que la acompaña. He intentado durante dos días buscar en línea en todas partes pero no puedo encontrar la forma de recorrer los valores almacenados en audioData
y pasarlo a la FFT.
Esta es la clase de FFT que estoy utilizando: http://www.cs.princeton.edu/introcs/97data/FFT.java y esta es la clase de complejo para ir con ella: http://introcs.cs.princeton.edu/java/97data/Complex.java.html
He intentado esto, utilizando un método de cruce por cero, ¿tengo que pasar los datos que obtengo de este método a la FFT? –