我发现大多数其他问题都是要求如何将立体声转换为单声道,但我想知道我需要从立体声中转换我的音频数据单声道,以进行FFT?如果我不这样做,我知道在两个通道上进行FFT,但是我如何使用它们来查找音频的分形维数?如果我这样做,将两个值平均在一起是个好主意吗?
此外,我有数百万点,当你看它们时,你会看到音频信号的样子。如果我有太多的点,我为什么要进行仅1024字节的FFT?
这是我正在使用的音频格式: PCM_SIGNED 44100.0 Hz,16位,立体声,4字节/帧,小端
读取流时缓冲区可能获得的示例:[41,0,68,0]
如果我只是将两者结合在一起,那么我就是这样做的:
amplitude1 = (double) (buffer[1] << 8 | buffer[0] & 0xFF) / 32767.0;
amplitude2 = (double) (buffer[3] << 8 | buffer[2] & 0xFF) / 32767.0;
double aveAmp = (amplitude2+amplitude1)/2;
答案 0 :(得分:0)
声音的现实不是单声道或立体声,而是空间中的场。 “Stereo”是一种简单的数据压缩形式,利用了我们缺乏耳朵的优势。 Mono只是稍微进一步。
那就是说,“分形维数”没有明确的音频定义。使用stero,您可以使用左声道作为X坐标,将右声道作为Y坐标,您将获得具有相关分形维数的2D路径。这将完全与同一声音的等效“单声道”一维解释的分形维数无关;立体分形维数将测量真实的立体声内容。 (通过简单地复制信号来调整立体声中的mon将产生1.0的立体分形维数,因为L = R总是并且这是一条线)