小编Sid*_*han的帖子

如何从录音机麦克风输入数据计算频率电平

我正在 android 中做声音分析器应用程序。我可以使用 AudioTrack Api 生成 18 khz 到 20 khz 的超声波。我可以使用 AudioRecord Api 录制音频。但我不知道如何计算麦克风输入数据的频率。我看到了多个问题如何从fft结果中获取频率?使用 FFT 和 Complex 类获取频率 wav 音频它没有给出正确的频率。请帮助我。对不起,我的沟通。

这是我的频率计算代码

int bufferSizeInBytes = 1024; 
short[] buffer = new short[bufferSizeInBytes];
class Recording extends Thread {
    @Override
    public void run() {

        while (true) {

                bufferReadResult = audioInput.read(buffer, 0, bufferSizeInBytes); // record data from mic into buffer                    

                if(bufferReadResult > 0){
                   calculate();
                }              
        }
    }   


public void calculate() {
    DoubleFFT_1D fft1d = new DoubleFFT_1D(bufferSizeInBytes);//using JTransforms lib
    double[] fftBuffer …
Run Code Online (Sandbox Code Playgroud)

audio android fft audio-recording arduino-ultra-sonic

1
推荐指数
1
解决办法
4960
查看次数