Как я могу получить частотные данные из PCM с помощью БПФ

У меня есть массив аудиоданных, которому я передаю читатель:

 recorder.read(audioData,0,bufferSize); 

Пример выглядит следующим образом:

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.

У меня есть класс БПФ, который я нашел в Интернете, и сложный класс, который можно использовать с ним. Я два дня пробовал искать в Интернете везде, но не могу узнаем, как перебрать значения, хранящиеся в audioData , и передать их в БПФ.

Это класс БПФ, который я использую: http://www.cs.princeton.edu/introcs/97data/FFT.java , и это сложный класс, который нужно использовать с ним: http://introcs.cs.princeton.edu/java/97data/Complex.java.html

7
задан Flexo 29 September 2011 в 23:07
поделиться