相关疑难解决方法(0)

如何从fft结果获得频率?

我在我的Android手机上录制了麦克风数据[1024]数据,通过实际数据的1D前向DFT(再设置1024位为0).我将数组保存到文本文件中,并重复了8次.

我收到了16384的结果.我在Excel中打开了文本文件并制作了一个图表以查看它的外观(x =数组索引,y =返回的数字大小).有大量的尖峰(正面和负面)大约在110,232左右,并且小尖峰继续以这种方式持续到1817年和1941年左右,尖峰再次变大,然后再次下降.

我的问题是,无论我在哪个主题上寻求帮助,它都会提到实数和虚数,我只有一维数组,我从Piotr Wendykier的类中使用的方法得到了回复:

DoubleFFT_1D.realForwardFull(audioDataArray); // from the library JTransforms.
Run Code Online (Sandbox Code Playgroud)

我的问题是:我需要对此数据做什么才能返回频率?录制的声音是我在吉他的底弦(第五音品)上演奏'A'(大约440Hz).

java android fft pcm

29
推荐指数
1
解决办法
3万
查看次数

使用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万
查看次数

标签 统计

android ×2

fft ×2

audio ×1

frequency ×1

java ×1

pcm ×1