大家好,这里是大话硬件!
根据前天分享的文章,分析了ADC转换的过程,在评价ADC性能时有5个静态指标和5个动态指标评价ADC。可以作为选型时以及理论计算时的参考。
静态性能指标包括:失调误差,增益误差,微分非线性误差(DNL),积分非线性误差(INL),绝对精度误差。动态性能指标包括:信噪比,信噪失真比,无杂散动态范围,有效位,总谐波失真。
今天这篇文章我们来看看第一个静态性能指标——失调误差。
静态性能指标意味这种误差只要存在,就会影响ADC的每一个编码。失调误差定义为传递函数无法通过零点的模拟值。失调误差也称为偏置误差,这种误差反映的是第一个标准偏置点和第一个实际偏置点之间的误差。如下图虚线所示理想ADC和实线代表实际ADC所示的转换函数。
理想ADC转换函数输出代码为000时,输入电压在0~0.5LSB范围内,实际转换函数输出代码为000时,输入电压在2.5~3.0LSB范围内,因此,失调误差是2.5LSB。
用数学关系的思路来理解失调误差。假设输入模拟信号是x,输出数字代码是y,在不考虑±0.5LSB的条件下,输入信号和输出代码之前应该存在下面的关系式:
即输入信号和输出代码之间是线性的,用红色来表示它们之前的线性关系。
在不存在失调误差时,整数点1,2,3……6,7是跳变点。如果此时存在失调误差,则输入信号和输出信号之前的关系式成为了:
从传输函数可以看出,失调误差为0时,输出是000时,输入信号在0~0.5LSB以内;若存在失调误差,输出是000时,输入信号在0~1.25LSB以内,即引入的失调误差是0.75LSB。
用数学关系式看上述的关系类似传输函数向右平移了0.75LSB的单位长度。这种平移的失调误差,将会影响到每一个代码的输出,编码跳变从之前的1,2,3….6,7,变成了现在的1.75,2.75,3.75……6.75,7.75。
因此,从数学的角度看失调误差,就像是一次函数的截距。如果截距为负,输入电压会在大于0.5LSB以后才发生跳变,如上述所示的0.75SB处产生第一个编码跳变,此时的失调误差称为负失调误差。可想而知负失调误差过大,会导致较大范围的输入电压条件下,输出均为0,数字编码用几个输入就已经满量程,限制了数字编码的量程。
同理可知,如果截距为正,输入电压会在小于0.5LSB之前就发生跳变,如下图所示,输入电压小于0.5LSB时,输出数字代码为010,则会导致输入电压还未满量程时,数字代码就达到了饱和。
总结一下:无论是正失调偏差会影响数字编码的量程,负失调偏差会影响模拟输入量程。根据上面的分析,可以得到矫正的ADC失调误差的方法,在反方向上补偿对应的偏差就能使传输函数的截距为0,即失调误差为0。