您的位置 首页 kreess

ADC/DAC(2)— 選ADC我們主要看什麼?

上篇文章我們講述瞭ADC和DAC是連接模擬世界和數字世界的橋梁,但橋梁有多種 – 有寬窄之分、快慢之分。同樣ADC和DAC也有很多公司提供不同種類的器件,如何從這些品類繁多

上篇文章我們講述瞭ADC和DAC是連接模擬世界和數字世界的橋梁,但橋梁有多種 – 有寬窄之分、快慢之分。同樣ADC和DAC也有很多公司提供不同種類的器件,如何從這些品類繁多的器件中選擇適合自己項目的器件?由於ADC和DAC的差異性還是比較大的,因此我們今天的文章就針對ADC來看一下:ADC – 將在時間上和幅度上都連續的模擬電信號在一定序列的時鐘信號的上升沿或下降沿對其幅度進行量化,生成能夠用數字表征的信號幅度值。如下圖:

直觀上理解,讓數字化的信息能夠盡可能不失真地表征原來的模擬信號信息,必須具備以下條件(先從靜態的信號看):對信號幅度的量化要足夠的精細,也就是要達到一定的細致程度,比如你向一個姑娘介紹對象,說一個身高1.75米的小夥身高一米多、不到兩米(隻用瞭10進制中的一個數字),姑娘肯定不滿意,即便你說1米7多、不到1米8(用瞭十進制中的2個數字),她還是不滿意,一定要知道他究竟是1.75米還是1.78米。如果你告訴他1.756m,她一定會覺得你吃飽瞭撐的,因為最後一個數字她並不關心,她也不相信最後一個數字的準確性(1天24小時內會發生變化),因此描述小夥子身高的精度隻需要3位數(十進制),少瞭無法滿足系統的要求,多瞭在這種場景下失去瞭意義,本身也不準確。

ADC應用中比較直觀的就是對聲音和圖像的量化,就拿圖像來比方,如果你用一個bit表征一個像素點,那整個圖像就量化後就是黑白的,如果你用4bits來量化每個像素點,可以得到16級灰度的圖像,如果你對每個像素點分開三種顏色R、G、B分別以8位進行量化,則就可以得到普通肉眼分辨不出來細節的圖像 – 在電腦上屏幕上你能看到一個讓你想咬一口的蘋果,如果你使用瞭R、G、B三色都為8位的ADC進行量化的話。

要不要再精細地量化?更精細意味著耗費更多的bit數 – ADC價格增加、存儲空間也增加,未必給你的視覺效果帶來任何改善,除非某些用戶的眼睛對細節的辨別能力超級的強。當然現在的照相機對每個像素點進行采樣的分辨率遠高於8bit(14bit的ADC很常用),why?這在以後的文章中會講到,主要是為瞭得到足夠的動態范圍,你可以在後期對圖像進行亮度、對比度,乃至ISO等等進行調節,省去瞭ADC前面模擬電路的復雜設計。

結論 – 量化精度的選取,也就是ADC的位數- 分辨率是非常重要的一個指標,我們要根據實際要設計的系統的要求,綜合考慮到系統的其它因素以及成本等選定一個合適的位數。記住更多的位數未必給你更精準的信息,因為量化的過程取決於很多因素,量化後產生的誤差(error)可能讓你後面的位數沒有任何意義,比如一個人每天的身高從早上起床到晚上躺下其變化可能在1.75-1.76之間,任何1.75x中國的x都是由於采樣時間不同導致的模糊性,也就相當於ADC的量化誤差。想一下 – 量化誤差取決於哪些因素?1.分辨率 – 如果你用1位數,隻能說1米多,而1米-2米之間的所有不同都被模糊掉瞭,如果你用2位,則可以分辨的是1.7或1.8,1.7-1.8之間的所有不同也被模糊掉瞭,因此由於分辨率不夠就會導致量化的誤差,看下面的正弦波被不同位數的ADC量化後的數字表征,16bit可以非常精準地描述原來的模擬波形,而3bit的采樣則讓我們看到像樓梯臺階一樣的信號。當然這兩個波形的采樣時鐘頻率也不同。

2.線性度 – 你的量尺理論上應該是刻度均勻的,如果不均勻,用你的標尺測量出來的也就有瞭誤差,這種不均勻就是非線性,我們用的所有ADC都是通過將輸入電壓同內部的基準電壓進行比較來進行判決其所處的區間的,如果每個刻度比較的電路不一致,自然就會造成非線性誤差,是電路就會有不一致性,因此非線性的誤差一定是存在的,隻是不同的工藝、不同的廠商的不同器件其線性度也不同,因此非線性誤差也就不同,一般器件會用積分非線性(INL)和差分非線性(DNL)兩個指標來進行表征;比如ADI公司的8位ADC器件AD9283在其數據手冊中給出的DNL和INL的數據 – 由於非線性導致的誤差相當於最小分辨精度(LSB)的值。

