2

我发现大多数其他问题都在询问如何将立体声转换为单声道,但我想知道我是否需要将音频数据从立体声转换为单声道才能进行 FFT?如果我不这样做,我知道要在两个通道上进行 FFT,但是我如何使用它们来找到音频的分形维数?如果我这样做,将这两个值平均在一起是个好主意吗?

我还有数百万个点,当您查看它们时,您会看到音频信号的样子。如果我有这么多点,我为什么要做一个只有 1024 字节的 FFT?

这是我正在使用的音频格式:PCM_SIGNED 44100.0 Hz,16 位,立体声,4 字节/帧,little-endian

当我读取流时缓冲区可能得到的一个示例:[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;
4

1 回答 1

0

声音的真实性不是单声道或立体声,它是空间中的一个场。“立体声”是一种简单的数据压缩形式,它利用了我们缺乏耳朵的优势。Mono 只是稍微更进一步。

也就是说,“分形维数”对于音频没有很好的定义。以立体声为例,您可以将左通道用作 X 坐标,将右通道用作 Y 坐标,您将获得具有相关分形维数的 2D 路径。这与相同声音的等效“单”一维解释的分形维数完全无关;立体分形维数将测量真实的立体内容。(通过简单地复制信号在立体声中调整 mon 将创建 1.0 的立体分形维数,因为 L=R 始终是一条线)

于 2013-11-07T00:03:22.673 回答