Android音频录制,应用快速傅立叶变换

Android音频录制,应用快速傅立叶变换,android,audio,Android,Audio,目前,更准确地说,我正在使用它的方法重载录制音频,该方法使用短缓冲区(由于最小API限制,无法使用float[]one) 我想应用于录制期间获得的数据。首先,我使用这种转换将收到的short[]转换为float[]: public static float[] convertShortToFloat(short[] array) { float[] data = new float[array.length]; for (int i = 0; i < array.lengt

目前,更准确地说,我正在使用它的方法重载录制音频,该方法使用短缓冲区(由于最小API限制,无法使用
float[]
one)

我想应用于录制期间获得的数据。首先,我使用这种转换将收到的
short[]
转换为
float[]

public static float[] convertShortToFloat(short[] array) {
    float[] data = new float[array.length];
    for (int i = 0; i < array.length; i++) {
        data[i] = 1.f * array[i] / Short.MAX_VALUE;
    }
    return data;
}
public static float[]convertShortToFloat(short[]数组){
float[]数据=新的float[array.length];
for(int i=0;i
然后,我只需将结果
float[]
提供给
FFT
实例,并使用方法获得结果(我拥有的这个类的实现实际上有点不同,但我相信它的工作原理与此几乎相同)

据我所知,现在我应该将转换后获得的数据转换回
short[]
格式(转换回原始信号域),然后提交给muxer。我创建了一个
short[]
-
float[]
数组转换,只是为了与前面显示的相反,但我播放录音时会产生噪音

实施有什么问题