將觀察的模擬量轉(zhuǎn)換成數(shù)字量,給觀察和處理到來很大的便利。比如一個數(shù)字溫度計可以清晰的顯示出你的體溫,這要比判斷水銀溫度計方便。
數(shù)字溫度計
但這里也會出現(xiàn)一個問題,信號轉(zhuǎn)換成數(shù)字信號會產(chǎn)生量化誤差,會降低數(shù)值的精度。比如數(shù)字溫度計只顯示到 1 攝氏度,則在攝氏度范圍內(nèi)所顯示的溫度都一樣,這對判斷你是否發(fā)燒有時也會帶來麻煩。
那么該如何提高 ADC 轉(zhuǎn)換精度,降低量化誤差對于測量結(jié)果的影響呢?
1.ADC 的信噪比(SNR)
ADC 將模擬信號轉(zhuǎn)換成有限個數(shù)的數(shù)字編碼,通常取連續(xù)區(qū)間的整數(shù)。比如 0~255 就構成了 8 位 ADC 的數(shù)字編碼集合。變化后的數(shù)字就與原來模擬信號產(chǎn)生了量化誤差。對于理想 ADC,這種量化誤差一般位于 LSB。
如果在每次采樣之間信號變化若干個量化區(qū)間,而且變化與采樣時間不同步,這種量化誤差基本上呈現(xiàn)一種白色噪聲,取值均勻分布在從直流到采樣頻率一半的頻率區(qū)間內(nèi)。
ADC 可以表示成兩個階段時間采樣和幅度量化
SNR 表征了 ADC 結(jié)果中的信號能量與噪聲能量的比值。在上述理想假設下,僅僅考慮量化誤差所產(chǎn)生的噪聲,對于滿量程模擬信號經(jīng)過量化之后對應的信噪比有下面公式給出:
其中 N 是 ADC 的位數(shù),也稱為 ADC 的分辨率。當轉(zhuǎn)換結(jié)果的 SNR 增加時,對應的 ADC 的有效位數(shù)也增加了,一個 ADC 的有效位對應 6dB 的信噪比。所以前面提到的減少數(shù)字量化誤差本質(zhì)上是如何提高轉(zhuǎn)換結(jié)果中 SNR。
2.Nyquist 定理和過采樣
Nyquist 定理,也稱為 Shannon 采樣定理,表明如使用均勻時間間隔的信號采樣完全恢復原來的信號,采樣頻率至少比原信號最高頻率大兩倍,否則就會在采樣的數(shù)據(jù)中出現(xiàn)“混疊”虛假的干擾信號。
為此,實際應用中常常在采樣前使用低通濾波器將高于采樣頻率一半的成分去掉,做到這一點有時比較困難。
在下面的動圖中,可以看到不同比例下所顯示的圖片因為空間像采樣頻率不滿足 Nyquist 頻譜而出現(xiàn)的混疊現(xiàn)象。
二維圖片中的混疊現(xiàn)象
過采樣就是采用比 Nyquist 頻率高多的采樣速率采集信號,然后再對信號進行平滑濾波、下采樣,這樣就可以避免使用抗混疊低通濾波器了。
3. 使用白噪聲進行過采樣
3.1 帶有白噪聲時過采樣后的信噪比(SNR)
如果采樣后的數(shù)據(jù)轉(zhuǎn)化成數(shù)字信號時的量化誤差為白噪聲,那么它的能量密度均勻分布在直流到 Nyquist 采樣頻率一般的頻率空間里,它與是采樣頻率之間沒有關聯(lián)。
當使用高的采樣速率的時,量化噪聲分布在更寬的頻率范圍內(nèi)。如下圖所示:
過采樣如何影響量化噪聲的
根據(jù)上圖所示,當采用更高的采樣頻率時,同樣的量化噪聲能力(綠色方框所示)就會分布在更寬的頻率空間(灰色方框),這樣就只有少部分的噪聲落在信號頻譜范圍內(nèi)了:。而信號頻譜范圍外的噪聲可以通過數(shù)字低通濾波器消除掉。
減少了量化噪聲,從而也就帶來了 ADC 有效的轉(zhuǎn)換位數(shù)。使用表示過采樣比率,即實際采樣速率除以 Nyquist 采樣頻率。那么通過過采樣所帶來的信噪比的變化為:
因此,每增加一倍的采樣頻率,就會提高信噪比 3dB,相當于提高了 ADC 個 bit。增加 6 個 dB 就可以提高 ADC 轉(zhuǎn)換精度 1 個 bit。
所以,假設需要增加 p 個 ADC 的有效轉(zhuǎn)換比特,那么所需要的采樣頻率為:
其中是當前 ADC 的采樣頻率。
3.2 數(shù)據(jù)抽取(Decimation)
通常情況下的頻率是將 m 個數(shù)據(jù)相加之后再除以 m。這相當于對數(shù)據(jù)進行了低通平滑濾波,將信號中的毛刺去掉。
這種簡單的平均并不能夠帶來結(jié)果的 bit 位的增加。數(shù)據(jù)抽取(Decimation)和過采樣結(jié)合可以增加數(shù)據(jù)的有效位數(shù)。應用中,將個數(shù)據(jù)累加,得到 N+2p 位的數(shù),然后在右移 p 位,便可以得到 N+p 位的數(shù)據(jù)了。
3.3 什么時候采用過采樣可以提高 ADC 的有效位數(shù)?
為了能夠使得過采樣加數(shù)據(jù)抽取可能夠提高 ADC 的有效位數(shù),需要滿足以下條件:
在輸入信號中應該有一定的噪聲,具有在感興趣頻率范圍內(nèi)均勻分布的高斯分布的噪聲;
噪聲的幅值應該能夠使得信號 ADC 結(jié)果最后一位跳動,否則所采集到的數(shù)值都一樣,經(jīng)過平均抽取就無法有效提高精度了。
通常情況下 ADC 內(nèi)部的熱噪聲以及輸入信號中的噪聲就可以滿足上面的要求,否則就要另外增加白色噪聲,此時成為噪聲擾動(dither)方法。那么就有兩個問題出現(xiàn)了:
第一就是如何判斷采集過程中有復合高斯分布的白噪聲?
如果沒有如何人工添加?
對于第一個問題在實際中可以通過對一個直流信號進行采集數(shù)據(jù)的直方圖統(tǒng)計,通過它的分布,可以進行 Gause 檢驗驗證是復合高斯白噪聲分布的。下面兩個圖顯示了兩種可能的情形。
數(shù)據(jù)直方圖分析
對于第二個問題,可以在需要添加噪聲的時候,將二極管,或者電阻所產(chǎn)生的熱噪聲注入到輸入信號中。此過程需要保證注入的噪聲與輸入信號之間不相關。因此在一些反饋系統(tǒng)中,這種直接注入白色噪聲的方法就會失效。
下圖顯示了單片機采集 1.65V 直流電壓所得到的 ADC 數(shù)據(jù),在 EXCEL 表格中繪制的直方圖分析表格,它反映了單片機 ADC 內(nèi)部的熱噪聲。
對于 DC=1.65V 采樣的 ADC 結(jié)果的直方圖分析
使用三角波信號擾動進行過采樣
為了使得過采樣數(shù)據(jù)能夠提高有效 ADC 位數(shù),需要采樣數(shù)據(jù)能夠在多個數(shù)字之間變動。如果輸入數(shù)據(jù)噪聲非常小,采集到的 ADC 數(shù)據(jù)是穩(wěn)定的,此時就需要額外在信號中加入波動的噪聲,以使得采集到的數(shù)據(jù)能夠有變動。
一種常使用的擾動噪聲信號就是三角波信號。理論分析可知,加入的三角波在周期上應該等于 ADC 采樣時間再乘以過采樣倍數(shù),三角波在幅度上為 n+0.5LSB,n 可以取 0,1,2,3。
如何增加三角信號來提高過采樣性能
如果輸入信號與加入的三角波信號不相關時,通過過采樣可以得到結(jié)果的信噪比為:
因此,每增加一倍的采樣率,就可以增加一位有效 ADC 位數(shù)。但實際上,這個增加的位數(shù)有可能減少,因此一般情況下,如果需要增加 p 位的 ADC 分辨率,施加三角波擾動過采樣的頻率應該等于:
對比前面通過白噪聲過采樣的情況,再增加同樣 ADC 有效位數(shù)時,使用三角波擾動所需要增加的采樣頻率更低。
不像前面所分析的白噪聲,可以直接由電子器件內(nèi)部的熱噪聲產(chǎn)生。如果需要在輸入信號中添加三角波形,則需要借助外部的電路完成。下面顯示了在原有的信號采集調(diào)理電路回路中,通過 RC 電路將單片機所產(chǎn)生的 PWM 方波信號轉(zhuǎn)換成三角波,然后在疊加在輸入信號的幅值上去。
使用硬件電路完成增加三角波擾動
雖說使用外加三角波擾動可以更加有效提高采樣位數(shù),但它要求三角波的周期與采樣周期之間保持有效的倍數(shù)關系,這往往需要對單片機內(nèi)部的時鐘設置有了更高的要求,有的時候可能無法滿足。
如果單片機電路中還帶有 DAC 模塊,則可以利用 DAC 產(chǎn)生所需要的白噪聲,或者三角波噪聲,疊加到采樣信號中,通過過采樣有效提高采樣的有效位數(shù)。
在本學期“信號與系統(tǒng)”課程中,關于采樣定理的討論將會在第八周,第四周的內(nèi)容進行討論。
噪聲,有的時候會干擾信號被人討厭,但有的時候則會幫助澄清信息,改善 ADC 的精度。有噪聲的世界就是這么奇妙。