Elm*_*lmi 4 android trigonometry signal-processing fft frequency
我计划通过音频“可视化”一些图形数据。简而言之:我从一些图像数据中得到了一堆频率和相关的幅度值。这个频率/幅度表 - 假设有 256 对数据 - 必须转换成相关的正弦波形。
一种解决方案是为每个表条目生成具有不同频率的正弦波形。这意味着生成多达 256 次的正弦波形。但我猜这很慢。那么使用 FFT 转换应该是一个更好的解决方案吗?
所以我的问题是:是否有某种可用于 Android 的快速且易于使用的 FFT 标准可用于此目的?
在我的 Android 项目中,我使用了在 Android 上完美运行的JTranforms。
示例代码:
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();
Run Code Online (Sandbox Code Playgroud)
更新:
它可以被发现JTransforms被维持在github上 这里和缴费作为Maven的插件在这里。
要与最近的 Gradle 版本一起使用,请执行以下操作:
dependencies {
...
implementation 'com.github.wendykierp:JTransforms:3.1'
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11136 次 |
| 最近记录: |