從PCM獲得頻率數據我有音頻數據的數組我傳遞給讀者:我如何使用FFT
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.
我有一個我在網上找到了FFT類,並且有一個複雜的類可以與它一起使用。 我已經嘗試了兩天在網上查找,但無法解決如何循環存儲在audioData
中的值並將其傳遞給FFT。
這是我使用的FFT類:http://www.cs.princeton.edu/introcs/97data/FFT.java ,這是複雜的類用它去:http://introcs.cs.princeton.edu/java/97data/Complex.java.html
我曾嘗試過使用過零點方法,是否必須將數據從此方法傳遞到FFT? –