另一种噪声源,即量化噪声比热噪声和其他噪声源更重要。当信号从模拟转为数字时会产生量化噪声。
图 1 显示了 4 位模数转换器 (ADC) 数字化正弦波这一极端实例中获得的量化噪声
图1
当您用尺子测量物体时,需要实际读取尺子的刻度来测量物体的大小,对吧?但如果物体的尺寸介于两个刻度之间会怎么样呢?如果必须在量尺刻度的两个点之间进行选择,那么您会选择最接近物体实际尺寸的刻度。两点之前最近刻度的舍入误差就是量化噪声的物理表现形式。
所有 ADC 都会对连接至其输入端的电压执行这种操作。它们会进行信号检测并将实际电压近似为有限数量的步长。ADC 中所用到的步长数量决定分辨率的大小。
高精度 Δ-Σ ADC 的噪声成形特性通常会最大限度地降低热噪声和闪烁噪声。对于 16 位或 16 位以下的器件而言,热噪声远远小于因信号近似而产生的误差。
在此类 ADC 中,大家会发现在低数据速率下数字代码几乎没有发生变化。我们差不多只能在器件读取实际信号时看到量化误差。
这样的性能对很多应用而言已经足够了。但是,我们可以改进量化噪声,这样尽管只有 16 位 ADC 也能实现比 16 位更高的分辨率。
如何实现?添加噪声吗,是的!
通过向 ADC 输入端添加统计随机噪声或高斯噪声,就可让 LSB 开始闪烁,这就是通常所说的抖动。如果我们对多个读入的闪烁进行平均值计算,那么与不会造成代码变化的较低噪声前端相比,结果会更加接近实际值。
实现这种效果的极佳方法就是增大 16 位 ADC 的采样率,直到 LSB 开始闪烁为止。图 2 给出了一个相关实例。更高噪声会让平均值计算获得更准确的结果,同时还能提供相同的吞吐能力。
图2
计算平均值非常简单。例如,使用 16 位ADS1118时设定采样率为 8 个样本每秒,此时大部分系统都会产生无数字代码变化的稳定结果。在这种情况下,绝大多数误差都是量化噪声。然而,如果该器件运行在 128 个样本每秒的采样速率下,噪声就会提高到足以引起数字代码的变化。
为了对 MCU 中的 16 个样本求平均数,需要先累加所有输入结果。随后的除法计算也比较简单,因为样本数是 2 的幂。只需将结果向右移四位即可。这额外的 4 位就是可用的分辨率。只需一点点噪声,在相同数据速率下就能获得更高的分辨率。