audio - 我是否需要将立体声音频转换为单声道以进行 FFT?

标签 audio fft

我发现大多数其他问题都在询问如何将立体声转换为单声道,但我想知道我是否需要将音频数据从立体声转换为单声道才能进行 FFT?如果我不这样做,我知道要在两个 channel 上进行 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;

最佳答案

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

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

关于audio - 我是否需要将立体声音频转换为单声道以进行 FFT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19745573/

相关文章:

javascript - jPlayer中是否有音频淡入的方法

iphone - 如何通过 UIswtch 的 on 和 off 控制音频声音

xcode - 解析问题:从宏 'max'扩展

python - 通过样本恢复正弦函数之和

Matlab - 更好地理解 FFT 并找到 Pitch

audio - 在 Unity Javascript 代码中切换声音按钮

javascript - 如何使用 js-mp3 解码 MP3 并在 AudioContext 中播放?

python - 从 FFT 中找出信号的周期

signal-processing - 在 Octave 音阶中使用 fft 进行外推

matlab - 查找带通滤波器的频率响应