AD分辨率到底是1/(2^n-1), 还是1/2^n
2014-10-28 15:39
218 查看
网上看到两种说法:如下:
《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)。在失调调整过程中,以上程序会导致增益和失调误差相互影响,但可忽略不计。
《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)。在失调调整过程中,以上程序会导致增益和失调误差相互影响,但可忽略不计。
相关文章推荐
- 到底是32位系统运行快还是64位系统快
- java到底是值传递还是引用传递?
- 真实的谷歌,到底是惬意还是险恶
- Java到底是传引用还是传值?
- 屏幕尺寸,分辨率,像素,PPI之间到底什么关系?
- 1080P和720P电影的分辨率到底是多少
- Linux 基金会引发巨大争议,它到底是企业的还是草根的?
- java面试题:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
- PPT制作到底是要实用还是好看?
- [IE9] GPU硬件加速到底是实用创新还是噱头 推荐
- 腾讯到底是互联网上的模仿者还是潮流的追随者? 推荐
- 织梦建站:我们到底是改用GBK编码还是用UTF8编码?
- 当今社会到底更需要专才还是通才
- Java finally语句到底是在return之前还是之后执行?
- Unity 判断目标分辨率是16比9还是16比10
- 越来越“智能”的输入法,到底是帮了我们,还是害了我们?
- 变量声明到底在循环外部好还是在循环内部好?
- Integer判断相等,到底该用==还是equals
- 到底是饭前还是饭后喝汤好?
- UI 界面的编写工作,到底应该用 xib/storyboard 完成,还是用手写代码来完成