picpick尺子像素大小精度不够准确_精度与分辨率是一回事吗
我們所講的精度通常是指它的精確度,其實(shí)這是錯(cuò)誤的。
精度又叫做精密度,是跟準(zhǔn)確度相對應(yīng)的一個(gè)概念。
就像打靶一樣,打的準(zhǔn),那就說它的準(zhǔn)確度比較高;
而每兩個(gè)靶之間能打出的偏移越小,那它的精密度就越高。
精密度 + 準(zhǔn)確度 = 精確度。
但是鑒于大家都將精度指代了精確度,那以下所說的精度如無特別指出,都是指精確度。
很多人對于精度和分辨率的概念不清楚,這里我做一下總結(jié),希望大家不要混淆。
我們搞電子開發(fā)的,經(jīng)常跟“精度”與“分辨率”打交道,這個(gè)問題不是三言兩語能搞得清楚的,在這里只作拋磚引玉了。
簡單點(diǎn)說,“精度”是用來描述物理量的準(zhǔn)確程度的,而“分辨率”是用來描述刻度劃分的。
從定義上看,這兩個(gè)量應(yīng)該是風(fēng)馬牛不相及的。(是不是有朋友感到愕然^_^)。
很多賣傳感器的JS就是利用這一點(diǎn)來糊弄人的了。簡單做個(gè)比喻:
有這么一把常見的塑料尺(中學(xué)生用的那種),它的量程是10厘米,上面有100個(gè)刻度,最小能讀出1毫米的有效值。
那么我們就說這把尺子的分辨率是1毫米,或者量程的1%;
而它的實(shí)際精度就不得而知了(算是0.1毫米吧)。
當(dāng)我們用火來烤一下它,并且把它拉長一段,然后再考察一下它。
我們不難發(fā)現(xiàn),它還有有100個(gè)刻度,它的“分辨率”還是1毫米,跟原來一樣!
然而,您還會認(rèn)為它的精度還是原來的0.1毫米么?(這個(gè)例子是引用網(wǎng)上的,個(gè)人覺得比喻的很形象!)
回到電子技術(shù)上,我們考察一個(gè)常用的數(shù)字溫度傳感器:AD7416。
供應(yīng)商只是大肆宣揚(yáng)它有10位的AD,分辨率是1/1024。
那么,很多人就會這么欣喜:哇塞,如果測量溫度0-100攝氏度,100/1024……約等于0.098攝氏度!
這么高的精度,足夠用了。但是我們?nèi)g覽一下AD7416的數(shù)據(jù)手冊,居然發(fā)現(xiàn)里面赫然寫著:測量精度0.25攝氏度!
所以說分辨率跟精度完全是兩回事,在這個(gè)溫度傳感器里,只要你愿意,你甚至可以用一個(gè)14位的AD,獲得1/16384的分辨率,但是測量值的精度還是0.25攝氏度^_^
所以很多朋友一談到精度,馬上就和分辨率聯(lián)系起來了,包括有些項(xiàng)目負(fù)責(zé)人,只會在那里說:這個(gè)系統(tǒng)精度要求很高啊,你們AD的位數(shù)至少要多少多少啊……
其實(shí),仔細(xì)瀏覽一下AD的數(shù)據(jù)手冊,會發(fā)現(xiàn)跟精度有關(guān)的有兩個(gè)很重要的指標(biāo):
DNL和INL。似乎知道這兩個(gè)指標(biāo)的朋友并不多,所以在這里很有必要解釋一下。
DNL:Differencial NonLiner——微分非線性度
INL:Interger NonLiner——積分非線性度(精度主要用這個(gè)值來表示)
他表示了ADC器件在所有的數(shù)值點(diǎn)上對應(yīng)的模擬值,和真實(shí)值之間誤差最大的那一點(diǎn)的誤差值。
也就是,輸出數(shù)值偏離線性最大的距離。單位是LSB(即最低位所表示的量)。
當(dāng)然,像有的AD如△—∑系列的AD,也用Linearity error 來表示精度。
為什么有的AD很貴,就是因?yàn)镮NL很低。
分辨率同為12bit的兩個(gè)ADC,一個(gè)INL=±3LSB,而一個(gè)做到了±1.5LSB,那么他們的價(jià)格可能相差一倍。
LSB(Least Significant Bit),意為最低有效位;
MSB(Most Significant Bit),意為最高有效位,
若MSB=1,則表示數(shù)據(jù)為負(fù)值,若MSB=0,則表示數(shù)據(jù)為正。
當(dāng)選擇模數(shù)轉(zhuǎn)換器(ADC)時(shí),最低有效位(LSB)這一參數(shù)的含義是什么?
有位工程師告訴我某某生產(chǎn)商的某款12位轉(zhuǎn)換器只有7個(gè)可用位。
也就是說,所謂12位的轉(zhuǎn)換器實(shí)際上只有7位。他的結(jié)論是根據(jù)器件的失調(diào)誤差和增益誤差參數(shù)得出的,
這兩個(gè)參數(shù)的最大值如下:
失調(diào)誤差 =±3LSB,
增益誤差 =±5LSB,
乍一看,覺得他似乎是對的。從上面列出的參數(shù)可知最差的技術(shù)參數(shù)是增益誤差(±5 LSB)。
進(jìn)行簡單的數(shù)學(xué)運(yùn)算,12位減去5位分辨率等于7位,對嗎?
果真如此的話,ADC生產(chǎn)商為何還要推出這樣的器件呢?
增益誤差參數(shù)似乎表明只要購買成本更低的8位轉(zhuǎn)換器就可以了,但看起來這又有點(diǎn)不對勁了。
正如您所判斷的,上面的說法是錯(cuò)誤的。
讓我們重新來看一下LSB的定義??紤]一個(gè)12位串行轉(zhuǎn)換器,它會輸出由1或0組成的12位數(shù)串。
通常,轉(zhuǎn)換器首先送出的是最高有效位(MSB)(即LSB + 11)。有些轉(zhuǎn)換器也會先送出LSB。
在下面的討論中,我們假設(shè)先送出的是MSB(如圖1所示),
然后依次送出MSB-1 (即 LSB + 10)和MSB -2(即LSB + 9)并依次類推。
轉(zhuǎn)換器最終送出MSB -11(即LSB)作為位串的末位。
LSB這一術(shù)語有著特定的含義,它表示的是數(shù)字流中的最后一位,也表示組成滿量程輸入范圍的最小單位。
對于12位轉(zhuǎn)換器來說,LSB的值相當(dāng)于模擬信號滿量程輸入范圍除以2^12 或 4,096的商。
如果用真實(shí)的數(shù)字來表示的話,對于滿量程輸入范圍為4.096V的情況,一個(gè)12位轉(zhuǎn)換器對應(yīng)的LSB大小為1mV。
但是,將LSB定義為4096個(gè)可能編碼中的一個(gè)編碼對于我們的理解是有好處的。
讓我們回到開頭的技術(shù)指標(biāo),并將其轉(zhuǎn)換到滿量程輸入范圍為4.096V的12位轉(zhuǎn)換器中:
失調(diào)誤差 = ±3LSB =±3mV,
增益誤差 =±5LSB = ±5mV,
這些技術(shù)參數(shù)表明轉(zhuǎn)換器轉(zhuǎn)換過程引入的誤差最大僅為8mV(或 8個(gè)編碼)。
這絕不是說誤差發(fā)生在轉(zhuǎn)換器輸出位流的LSB、LSB-1、LSB-2、LSB-3、LSB-4、LSB-5、LSB-6和 LSB-7 八個(gè)位上,而是表示誤差最大是一個(gè)LSB的八倍(或8mV)。
準(zhǔn)確地說,轉(zhuǎn)換器的傳遞函數(shù)可能造成在4,096個(gè)編碼中丟失最多8個(gè)編碼。
丟失的只可能是最低端或最高端的編碼。
例如,誤差為+8LSB ((+3LSB失調(diào)誤差) + (+5LSB增益誤差)) 的一個(gè)12位轉(zhuǎn)換器可能輸出的編碼范圍為0 至 4,088。
丟失的編碼為4088至4095。相對于滿量程這一誤差很小僅為其0.2%。
與此相對,一個(gè)誤差為-3LSB((-3LSB失調(diào)誤差)—(-5LSB增益誤差))的12位轉(zhuǎn)換器輸出的編碼范圍為3至4,095。此時(shí)增益誤差會造成精度下降,但不會使編碼丟失。丟
失的編碼為0、1和2。這兩個(gè)例子給出的都是最壞情況。在實(shí)際的轉(zhuǎn)換器中,失調(diào)誤差和增益誤差很少會如此接近最大值。
在實(shí)際應(yīng)用中,由于ADC失調(diào)或增益參數(shù)的改進(jìn)而使性能提升的程度微不足道,甚至可以忽略。
但是,對于那些將精度作為一項(xiàng)設(shè)計(jì)目標(biāo)的設(shè)計(jì)人員來說,這種假設(shè)太過絕對。
利用固件設(shè)計(jì)可以很容易地實(shí)現(xiàn)數(shù)字校準(zhǔn)算法。但更重要的是,電路的前端放大/信號調(diào)理部分通常會產(chǎn)生比轉(zhuǎn)換器本身更大的誤差。
通過上面的討論可以對本文開頭提到的錯(cuò)誤結(jié)論有一個(gè)更為全面而清晰的認(rèn)識。
事實(shí)上,上述的12位轉(zhuǎn)換器的精度約為11.997位。采用微處理器或單片機(jī)可以利用簡單的校準(zhǔn)算法消除這種失調(diào)和增益誤差,這對設(shè)計(jì)人員來說無疑是個(gè)好消息。
總結(jié)
以上是生活随笔為你收集整理的picpick尺子像素大小精度不够准确_精度与分辨率是一回事吗的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kwvcprojparser不是内部_在
- 下一篇: python多进程打印输出_python