前言

MEMS 麦克风有许多独特的 spec,这些 spec 融合了声学和电学特性,再加上 MEMS 麦克风又有模拟与数字之分,这使得理解麦克风的数据手册具有一定难度,本期我们就来解读一下。

按惯例声明一下:我的解释不一定是对的,还可能存在错误,所以仅供参考,欢迎讨论。

模拟 MEMS 麦克风

我们先拿模拟 MEMS 麦克风举例,因为模拟 MEMS 麦克风比较纯粹。

下述截图来自于 Wolfson WM7133L 的数据手册,Wolfson 现已被 Cirrus Logic 收购:

图1 Wolfson WM7133L 数据手册

图1 Wolfson WM7133L 数据手册,来源[1]

图2 Wolfson WM7133L 数据手册

图2 Wolfson WM7133L specs,来源[1]

我在图中加了序号,因为按照这种顺序介绍,比较容易理解。

灵敏度(Sensitivity)

灵敏度是指麦克风对于基准声音的输出。

这个基准声音是频率 1 KHz、94 dB SPL 的正弦波。SPL 指声压等级(Sound Pressure Level)。94 dB SPL 相当于 1 Pascal (Pa) 的压强。如果用耳朵听,这个声音挺响的,属于噪声的范畴。

WM7133L 的灵敏度是 -38 dBV。也就是在 1 KHz、94 dB SPL 输入下,具有 -38 dBV 的输出。转换成电压单位,大概为 0.013 V 的电压有效值。

在相同的声压输入下,灵敏度高的麦克风比灵敏度低的麦克风具有更大的输出。比如,-26 dBV 的灵敏度高于 - 38 dBV 的灵敏度。

灵敏度仅表示麦克风在基准声音下的输出。从器件设计的角度,如果我们加大电源电压和放大倍数,就可以获得更大的输出,但增大灵敏度不是目的,因为噪声的输出也会跟着放大,于是就要说到信噪比的概念。

信噪比(SNR)

麦克风信噪比的测量方法如下:

  • 首先,获得上述 1 KHz、94 dB SPL 基准声音输入下的输出,也就是灵敏度。
  • 其次,将麦克风置于“安静环境”中,再次获得输出。
  • 最后,将上述两个输出相减,得到的就是信噪比。

根据 WM7133L 的数据手册,这个“安静环境”的输入是 Acoustic Noise Floor,其声压等级是 29.5 dB SPL,如果用耳朵听,应该是非常安静的。此时,对应的输出是 Electrical Noise Floor,其电压是 -102.5 dBV。

将两者相减,即 94 dB SPL - 29.5 dB SPL = - 38 dBV - (-102.5 dBV) = 64.5 dB。

64.5 dB,正是 WM7133L 的信噪比。

在同样的灵敏度情况下,高信噪比意味着麦克风有着更低的底噪,也就更好。

那么,如果施加到麦克风上的声音低于 Acoustic Noise Floor,麦克风将无法识别,因为信号会被噪声淹没,此时输出将等同于 Electrical Noise Floor。

动态范围(Dynamic Range,DR)

动态范围与麦克风所支持的最大输入有关。

这里有一个 总谐波失真 THD(Total Harmonic Distortion) 的概念。因为随着输入信号变大,输出逐渐产生失真。又因为输入的是正弦波,这种失真可以量化。

WM7133L 列举了 3 个 THD,分别对应 100 db SPL、114 db SPL、122 db SPL 的声音输入,其中, 1% THD 失真发生在 122dB SPL 的情况。

动态范围,就是将发生 1% THD 失真的情况与底噪相减,即 122 dB SPL - 29.5 dB SPL = 92.5 dB。按照这种计算,它比麦克风的 SNR 大很多。

此外,对于 发生 10% THD 失真的情况,还有一个专有名词,叫做 Acoustic Overload 或 Acoustic Overload Point(AOP),即 声学过载点。

图示对比

Cirrus Logic 有一篇应用笔记(参考资料[2]),用图示展示了 WM7133L 麦克风上述几个指标之间的关系:

图2 WM7133L 的灵敏度、信噪比、动态范围

图3 WM7133L 的灵敏度、信噪比、动态范围,来源[2]

你可以用计算器加减运算一下,看看 WM7133L 声学、电学指标等之间的 dB 差异是否一致。

ADC 的情况

