理解ADC積分非線性(INL)誤差
了解積分非線性(INL)規(guī)范及其與模數(shù)轉(zhuǎn)換器(ADC)誤差的關(guān)系。
本文引用地址:http://www.ex-cimer.com/article/202409/462860.htm三個參數(shù),即偏移誤差、增益誤差和INL,決定了ADC的精度。偏移和增益誤差可以校準(zhǔn)出來,這讓我們把INL作為主要的誤差因素。INL規(guī)范描述了實際傳遞函數(shù)的轉(zhuǎn)變點與理想值的偏差。
1 什么是積分非線性(INL)?
理想的ADC具有均勻的階梯式輸入輸出特性,這意味著每次轉(zhuǎn)換都發(fā)生在距離前一個轉(zhuǎn)換1 LSB(最低有效位)處。然而,對于真實世界的ADC,步驟并不一致。例如,考慮圖1所示的傳遞曲線。
圖1 ADC的傳輸曲線示例
步長與理想值的偏差由微分非線性(DNL)規(guī)范表征。然而,DNL誤差不能完全描述傳遞函數(shù)與理想響應(yīng)的偏差,因為我們獲得的響應(yīng)取決于正負(fù)DNL誤差在不同代碼中的傳播方式。INL規(guī)范允許我們描述代碼轉(zhuǎn)換與其理想值的偏差。為了計算代碼k的INL,我們可以使用以下方程式:
其中Ta(k)和Tidal(k)分別表示從代碼k-1到k的實際和理想過渡;“理想步長”是ADC的LSB。對于上述示例,從代碼1(001)到代碼2(010)的實際轉(zhuǎn)換發(fā)生在理想轉(zhuǎn)換之上0.125 LSB處。因此,代碼2的INL是INL(2)=+0.125 LSB。
從這里,我們可能會問,下一個轉(zhuǎn)換(從代碼2到3)是什么?注意到從代碼1到2的轉(zhuǎn)換發(fā)生在理想值以上0.125 LSB處,并考慮到代碼2的寬度誤差(或DNL)為+0.25 LSB,我們可以推斷出從代碼2到3的轉(zhuǎn)換應(yīng)該發(fā)生在理想值以上0.375 LSB處。因此,我們得到INL(3)=+0.375 LSB。如您所見,代碼3的INL等于代碼1和2的DNL之和:
將上述分析擴展到其他代碼,很容易通過應(yīng)用以下方程來驗證第m個代碼的INL:
INL代表DNL誤差的累積效應(yīng)。在計算DNL和INL值時,我們假設(shè)ADC的偏移和增益誤差已經(jīng)校準(zhǔn)。結(jié)果,第一個代碼(代碼1)和最后一個代碼的INL為零。對于代碼0,未定義INL。
2 表示ADC INL信息
就像DNL一樣,我們可以將INL信息表示為INL與代碼值的關(guān)系圖。對于上述示例,我們得到如圖2所示的下圖。
圖2 顯示INL與代碼值的示例圖
INL通常也表示為所有代碼的最小值和最大值。我們假設(shè)的ADC的INL在-0.71 LSB和+0.5 LSB之間。INL圖不僅表示ADC的線性性能,還揭示了ADC內(nèi)部架構(gòu)的一些信息。例如,子范圍ADC具有三角形INL圖(圖3(a)),而閃存ADC通常具有隨機模式(圖3)。
圖3 子范圍ADC三角形INL圖(a)和閃存ADC隨機模式圖(b)的示例。圖片由M.Pelgrom提供
3 INL: ADC量化誤差之外的誤差
值得注意的是,INL除了指定ADC的量化誤差外,還指定了一個誤差。由于ADC將連續(xù)的模擬輸入范圍轉(zhuǎn)換為幾個離散的輸出碼,即使是理想的ADC也會在系統(tǒng)中固有地引入一些誤差,稱為量化誤差。如果我們將斜率為1的斜坡輸入應(yīng)用于ADC,我們可以從輸入中減去輸出代碼的模擬等效值,以找到量化誤差。如圖4所示。
圖4 顯示量化誤差的示例圖
在圖4中,綠色曲線顯示了斜坡輸入,藍(lán)色臺階表示理想ADC產(chǎn)生的代碼的模擬等效值。然而,圖4中的下圖顯示了鋸齒形的量化誤差。讓我們看看非線性如何影響誤差項。如果我們將斜坡輸入應(yīng)用于圖1中的非理想特征曲線,我們會得到以下誤差波形(圖5)。
圖5 示例圖顯示了ADC輸出代碼和理想變換(a)和誤差波形(b)的模擬等效值
圖5(a)中的紫色步驟顯示了ADC輸出代碼的模擬等效值,藍(lán)點描繪了均勻階梯響應(yīng)的理想過渡點。例如,考慮從代碼1到代碼2的轉(zhuǎn)換。如果這種轉(zhuǎn)換發(fā)生在理想點(點A),則代碼1的最大負(fù)誤差將為-0.5 LSB。由于INL(2)=+0.125 LSB,從代碼1到代碼2的實際轉(zhuǎn)換發(fā)生在理想值以上+0.125 LSB處。由于這種延遲的轉(zhuǎn)變,在轉(zhuǎn)變點(點B),綠色曲線和ADC輸出之間的差變得大于0.5LSB。通過檢查該圖,您可以確認(rèn)B點的誤差由下式給出:
請注意,雖然這種非理想效果將代碼1的誤差擴展到-0.625 LSB,但它將下一個代碼(代碼2)的誤差上限降低到0.5 LSB-0.125 LSB=+0.375 LSB。您可以在D點看到由INL(3)=+0.375 LSB引起的誤差波形的類似變化。
讓我們檢查代碼6,看看負(fù)INL如何影響錯誤(INL(6)=-0.71 LSB)。在這種情況下,(點F)處的實際轉(zhuǎn)變發(fā)生在理想值(點E)以下0.71 LSB處。由于ADC輸出的增量早于預(yù)期值,因此會產(chǎn)生較大的正誤差。如錯誤圖所示,代碼6的錯誤可能高達(dá):
對于理想的ADC,量化過程會產(chǎn)生±0.5 LSB的誤差。然而,對于實際的ADC,量化過程和INL都會導(dǎo)致系統(tǒng)的整體誤差。換句話說,INL是超出量化誤差的誤差。
到目前為止,我們考慮的INL定義可能是本規(guī)范中最有用和最常見的定義。然而,應(yīng)該指出的是,ADC制造商的教科書和技術(shù)文件中有時會提到一些其他定義。為了避免任何混淆,我們將在本文的其余部分了解INL的其他常見定義。
4 重新定義INL代碼:不同但相同的定義
在我們繼續(xù)其他定義之前,值得一提的是,人們可以用稍微不同的方式查看圖1中使用的定義。與其將INL定義為代碼轉(zhuǎn)換與其理想值的偏差,不如將其定義為代碼過渡與穿過第一個和最后一個代碼轉(zhuǎn)換的直線的偏差。如圖6所示。
圖6 顯示實際響應(yīng)和理想響應(yīng)之間代碼偏差的圖
在圖6中,點A和B是第一個和最后一個過渡點。由于我們假設(shè)在INL計算之前偏移和增益誤差為零,因此點A和B對應(yīng)于理想和實際的傳遞函數(shù)。如您所見,穿過點A和B的線也穿過理想特性的所有其他過渡點(圖中的藍(lán)色曲線)。因此,實際過渡點與其相應(yīng)理想過渡的偏差等于實際過渡點與穿過點A和B的直線的偏差。一些參考文獻(xiàn),如《高速模數(shù)轉(zhuǎn)換》一書,使用這條直線來定義ADC INL。此外,請注意,此參考線與前幾篇文章中介紹的ADC的線性模型(圖中的綠線)不同。
5 定義INL——代碼中心線定義
對于這種類型的定義,ADC傳輸特性是基于穿過ADC碼中心的直線來定義的。圖7顯示了如何使用代碼中心線定義INL。
圖7 使用代碼中心線定義INL。圖片由R.Plassche提供
在上述示例中,對角線是穿過理想ADC步長中點的線(在本系列文章中,我們將其稱為ADC的線性模型)。如圖所示,實際步長中點與直線的偏差被視為該代碼的INL誤差。
這個例子顯示了這個定義的一個缺點。如您所見,代碼1101的相鄰轉(zhuǎn)換偏離了理想值。然而,由于1101的測量碼中心與理想值一致,因此該碼的INL為零。根據(jù)圖1中使用的定義,代碼1101的INL將為非零。
作為旁注,上圖取自魯?shù)稀し丁さ隆て绽岬臅?。魯?shù)鲜鞘澜缰哪M設(shè)計師和許多電路和電路思想的發(fā)明者,如斬波器和穩(wěn)定放大器,這些電路和思想在今天被廣泛使用。
另一個基于代碼中心的定義如圖8所示。
圖8 顯示代碼中心線定義的示例圖。圖片由M.Demler提供
在這種情況下,用于計算INL誤差的參考線是穿過實際傳遞函數(shù)第一步和最后一步中點的線。對于三位ADC,這是穿過代碼001和110中點的線。實際步長中點與這條直線的偏差被認(rèn)為是該代碼的INL誤差。
在這個特定的例子中,ADC傳遞函數(shù)具有交替的寬碼和窄碼,使得從第一個和最后一個碼獲得的參考線與所有碼的中點相交。因此,所有代碼的INL錯誤均為零。這再次突顯了基于代碼中心的定義的缺點,即在某些情況下無法描述傳遞函數(shù)的非線性。
本文中討論的INL定義被歸類為基于端點的定義,因為它們只使用第一個和最后一個代碼來推導(dǎo)參考線。定義INL誤差的另一種方法是最佳擬合方法。在這種情況下,使用穿過所有代碼的直線擬合作為參考線。本系列的下一篇文章將詳細(xì)研究最佳擬合方法。
(注:本文登于《EEPW》2024年10期)
評論