Android 兼容性定义文档指出
“应设置音频输入灵敏度,使 1000 Hz 的 90 dB 声功率级 (SPL) 源对 16 位样本产生 2500 的 RMS”。
“PCM 幅度水平应该线性跟踪麦克风的输入 SPL 变化,范围从 -18 dB 到 +12 dB,再到 90 dB SPL。”
问题:
(1) 是否包括麦克风灵敏度加上安卓设备的内部增益以达到 2500 的 RMS?
(2) 仅适用于 Mic 最大声级还是包括 Android 设备内部?
Android 兼容性定义文档指出
“应设置音频输入灵敏度,使 1000 Hz 的 90 dB 声功率级 (SPL) 源对 16 位样本产生 2500 的 RMS”。
“PCM 幅度水平应该线性跟踪麦克风的输入 SPL 变化,范围从 -18 dB 到 +12 dB,再到 90 dB SPL。”
问题:
(1) 是否包括麦克风灵敏度加上安卓设备的内部增益以达到 2500 的 RMS?
(2) 仅适用于 Mic 最大声级还是包括 Android 设备内部?
你的问题让我很困惑。我认为您正在混合不同的水平和收益。
90dBspl rms 的声级通过麦克风传输到电域。麦克风具有用于转换的不同声学单元。它以 dBPa 或 Pa 为单位测量声压级。 (94dBspl = 0dBPa) 指定的 -42dBV/Pa 意味着如果您有 0dBPa 或 1Pa(这是相同的声压级),那么您将从麦克风中的 -42dBV模拟电气领域。-42dBV = 7.94mV (0dBV =1V)
现在,从这一点可以有不同的增益模拟和数字。首先你可以有一些模拟增益,然后你有一个 A/D 转换器。之后你就进入了数字领域,然后你也可以获得数字增益。Android 要求未指定这些收益。它指定了在给定声压级下您应该拥有的最终数字级别。您当然可以计算声音链中的每一步,但最简单的方法是将所有数字增益设置为 0dB,或者将模拟增益设置为大约 +20dB(如果可能),然后您尝试获得原声声压级适当的声源。您将需要一个声压级计和一个正弦 1kHz 音调,通过扬声器在大约 20 厘米距离处播放,在一个相当无混响的无回声的房间里。
现在您用您的设备录制 90dBspl 1kHz 音调并分析数字域中的录音。如果可以,您应该调整模拟域中的增益。那么数字动态余量将是正确的。如果您不知道自己在做什么,您很容易尝试在数字域中进行过多调整,从而导致数字削波或量化噪声。只有当您在模拟域中完成了所有可以做的事情后,才应该加入数字增益。
如果一切都正确调整,您将在 90dBspl rms 声级和记录的 -22dBFS rms 数字电平之间有很好的匹配,这是 16 位系统中的 2500 rms 电平(然而,这是一种非常奇怪的测量方式)。在这样的系统中,0dBFS rms 是完全饱和的方波。完全饱和的正弦曲线将具有 -3dBFS rms 或 0dBFS 峰值。
请注意,如果您启用了任何自动增益控制,您可能无法满足线性度的要求。