相关疑难解决方法(0)

如何获得FFT中每个值的频率?

我有一个FFT结果.它们存储在两个double数组中:实部数组和虚部数组.如何确定与这些阵列中每个元素对应的频率?

换句话说,我想创建一个存储FFT的每个实部和虚部的频率的数组.

c# signal-processing fft

144
推荐指数
5
解决办法
13万
查看次数

使用FFT和Complex类获取频率wav音频

它被问了很多,但我仍然坚持在Android上实现FFT类我需要使用FFT处理我的音频数据...

我已经在这里阅读了几乎相同的问题如何使用FFT获取PCM的频率数据 ,这里如何从fft结果获得频率? 还有更多的问题,但即使在我尝试了答案后仍然没有找到答案......

我正在使用的FFT类:http: //www.cs.princeton.edu/introcs/97data/FFT.java

与它一起使用的复杂类:http://introcs.cs.princeton.edu/java/97data/Complex.java.html

这是我的代码

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.Button;

public class Latihan extends Activity{
        private static final int RECORDER_BPP = 16;
        private static final String AUDIO_RECORDER_FILE_EXT_WAV = ".wav";
        private static final String AUDIO_RECORDER_FOLDER = "AudioRecorder";
        private static final String AUDIO_RECORDER_TEMP_FILE = "record_temp.raw";
        private static …
Run Code Online (Sandbox Code Playgroud)

audio android fft frequency

8
推荐指数
1
解决办法
2万
查看次数

J从PCM数据转换Android中的FFT

我现在已经玩过这个了一段时间,我无法弄清楚我本来打算做什么.

我正在将PCM音频数据读入audioData数组:

 recorder.read(audioData,0,bufferSize);     //read the PCM audio data into the audioData array
Run Code Online (Sandbox Code Playgroud)

我想使用Piotr Wendykier的JTransform库,以便在我的PCM数据上执行FFT以获得频率.

import edu.emory.mathcs.jtransforms.fft.DoubleFFT_1D;
Run Code Online (Sandbox Code Playgroud)

目前我有这个:

       DoubleFFT_1D fft = new DoubleFFT_1D(1024); // 1024 is size of array

for (int i = 0; i < 1023; i++) {
           a[i]= audioData[i];               
           if (audioData[i] != 0)
           Log.v(TAG, "audiodata=" + audioData[i] + " fft= " + a[i]);
       }
       fft.complexForward(a);
Run Code Online (Sandbox Code Playgroud)

我无法理解如何工作,有人可以给我一些指示吗?我必须在此之后进行任何计算吗?

我相信我已经离开了,任何事情都会非常感激!

android fft pcm

4
推荐指数
2
解决办法
2万
查看次数

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

我正在 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
查看次数