解读spec:如何从ADC角度看MEMS麦克风的灵敏度、信噪比、动态范围?
前言
MEMS 麦克风有许多独特的 spec,这些 spec 融合了声学和电学特性,再加上 MEMS 麦克风又有模拟与数字之分,这使得理解麦克风的数据手册具有一定难度,本期我们就来解读一下。
按惯例声明一下:我的解释不一定是对的,还可能存在错误,所以仅供参考,欢迎讨论。
模拟 MEMS 麦克风
我们先拿模拟 MEMS 麦克风举例,因为模拟 MEMS 麦克风比较纯粹。
下述截图来自于 Wolfson WM7133L 的数据手册,Wolfson 现已被 Cirrus Logic 收购:
我在图中加了序号,因为按照这种顺序介绍,比较容易理解。
灵敏度(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 麦克风上述几个指标之间的关系:
你可以用计算器加减运算一下,看看 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 两者的差异,而是直接引用了经典公式:
我们在早期文章里通过 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 中有一个图示如下:
图中左侧代表了模拟 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 也做了调整:
对应的数字部分,由表格最后一列可知,前者 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 来协同工作。
参考资料
- WM7133L Datasheet: https://www.digikey.ca/en/products/detail/cirrus-logic-inc/WM7133LIMS-RV/5036723
- Cirrus Logic WAN_0290: https://www.mouser.com/catalog/additional/Cirrus%20Logic_WAN0290_v1.0.pdf
- Infineon AN558: https://www.mouser.com/pdfDocs/Infineon-AN558_MEMS_Electrical_Implementation-AN-v01_00-EN.pdf
相关前文
欢迎关注我的微信公众号“疯狂的运放”
,及时收到最新的推文。