我真的需要帮助。我搜索了13个小时,但我没有找到有用的东西
我一直在研究Android项目一段时间,它将输入信号的基频((IN RPM
))显示为实时条。我已经成功实现了AudioRecord
类,并从中获取数据。我对此数据执行了FFT
,将其从数字域转换为频域。
int bufferSize = AudioRecord.getMinBufferSize(frequency,
channelConfiguration, audioEncoding);
AudioRecord audioRecord = new AudioRecord(
MediaRecorder.AudioSource.DEFAULT, frequency,
channelConfiguration, audioEncoding, bufferSize);
short[] buffer = new short[blockSize];
double[] toTransform = new double[blockSize];
try {
audioRecord.startRecording();
} catch (IllegalStateException e) {
Log.e("Recording failed", e.toString());
}
while (started) {
int bufferReadResult = audioRecord.read(buffer, 0, blockSize);
for (int i = 0; i < blockSize && i < bufferReadResult; i++) {
toTransform[i] = (double) buffer[i] / 32768.0; // signed 16
// bit
}
transformer.ft(toTransform);
//Here i have FFT of the input sound in toTransform[]
}
现在我需要以RPM格式获取此数据的基本频率并将其显示在实时条上。
请真的需要任何帮助,任何链接或任何项目来源。