我知道我絕對不是第一個問關於使用FFT來找到頻率與Android的AudioRecord,但在閱讀噸的論壇後,我仍然不理解它好。試圖使用FFT來獲得確切的頻率與Android AudioRecord
我結束了使用ComplexDoubleFFT類,Herschel Common Science System的一部分和類似於here的代碼。
AudioRecord recorder = new AudioRecord(MediaRecorder.AudioSource.MIC, rate, channelConfig, audioFormat, bufferSize);
...
double[] micBufferData = new double[audioData.length];
int x=0;
for(short data : audioData)
{
micBufferData[x] = data;
x++;
}
FFT newFFT = new FFT(bufferSize/2);
newFFT.ft(micBufferData);
接下來要做的事情基本上是在我上面,因爲它爲他們工作已經提到的線程做同樣的事情。但是,他們有一個名爲toTransform的數組,我不確定他們從哪裏得到它。我假設這是他們的FFT值的列表,但我不知道如何獲得值!我已經瀏覽了ComplexDoubleFFT的類文件,並且沒有任何地方甚至可以返回它的輸出。希望我所說的所有這些都不會讓人困惑。任何幫助深表感謝!
您可能需要顯示代碼或說出這個toTransform數組的用途。 – hotpaw2
@ hotpaw2我已經知道了,但如果你想讓我詳細說明我做了什麼,我可以做到這一點。 – Sp4mm4ge