网上看到两种说法:如下:
《1》支持1/(2^n-1)
大家看一下下面的例子:
(1) 在总长度为5米的范围里,平均分布6棵树(或说6个元素),算出每科树(或说每个元素)的间隔?
解:每棵树(或说每个元素)应该这样分布:
在开头0米处种第1棵(记为0号树)
在1米处种第2棵(记为1号树);
在2米处种第3棵(记为2号树);
在第5米(即终点)处种第6棵(记为5号树)
所以,每棵树的间隔(或分辨率)的算法是:总长度/(长度内总元素-1) 即:5米/(6-1)棵=1米/棵
每隔1米有1棵树,这个道理大家都很清楚,应该没有人说分辨率=总长度/长度内总元素=5/6=0.83米
打个比喻,你用两位,就只有00、01、10和11,00为0V,11为12V,请问01是多少V,所以应该是12/(2的2次方减1),V=X*5/4095
《2》支持1/2^n
注意每个数有1LSB的范围
当你的读数是0时,实际电压值可能是0<= V < 1/4096
当你的读数是1时,实际电压值可能是REF*1/4096<= V < REF*2/4096
当你的读数是0x0FFF时,实际电压值可能是REF*4095/4096<= V < REF
假如你用两位,就有00、01、10和11共4种状态,那么就设定0~3V,3~6V为01,6~9V为10,9~12V为11,这样才能把整个量程分为均匀的4段,
也只有这样分4个数每一个的范围才是一致的
我们可以看出,数字化后每一个数都是一个范围,范围内的是无法区分的,明显会丢失精度,丢失的精度是1个最小位1LSB,因此数字万用表都标1LSB的误差
实际上这是在完美线性下才能达到的
如此看来第二种说法更正确些。第一种用树做比喻不恰当的地方在于树是固定位置的,而对于数字表示AD是有一定的动态范围,这意味着树的位置是有一定范围的,第1米的树就不见得就在1米处,可能在0.5米到1.5米之间飘忽不定,呵呵~
问:为什么您一直提到“接近”满量程?
答:放大器和DAC可以在零值和满量程时进行调整。对于DAC而言,全1时———最大的数字输入———对应产生低于“满量程”1LSB的输出,其中,“满量程”为基准电压的一定常数倍数;由于DAC的输出为基准电压与数字输入的归一化乘积,自然就得到上述结论。ADC不在零值和FS处进行调整。理想ADC的输出均经量化处理,第一个输出转换(从00...00至00...01)发生于全“0”以上1/2LSB时。此后,模拟输入每增加1LSB,就转换一次,直到最终转换发生于比FS低1个1/2LSB时。非理想ADC的调整方法是,将其输入设为目标转换的标称值,然后进行调整,直到ADC输出在两个值之间均衡闪烁时。可见,ADC的失调是通过对应于第一个转换的输入进行调整的(即,比零值或负FS高1/2LSB时,“接近”零或“接近”负FS);增益则是在最后一个转换时进行调整的(即比负FS低1个1/2LSB,“接近”正FS)。在失调调整过程中,以上程序会导致增益和失调误差相互影响,但可忽略不计。