0

AudioUnitSampleType 是一个 SInt32。当我将它记录到控制台时,我得到的读数大约在 -22000 到 22000 之间。

有人可以解释这些值代表什么吗?他们如何描述波形?我想因为它们是正的和负的,所以轴位于波形的中心。

我如何将这些值转换为分贝,以使 0 dB 最大声?

4

1 回答 1

1

尽管样本类型是 32 位 int,但您收到的值通常适合 16 位 int(即 32767..-32767)。32767(或浮点 1.0)对应 0dB。

将样本转换为浮点值后,以分贝为单位的功率如下所示:

double sampleValue = (double)intSampleValue / 32767.0;
double db = 20.0 * log10(value);

我已将上述计算作为双精度进行以避免溢出。

于 2012-08-22T17:46:00.217 回答