3.供電噪聲 任何被用來做基準的東西都應該是穩定不變的,比如ADC和DAC中使用的參考電壓(內部轉換成參考電流),隻要是電源供電的電壓,就無法100%保證其沒有波動(噪聲),無論是ADC的模擬電路供電電壓,還是參考基準源的電壓,都需要盡可能保持幹凈,其上面的噪聲一定會導致量化誤差。

4.時鐘邊沿抖動(Jitter)- 就如你測量一個人的身高一樣,如果被測的人非常規律,你在他每天早上7點起床的時候進行測量,則每次得到的結果都應該是一致的,但如果你有時候6點半測量,有時候是7點半測量,結果會一致麼?一定會發生與本該得到的結果有偏差的現象。ADC用周期性時鐘進行采樣的時候理想狀態下每個時鐘的時鐘沿之間的間隔是固定的,但實際的情況 -由於時鐘產生電路的電源噪聲、傳輸途中遭遇的阻抗失配、電磁諧振等,都會導致時鐘的相位噪聲,也就是時鐘的沿發生抖動(學名Jitter),實際的采樣點和理論上的采樣點發生瞭偏移,得到的數據自然也就不是本該出現的位置的信息,這種由於時鐘相位噪聲導致的誤差在某種情況下會嚴重到你使用更高的精度失去瞭意義,可以想像,越是變化快,變化幅度大的模擬信號由於時鐘抖動帶來的影響越大,低頻信號受到的影響較低,直流信號不受影響。如下表,可以這樣解讀 – 如果你對10MHz的模擬信號使用10位的ADC進行模數轉換,其時鐘的邊沿抖動不能超過31.1ps;也可以這麼講,如果你采用的時鐘信號由於種種原因,隻能保證到30ps以內的邊沿抖動,你選用超過10位的ADC對模擬帶寬為10MHz的信號進行采樣是沒有意義的,隻會浪費錢。

基於以上種種可能導致的誤差, 歸根結底是你要選用多少位數精度的ADC,很多ADC器件數據手冊都會給出ENOB這個指標,也就是該器件在實際的使用中能夠保證到的有效的位數(Effective number of bits)。

以上是靜態信號的量化,但我們處理的信號多數都是幅度隨時間發生變化的,根據傅立葉分析,任何一個信號都可以分解為多個不同頻率的周期性信號的疊加,這就如同一群人散步,不同的身高,每個人不同的速度(假設每個人的速度是勻速的)。我們將這些不同的頻率所處的范圍稱之為信號占用的頻帶。要對這些信號進行量化,根據奈奎斯特定律(不知道的自己去查資料進行補習),隻要我們的采樣頻率高於這個模擬信號所占帶寬的兩倍以上就可以準確表征模擬信號所攜帶的信息,這就是為什麼我們會看到對音頻采樣有個44.1KHz這麼一個奇怪的頻率,原因呢?人能聽到的音頻信號的最高頻為20KHz,2倍多一點 – 選擇瞭44.1KHz或48KHz。

這點會讓很多人感到費解 – 一個周期的正弦波隻用2個以上的點就可以表征?即便是3個點怎麼畫也感覺出來的波形怪怪的,常規上對一個1MHz的模擬信號采樣,怎麼也要10Msps吧?用10個點描出一個周期的波形才覺得踏實啊。看下面的圖,由於采樣頻率不夠導致采樣後的結果跟原來的信號相差十萬八千裡。

其實在滿足瞭奈奎斯特采樣定律之後采集的數據可以在數字域通過各種內插算法恢復出非常漂亮的波形,補齊因每個周期采樣點不多導致的波形失真。

針對不同信號采用不同采樣頻率還有一些概念比如Dithering、Oversampling等技術以提升ENOB,由於篇幅限制在此不專門做介紹,有興趣的朋友可以自行搜索一些相關的文章來理解一下。

選型的時候在性能方面除瞭我們要對ADC的采樣精度(bits)、最高能支持的轉換率(sps)格外關註外,也要看其數據手冊中具體使用場景下給出的一些性能參數,比如INL、DNL、ENOB等等。

另外模擬信號的接口方式、數據的接口方式、供電電壓、是否內置參考電壓源、功耗、價格等都是我們在具體的項目中要綜合考慮的要素。

END

硬禾團隊一直致力於給電子工程師和相關專業的同學,帶來規范的核心技能課程,幫助大傢在學習和工作的各個階段,都能有效地提升自己的職業能力。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

返回顶部