android fft 实例,适用于Android的标准FFT类/库?

这篇博客介绍了如何在Android应用中利用JTransforms库进行快速傅里叶变换(FFT)来处理音频数据。作者通过读取音频记录,将其转换为double数组,并应用FFT进行频率分析。JTransforms库在Android环境下运行良好,提供了一个高效的FFT实现。代码示例展示了如何在Android的AudioRecord类中集成FFT处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我计划通过音频“可视化”一些图形数据.简而言之:我从一些图像数据中得到了一堆频率和相关的幅度值.这个具有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'

}

标签:fft,trigonometry,frequency,android,signal-processing

来源: https://codeday.me/bug/20191031/1973741.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值