分辨率和精度這兩個,經常拿在一起說,才接觸的時候經?;鞛橐徽劇τ贏DC來說,這兩樣也是非常重要的參數(shù),往往也決定了芯片價格,顯然,我們都清楚同一個系列,16位AD一般比12位AD價格貴,但是同樣是12位AD,不同廠商間又以什么參數(shù)區(qū)分性能呢?性能往往決定價格,那么什么參數(shù)對價格影響較大呢?不好意思,我其實還是有些迷惑的,但是看了下篇文章,至少知道“精度”是有很大影響力的。該篇文章主要解釋ADC分辨率和精度的區(qū)別,非常詳細且易懂,值得一看,全文如下:
最近做了一塊板子,當然考慮到元器件的選型了,由于指標中要求精度比較高,所以對于AD的選型很慎重。
很多人對于精度和分辨率的概念不清楚,這里我做一下總結,希望大家不要混淆。
我們搞電子開發(fā)的,經常跟“精度”與“分辨率”打交道,這個問題不是三言兩語能搞得清楚的,在這里只作拋磚引玉了。
簡單點說,“精度”是用來描述物理量的準確程度的,而“分辨率”是用來描述刻度劃分的。從定義上看,這兩個量應該是風馬牛不相及的。(是不是有朋友感到愕然^_^)。很多賣傳感器的JS就是利用這一點來糊弄人的了。簡單做個比喻:有這么一把常見的塑料尺(中學生用的那種),它的量程是10厘米,上面有100個刻度,最小能讀出1毫米的有效值。那么我們就說這把尺子的分辨率是1毫米,或者量程的1%;而它的實際精度就不得而知了(算是0.1毫米吧)。當我們用火來烤一下它,并且把它拉長一段,然后再考察一下它。我們不難發(fā)現(xiàn),它還有有100個刻度,它的“分辨率”還是1毫米,跟原來一樣!然而,您還會認為它的精度還是原來的0.1毫米么?(這個例子是引用網上的,個人覺得比喻的很形象!)
回到電子技術上,我們考察一個常用的數(shù)字溫度傳感器:AD7416。供應商只是大肆宣揚它有10位的AD,分辨率是1/1024。那么,很多人就會這么欣喜:哇塞,如果測量溫度0-100攝氏度,100/1024……約等于0.098攝氏度!這么高的精度,足夠用了。但是我們去瀏覽一下AD7416的數(shù)據(jù)手冊,居然發(fā)現(xiàn)里面赫然寫著:測量精度0.25攝氏度!所以說分辨率跟精度完全是兩回事,在這個溫度傳感器里,只要你愿意,你甚至可以用一個14位的AD,獲得1/16384的分辨率,但是測量值的精度還是0.25攝氏度^_^
所以很多朋友一談到精度,馬上就和分辨率聯(lián)系起來了,包括有些項目負責人,只會在那里說:這個系統(tǒng)精度要求很高啊,你們AD的位數(shù)至少要多少多少啊……
其實,仔細瀏覽一下AD的數(shù)據(jù)手冊,會發(fā)現(xiàn)跟精度有關的有兩個很重要的指標:DNL和INL。似乎知道這兩個指標的朋友并不多,所以在這里很有必要解釋一下。
DNL:Differencial NonLiner——微分非線性度
INL:Interger NonLiner——積分非線性度(精度主要用這個值來表示)
他表示了ADC器件在所有的數(shù)值點上對應的模擬值,和真實值之間誤差最大的那一點的誤差值。也就是,輸出數(shù)值偏離線性最大的距離。單位是LSB(即最低位所表示的量)。
當然,像有的AD如△—∑系列的AD,也用Linearity error 來表示精度。
為什么有的AD很貴,就是因為INL很低。分辨率同為12bit的兩個ADC,一個INL=±3LSB,而一個做到了±1.5LSB,那么他們的價格可能相差一倍。分辨率和精度—即Resolution和Accuracy。這是兩個不同的參數(shù),卻經常被混用。并且ADC制造商在數(shù)據(jù)手冊中定義ADC性能的方式也令人困惑,可能會讓大家在應用開發(fā)中導致錯誤的推斷。但事實上,分辨率并不能代表精確度,反之亦然。
分辨率和精度
分辨率
分辨率(Resolution)是指ADC能夠分辨量化的最小信號的能力,用二進制位數(shù)表示。
比如:一個10位的ADC,其所能分辨的最小量化電平為參考電平(滿量程)的2的10次方分之一。即分辨率越高,就可以將滿量程里的電平分出更多份數(shù),得到的結果就越精確,得到的數(shù)字信號再用DAC轉換回去后就越接近原來輸入的模擬值。
所以,對于給定的一個具體ADC器件,其分辨率值是固定的。
精度
精度(Precision)是指對于給定模擬輸入,實際數(shù)字輸出與理論預期數(shù)字輸出之間的接近度(誤差值是多少)。換而言之,轉換器的精度決定了數(shù)字輸出代碼中有多少個比特表示有關輸入信號的有用信息。
有些ADC器件的datasheet中,會注明精度值或精度范圍。
對于給定的一個具體ADC器件,其精度值可能會受外界環(huán)境(溫度、干擾等)的影響而變化。
ADC的動態(tài)范圍精確度和分辨率
動態(tài)范圍被定義為系統(tǒng)可測量到的最小和最大信號的比例。
最大信號可為峰間值,零到峰(Zero-to-Peak)值或均方根(RMS)滿量程。其中任何一個都會給出不同值。例如,對于一個1V正弦波來說:峰間(滿量程)值=2V 零到峰值=1V
RMS滿量程=0.707×峰值振幅=0.707×1V=0.707V
最小信號通常為RMS噪聲,這是在未應用信號時測量的信號的均方根值。測量得到的RMS噪聲級別將取決于測量時使用的帶寬。每當帶寬翻倍,記錄的噪聲將增長1.41或3dB。
因此,一定要注意動態(tài)范圍數(shù)字始終與某個帶寬相關,而后者通常未被指定,這使記錄的值變得沒有意義。 器件的信噪比(SNR)和動態(tài)范圍多數(shù)時候被定義為同一個值,即:動態(tài)范圍 =SNR=RMS滿量程/RMS噪聲 并且經常使用dB作為單位,即動態(tài)范圍(dB) = SNR(dB) = 20*Log10 (RMS滿量程/RMS噪聲)
與使用RMS滿量程相反,一些制造商為了使圖表看上去更漂亮,引用零到峰或峰間值,這使得最終的動態(tài)范圍或SNR增加了3dB或9dB,因此我們需要仔細研究規(guī)范以避免誤解。
ADC分辨率由數(shù)字化輸入信號時所使用的比特數(shù)決定。對于16位器件,總電壓范圍被表示為(216 =65536)個獨立的數(shù)字值或輸出代碼。因此,系統(tǒng)可以測量的絕對最小電平表示為1比特,或ADC電壓范圍的1/65536。
如前所述,對于16位ADC分辨率,由于出現(xiàn)內部或外部誤差源,實際的精確度可能遠小于分辨率。因此,舉例而言,一個給定的16位ADC可能只能提供12位的精確度。對于這種情況,4LSb(最低有效位)表示ADC中生成的隨機噪聲。ADC動態(tài)范圍和ADC精確度通常指相同的內容。
理想ADC生成一個數(shù)字輸出代碼,是關于模擬信號電壓和電壓參考輸入的方程,其中
輸出代碼 = 滿量程電壓 × [VIN+ - VIN-] / [VREF+ - VREF-]
= 滿量程電壓 × [VIN /VREF]
每個數(shù)字輸出代碼表示參考電壓的一個小數(shù)值。
必須注意,ADC動態(tài)范圍應當匹配將要轉換的信號的最大振幅,這樣才能使ADC轉換精度最大化。現(xiàn)在假設將要轉換的信號在0V到2.5V間變化,而VREF等于3.3V。
16位ADC將包括216 = 65536個步驟或轉換,且最低有效位(LSB)=VREF/65536=3.3V/65536=50.35uV。對于理想的ADC,所有代碼都具有1LSB的相同寬度。
如果ADC的最大信號值為2.5V,那么意味著總共有49652次轉換(2.5V/1LSB)。對于這種情況,將有15884次轉換未被使用(65536-49652=15884)。這反應了轉換后的信號精確度損失或ENOB(有效位數(shù))損失(損失0.4位)。如果ADC參考(VREF)和ADC最大信號電平之間的差異增加,那么ENOB損失或精確度損失將加劇。例如,如果ADC最大信號電平為1.2V且VREF=3.3V,那么ENOB損失將為1.5位。因此ADC動態(tài)范圍一定要匹配最大信號振幅,以獲得最高精確度。
模數(shù)轉換器(ADC)宣稱具有“n”位分辨率,這常常被誤解為精確度。分辨率和精確度完全是兩個概念,兩者不能混用。應該由具體的應用來確定是否允許丟失代碼以及所需ADC精確度。