适用于Android的标准FFT类/库?

我计划通过音频“可视化”一些图形数据.简而言之:我从一些图像数据中得到了一堆频率和相关的幅度值.这个具有256对数据的频率/幅度表必须转换为相关的正弦波形.

一种解决方案是为每个表条目生成具有不同频率的正弦波形.这将意味着最多生成256次正弦波形.但是我想那很慢.那么使用FFT转换应该是一个更好的解决方案吗?

所以我的问题是:是否存在可用于Android的某种快速且易于使用的FFT标准?

解决方法:

在我的Android项目中,我使用了JTranforms,可在Android上完美运行.

示例代码

android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_AUdio);

AudioRecord ar = // initialize AudioRecord here;
ar.startRecording();

// Here's the Fast Fourier Transform from JTransforms
DoubleFFT_1D fft = new DoubleFFT_1D(samples.length);

do {
  // Read audio to 'samples' array and convert it to double[]
  ar.read(samples, 0, samples.length);

  // Will store FFT in 'samplesD'
  fft.realForward(samplesD);

} while ( /* condition */ );

ar.stop();
ar.release();

更新:

它可以在JTransforms上找到,该版本在github here上维护,可以作为Maven插件here获得.

要与最新的Gradle版本一起使用,请执行以下操作:

dependencies {
    ... 
    implementation 'com.github.wendykierp:JTransforms:3.1'
}

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...