我真的需要帮助。我为此搜索了 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 格式获取这些数据的基本频率,并将其显示在实时栏上。
请我真的需要任何帮助,任何链接或任何项目来源。