我有一个FFT结果.它们存储在两个double数组中:实部数组和虚部数组.如何确定与这些阵列中每个元素对应的频率?
换句话说,我想创建一个存储FFT的每个实部和虚部的频率的数组.
我一直试图使用fft实时获得声音频率(数字),我有运行时错误.任何人都可以帮忙吗?
package com.example.recordsound;
import edu.emory.mathcs.jtransforms.fft.DoubleFFT_1D;
import ca.uol.aig.fftpack.RealDoubleFFT;
public class MainActivity extends Activity implements OnClickListener{
int audioSource = MediaRecorder.AudioSource.MIC; // Audio source is the device MIC
int channelConfig = AudioFormat.CHANNEL_IN_MONO; // Recording in mono
int audioEncoding = AudioFormat.ENCODING_PCM_16BIT; // Records in 16bit
private DoubleFFT_1D fft; // The fft double array
private RealDoubleFFT transformer;
int blockSize = 256; // deal with this many samples at a time
int sampleRate = 8000; // Sample rate in Hz
public double frequency = 0.0; // …Run Code Online (Sandbox Code Playgroud) 我正在开发一个应用程序,实时从麦克风获取源音频,没有文件存储.基本上,我使用:
mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mRecorder.setOutputFile("/dev/null");
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何从这个实时音频中创建频谱图形,没有文件.可以办到?
我读到的所有帖子都在分析缓冲文件.
谢谢你,对不起我的英语.
我一直试图找到一个能够对Android中的某些EEG信号执行FFT(快速傅里叶变换)的库.
在Geobits的帮助下,我终于找到了可以帮助我对EEG信号进行FFT 的代码.但我很难弄清楚代码是如何工作的.我想知道浮点数x和y是什么,也许是一个可能对我有所帮助的例子.
我正在通过 FFT 分析加速度计数据,因为有人建议我从 FFT 的输出中获取有关频率的信息。FFT 的输出如何与频率信息相关。
FFT 函数被传递一个值数组(所有实数)。FFT 函数返回 2 个相同大小的数组 - 对于实数和复数部分。
我阅读了之前的一些帖子,但仍然对如何从 FFT 的输出数组中提取频率信息感到困惑。1. 输出数组是一个频率数组吗?数组是有序的吗?1.输出数组的每个索引是什么意思?有人建议您可以计算每个索引的大小 - sort (real[i]* real[i] + img[i] * img[i]) 2. 每个索引的大小是否与索引中的索引有关输入数组 - 或者这是一个频率?3. 如何找到主频?