為何DAC和ADC回應會發生下垂?

作者 : Kendall Castor-Perry,Planet Analog

在繪製某個訊號處理系統的頻率回應時,是否遇到過意外下垂(droop)的情況——原本預計它是平坦的(或至少跟所設計的曲線差不多),但結果卻平穩而慢吞吞地滾離了目標值,而讓你大失所望?如果你遇到過這種情況,就是受到了sinc()頻率響應的影響…

在繪製某個訊號處理系統的頻率回應時,是否遇到過意外下垂(droop)的情況——原本預計它是平坦的(或至少跟所設計的曲線差不多),但結果卻平穩而慢吞吞地滾離了目標值,而讓你大失所望?如果你遇到過這種情況,就是受到了sinc()頻率響應的影響,以下來看看具體情況。

這個下垂問題可能會在採樣資料系統的輸入和輸出中出現,先來看一下輸出。如果想要將一串樣本值轉換回類比訊號,那麼可以將這些數位樣本送到DAC。現在,大多數DAC IC和模組都具有「保持」(held)輸出,也就是說,當它們接收到一個新的數位樣本時,輸出電壓會迅速變為相應的新值並保持在那裡,直到出現下一個樣本。這種現象非常普遍,以至於許多工程師會認為這是正常現象,並認為此類DAC的輸出電壓以某種方式正確地代表了樣本流(除了有一些令人討厭的高頻雜訊外)。

事實並非如此。這種「保持」過程會使這種系統的頻率回應與僅在每個採樣時刻非常短暫地確定輸出電壓的系統不同,這種尖峰輸出電壓在實際應用中很不方便,這就是為什麼我們很少遇到它。

將每個樣本的電壓擴展至「填充可用的空間」,是零階保持器的一個示例。這種系統的輸出頻譜等於理想的尖峰輸出系統的頻譜乘以兩個採樣點之間矩形脈衝的頻譜,亦即其寬度與採樣間隔相等。這樣的矩形時間回應與具有sinc()特性的頻率回應對應,sinc(x)是sin(x)/x的縮寫,而一個域中的矩形與另一個域中的sinc()之間存在傅立葉(Fourier)鏡像對應,這不僅在訊號理論而且在整個物理學都非常常見。

計算sinc函數的值——參數x的值是π乘以訊號頻率(f)與採樣頻率(fs)之比,即sinc(πf/fs)——可知在大約fs的0.444倍處,下垂已經達到-3dB。圖1顯示在每秒1個樣本(sps)的採樣速率下sinc()下垂的頻率效應,請注意,它在取樣速率倍數的頻率處具有深而窄的陷波。

圖1 每秒1個樣本的零階保持器的sinc()回應,從中可以看到在採樣頻率倍數處具有深陷波。

現在來看時域當中的情況。圖2顯示了一個0.444Hz正弦波,以及每秒對其採樣一次的結果。樣本所達到的峰值顯然是輸入電壓的峰值,但是,隨著採樣時脈在訊號上「走動」,某些區域的低輸出電壓會持續一段相當長的時間。

圖2 以每秒1個樣本的速度採樣並保持的0.444Hz正弦波,從中可看到具有衰減峰值的長段。

0.444Hz訊號仍然存在,但由於某些能量已移至較高頻率的「影像(images)」中,因此其水準已經降低了,如圖3所示。可以看到輸入訊號的單個傅立葉分量會比輸出訊號中0.444Hz分量的值高3dB。

圖3 以每秒1個樣本的速率採樣並保持的0.444Hz正弦波的頻譜圖,表示原始訊號中的某些能量如何分佈在多個影像上。

得出的結論是,採樣正弦波的峰峰值不是衡量基頻所含能量的好方法。相反,隨著輸入頻率的增加,輸出訊號中的能量會越來越多地逐漸駐留在這些較高頻影像分量上——這些分量是我們通常試圖濾除的汙物,以便獲得良好的乾淨輸出訊號,因此就出現了下垂。

請注意,專為音訊市場設計的現代DAC不會出現這個問題。這是因為它們每個樣本不只更新一次,然後保持訊號。它們在轉換器的內部深處運作得更快,然後運用數位濾波技術來產生輸出,這樣在偶然檢查中就完全看不到被採樣的現象。獲得具有超平坦頻率回應的音訊DAC非常容易,這也讓工程師容易忘記「老式」採樣DAC不具有這種平坦回應特性。

這就是系統輸出部分的「原因」。當在數位域中分析資料而沒有回到類比狀態時,輸入通路是否還會導致可能檢測到的下垂?好吧,是的,有時候可以,來看看這種情況。

如果使用的是採樣ADC,那麼答案通常是「不用擔心」。這種ADC會在短暫的時間「縫隙」內拍攝輸入訊號的快照,通常,這個縫隙比兩次採樣之間的時間要窄得多,因此它對頻率回應的影響不明顯。但是,如果使用的是針對工業儀器儀錶應用的Δ-Σ ADC,則下垂的幅度可能會超出預期。

Δ-Σ ADC具有下垂頻率回應的原因在於,它們用來平滑其前端「調變器」(modulator)中快速脈衝流的均值濾波器,具有與上述零階保持器類似的脈衝回應。實際上,在任何給定的頻率下,回應的下垂通常會惡化2~4倍,這是因為所使用的濾波器通常至少實際上是兩到四個均值濾波器的級聯。

例如,對於我在高性能應用中使用多年的賽普拉斯(Cypress)PSoC 3和PSoC 5元件中的Δ-Σ ADC來說,該ADC的抽取濾波器具有四個級(在其大部分範圍內),因此具有sinc4()回應。因此,在任何給定訊號頻率下,它的下垂幅度都是圖1所示的四倍(以dB表示)。換句話說,它在0.443倍fs時為-12dB。當你真正想要的只是簡單的稱重時,這樣大的頻率回應平坦度偏差就無關緊要。但是對於大多數音訊、通訊和振動測量系統來說,這就非常可怕了。這個偏差在你把數位訊號送到DAC,產生額外的下垂訊號之前就已存在。

不過,這種響應效應也有好的一面。圖1表示,sinc()回應在fs的約1.43倍處「反彈」至約13.3dB。這提醒我們,簡單的平均器對於消除高頻變化來說並不是很好的濾波器,但是,如果將四個平均器串聯起來獲得sinc4(),則得到的阻帶回應僅會反彈至53dB左右,如圖4所示。這是非常有用的濾波,通常對於在沒有太多高頻干擾的時域中進行精確測量已經足夠了。

圖4 PSoC 3 ADC抽取濾波器的sinc4()回應的「反彈」比簡單的平均器要低得多。

因此,當需要平坦的頻率回應而又確實必須使用保持DAC、Δ-Σ儀錶ADC或同時使用兩者時,該怎麼辦?你現在應該期望本專欄中提出的解決方案將涉及一個濾波器,我不會讓您失望的!

(參考原文:Why DAC and ADC responses droop,by Kendall Castor-Perry)

本文同步刊登於EDN Taiwan 2020年10月號

掃描或點擊QR Code立即加入 “EETimes技術論壇” Line 群組 !

 EET-Line技術論壇-QR

發表評論