模拟 MEMS 麦克风的输出需要与 ADC 的输入进行匹配。在此, ADC 可以是独立的,也可以在 Codec 之中。

ADC 也有信噪比(SNR)和动态范围(Dynamic Range,DR)的指标,不过定义与麦克风不太一样。

ADC 的 SNR 指最大的输入信号与底噪之间的差值。而 ADC 的 DR 指最大的输入信号与最小的输入信号之间的差值。从 Infineon AN558 “MEMS microphone electrical implementation” 应用笔记来看(参考资料[3]),它没有区分 ADC SNR / DR 两者的差异,而是直接引用了经典公式:

图4 ADC SNR / DR 的计算公式

图4 ADC SNR / DR 的计算公式,来源[3]

我们在早期文章里通过 ADI 的教程解读过这个公式,其过程是拿最大的输入信号与量化噪声进行比较,最终揭示出 ADC SNR / DR 的性能与 ADC 的位数有关。

如果你记不住这个公式的话,也可以用 N*6 来简单近似 ADC SNR / DR。

常见 ADC 的位数有 16 位、20 位或 24 位。比如,对于一个 16 位 ADC,其 N 的取值为16,套用近似公式可得 ADC SNR / DR 为 16*6 = 96 dB。

现在我们看一下如何将麦克风的输出与 ADC 的输入进行匹配,在 Infineon AN558 中有一个图示如下:

图5 麦克风与 ADC 的匹配

图5 麦克风与 ADC 的匹配,来源[3]

图中左侧代表了模拟 MEMS 麦克风的 spec ,它具有 105 dB 的 DR。右侧列举了 16 位、20 位或 24 位 等三个 ADC,分别对应 96 dB、120 dB、144 dB 的 ADC SNR / DR。

另外,图中 dBFS 的 “FS” 指 Full Scale(最大量程)。0 dBFS 即 最大量程,其他所有值均与 0 dBFS 进行比较,所以都是负数。

关键的看点是,麦克风与 ADC 两者的 0 dBFS 映射为一样,但底噪会不同,所以 ADC SNR / DR 需要大于麦克风的 DR。

比如,如果采用 16 位的 ADC, 对于这款麦克风来说,就没有足够的动态范围来支持,整体的性能会受到 ADC SNR / DR 的限制。

数字 MEMS 麦克风

介绍完模拟 MEMS 麦克风与 ADC 之后,我们再看数字 MEMS 麦克风就容易很多。

在 Infineon AN558 中又举了一个例子,IM69D130 和 IM69D120 都是数字 MEMS 麦克风,它们声学部分的 底噪 与 SNR 一样,但灵敏度一高一低(IM69D120 电学部分整体抬高 10 dB),动态范围与 AOP 也做了调整:

图6 IM69D130 和 IM69D120 对比

图6 IM69D130 和 IM69D120 对比,来源[3]

对应的数字部分,由表格最后一列可知,前者 IM69D130 需要 20 位或 24 位的 ADC,而后者 IM69D120 只需要 16 位的 ADC 即可。

小结

本文介绍了 MEMS 麦克风的常见 spec:

  • 声学输入用 dB SPL 单位表示,电学输出用 dBV、dBFS 表示;
  • 灵敏度(Sensitivity),可以看出麦克风的基准输入及其输出;
  • 信噪比(SNR),可以看出麦克风的底噪及其输出;
  • 动态范围(Dynamic Range,DR),可以看出麦克风的最大输入及其输出;

对于与麦克风适配的 ADC 来说,ADC SNR / DR 可以近似用位数 N*6 表示,这个指标更接近麦克风的 DR。所以,下次如果看到麦克风 SNR 只有 60 多个 dB ,不要觉得很烂,因为它可能依然需要一个 24 位的 ADC 来协同工作。

参考资料

  1. WM7133L Datasheet: https://www.digikey.ca/en/products/detail/cirrus-logic-inc/WM7133LIMS-RV/5036723
  2. Cirrus Logic WAN_0290: https://www.mouser.com/catalog/additional/Cirrus%20Logic_WAN0290_v1.0.pdf
  3. Infineon AN558: https://www.mouser.com/pdfDocs/Infineon-AN558_MEMS_Electrical_Implementation-AN-v01_00-EN.pdf

相关前文


欢迎关注我的微信公众号“疯狂的运放”,及时收到最新的推文。