1

本当に助けが必要です。これを13時間以上検索しましたが、役立つものが見つかりませんでした

IN RPM入力信号の基本周波数 (( )) をライブ バーとして表示する Android プロジェクトにしばらく取り組んでいます。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 形式で取得し、ライブ バーに表示する必要があります。

助け、リンク、またはプロジェクトソースが本当に必要です。

4

0 に答える 0