首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >JTransforms在安卓音频中的使用

JTransforms在安卓音频中的使用
EN

Stack Overflow用户
提问于 2014-06-24 03:45:36
回答 2查看 2K关注 0票数 1

我正在寻找快速和完整的DSP java库来使用android音频操作。我有一个问题,FFT是高度计算。然后我找到了JTransforms。我在任何地方都找不到关于如何使用它的文档。具体来说,我对输入信号感到困惑。在我的例子中,我有一个wav文件,转换为字节数组,然后转换为双数组,使用如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static double[] read(byte[]file) {
    byte[] data = new byte[file.length];
    int N = data.length;
    double[] d = new double[N/2];
    for (int i = 0; i < N/2; i++) {
        d[i] = ((short) (((data[2*i+1] & 0xFF) << 8) + (data[2*i] & 0xFF))) / ((double) MAX_16_BIT);
    }
    return d;
}

但是当我看这份文件时,我不明白每个eache方法的输入是什么。

复数按顺序存储为两个双值。

为了使用这个库,我需要转换为复合库吗?

EN

回答 2

Stack Overflow用户

发布于 2014-06-24 05:41:36

DoubleFFT_1DrealForward方法,它接受一个实值样本数组(双值),所以您不需要将输入转换为复杂的。

您所链接的文档进一步描述了不同的输入需求,这取决于您是使用realForward(double[])还是realForward(double[], int)

票数 2
EN

Stack Overflow用户

发布于 2014-08-06 09:58:58

在Java中执行DSP比在NDK中使用经过良好优化的库要慢得多。

超级动力的Audio有很多DSP功能,包括一个比苹果的vDSP更好的快速傅立叶变换。

特别是如果你想接收震级和相位。

检查SuperpoweredPolarFFT方法:8h.html#a0b63c427504bcbbd9ead8a2ff58daf62

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24385795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文