数字世界是模拟世界的镜像,而ADC就是连接两个世界的大门。一切模拟信号一旦经过ADC离散化后,其幅值必然会失真,其重要原因是ADC分辨率有限,只能逼近真实幅值。
我们不可能抵达真理,只能无限的接近真理。
分辨率是ADC的重要参数之一,它和精度是两个不同的量,精度描述的是离散结果的准确性,而分辨率描述的是ADC能够分辨的最小信号,为1LSB。
换言之,分辨率高的ADC能区分出更小的信号,但其转化的结果准确性受精度限制。
一个8bit ADC,可分辨出256种电平,当输入范围是2.56V时,1LSB即为10mV。受分辨率限制,ADC输出值和实际值之间存在误差。
下图是量化误差的示意图,对于变化小于1LSB的信号,ADC是无法区分出来的,输入和输出此时的误差即为量化误差。
量化噪声的简化数学模型如下,
e(t)=st, -q/2s < t < +q/2s
根据输入信号、ADC分辨率和量化误差的关系,我们可以推导出一条重要的SNR计算公式。详细推导过程在公众号后台回复:过采样
下面就是经典的ADC SNR计算公式。
SNR = 6.02N + 1.76dB
DC至fs/2带宽范围
如果使用数字滤波来滤除带宽BW以外的噪声成分,则等式中还要包括一个校正系数
或者写作
BW是信号带宽,FS是采样率,OSR=Fs/(2*BW)就是过采样率。
我们所说的过采样率每提高4倍,可以提高ADC 1bit的有效分辨率就是根据上面的公式来的,过采样率可以参考以前文章:
为什么“过采样率每提高4倍,可以提高ADC 1bit的有效分辨率”?
举个栗子:
当过采样率OSR为1时,
当过采样率OSR为4时,
对比公式1和公式2,只有红色框部分不同,即过采样带来的SNR收益和增加分辨率N是可以转化等效的。
额外增加的位数N+:
N+=10log(OSR)/6.02,
当OSR=1,4,16,,,,时,N+=1,2,3,,,,,
这就是通常所说的,过采样率每增加4倍,可以提高1bit分辨率的原因。
那么是不是只要提高采样速率就可以提高分辨率了呢?
其实不对,从公式2可以看出,10log(4)变为10log(1)了,这个过程还需要降低采样,或者下抽,这么做除了降低数据量外,就是可以提高分辨率。
如何下抽,是一个学问,如果简单的求平均,往往只提高信噪比,达不到提高有效位数的目的,好多人在这里会采坑。
如何正确使用下抽来增加有效位数?量化误差与过采样率最经典的解释是频谱密度解释,篇幅有限,后面文章都会持续更新。