我发现大多数其他问题都在询问如何将立体声转换为单声道,但是我想知道是否需要将音频数据从立体声转换为单声道才能进行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;
最佳答案
声音的真实感不是单声道或立体声,而是空间中的一个 Realm 。 “立体声”是一种简单的数据压缩形式,它利用了我们耳朵少的优势。单声道只是将它进一步扩展。
也就是说,“分形维数”对于音频没有很好的定义。进行立体声操作时,您可以将左通道用作X坐标,将右通道用作Y坐标,并获得具有相关分形维数的2D路径。这将与同一个声音的等效“单声道”一维解释的分形维完全无关。立体分形维数将测量真实的立体含量。 (通过简单地复制信号在立体声中修剪mon会产生1.0的立体声分形维数,因为L = R始终是那条线)
关于audio - 我需要将立体声音频转换为单声道以进行FFT吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19745573/