3

我有一套 MEMS 麦克风,可以测量特定频率的音频信号。MEMS 麦克风有一个 PDM 输出,然后将其转换为 PCM(这是允许微控制器对采样的音频数据进行某些处理所必需的)。

我正在尝试提出一种将 PCM 样本转换为 dB SPL 的方法,我在此找到的最佳资源是此链接:https ://curiouser.cheshireeng.com/2015/01/16/pdm-在-a-tiny-cpu/中。我了解他们如何从 977 个 PCM 样本中计算 RMS 值(这在文章中称为内部对数单位的 SPL 值)。他们通过使用麦克风数据表将此 RMS 值与 dB FS 值相关联(其中方波的最大可能 PCM 值/RMS 值将等效于 +3 dB FS 的 dB FS 的已知最大值)。我不明白作者如何在 dB FS 和 dB SPL 之间创建线性关系(类似于经典的 y=mx+b)。下面列出了讨论此问题的文章中的特定段落:

要将内部对数单位的最终 SPL 值与 dB SPL 相关联,我们必须注意,麦克风数据表声称 94 dB SPL 的 1 kHz 音调通常会记录为 -26 dB FS,其中 0 dB FS 是最大幅度正弦可以在没有削波的 PCM 样本中表示的波。满量程方波则为 +3 dB FS,其测量值为 8 * log2(8192) 或 104,可通过乘以 20 * log10(2) / 8 或约 0.75 重新调整为 dB,得到 78。减去正弦波的 3 dB,我们发现偏移量约为 -75 dB 至 dB FS,或 +19 至 dB SPL。

综上所述,如果我们想输出真实的 db SPL,我们需要根据计算变量 spl 的以下表达式:dB SPL = (3 * spl / 4) + 19

我不明白 0.75 的系数或 +19 的​​截距是如何合理的。有没有人有任何想法或一些额外的资源我可以咨询?

4

0 回答 0