一、介紹
自從力科公司發布具有真實硬件12bitsADC的高分辨率實時示波器HRO和HDO后,垂直分辨率已經成為[1]繼帶寬、采樣率、存儲深度后的第四大核心指標。《高分辨率示波器WaveRunnerHRO6Zi》一文闡述了:示波器的垂直分辨率受兩大因素影響:一是ADC位數,二是
示波器自身的噪聲和失真水平。這兩個因素都由示波器硬件決定。
雖然普遍用ADC的位數來描述示波器的垂直分辨率,但準確的參數是示波器整個系統的有效位數(ENOB)。ENOB與信號和噪聲失真比(SINAD)密切相關,兩者的數學關系為[3]
SINAD(indB)=6.02*ENOB+1.76
根據這個關系,SINAD大約每增加6dB,ENOB增加1bit。所以提高信噪比就能提高分辨率。
目前中示波器普遍具有這樣的功能:在示波器硬件性能定型的情況下,通過算法提高垂直分辨率。這些功能本質上都是對采樣后的數據進行數字信號處理,目的是提高信噪比,從而在理論上提高垂直分辨率。示波器內部實現這類算法的主體,有可能是軟件、DSP或者FPGA,它們都可認為是廣義的“軟件”。雖然算法可以有條件地提高垂直分辨率,但是需要付出代價:要么使用條件有限制,要么降低示波器的性能,要么引起波形失真。不可能僅僅依靠“軟件”就能達到硬件實現的性能,因為世上沒有免費的午餐。
二、常用算法原理和特點
梳理目前市面上各種品牌和型號示波器,在ADC采樣后改善分辨率的方法可以歸納為三種信號處理算法:平均,線性相位FIR濾波、分組平均。
1.平均(Average)
如果信號是周期可重復的,示波器每采集n段重復波形,把它們按觸發位置對齊,相加后除以n,得到1段平均后的波形,如下圖示意:
平均能降低隨機噪聲。如果平均前隨機噪聲的標準偏差為σ,則隨機噪聲的功率N=σ。假設信號功率為S。則信噪比SNR為
SNR(indB)=10*lg(S/N)
平均后隨機噪聲的標準偏差減小到σ/,則功率減小到N/n。而信號功率基本未變,此時信噪比(dB)
為
SNR(indB)=10*lg(n*S/N)=10*lg(S/N)+10*lg(n)
也就是信噪比(dB)提高了10lg(n)。
例如4次平均,信噪比可以提高大約6dB,分辨率提高1bit。64次平均,信噪比提高18dB,分辨率提高
3bit。
平均算法是zui簡單的分辨率改善方法,但有以下局限和代價:
1)只能用于周期信號。
2)平均只能降低隨機的、不相關的高斯白噪聲,對于相關的噪聲和干擾作用不大。
3)平均算法會顯著降低示波器波形更新率。例如欲將分辨率從8bit改善到12bit,需要每采集256次做一次平均,波形更新率降低不止256倍。
4)平均可能引起波形失真。每段波形是按觸發位置對齊,而觸發點在每段波形上的相對位置并不固定。因為噪聲會導致信號每次穿越觸發電平的相對水平位置不一樣,如下圖
觸發位置抖動的結果是每段波形被錯位相加,平均后波形失真。當信號本身的噪聲比較大時,失真現象更明顯。
2.線性相位FIR濾波(LinearPhaseFIRFilter)
噪聲在頻譜上通常分布得很寬。可以采用數字濾波的方法抑制信號帶寬以外的噪聲,從而提高信噪比、改善垂直分辨率。一種常用濾波器類型為線性相位FIR濾波。在力科示波器中通過“增強分辨率”(ERES,EnhancedResolution)功能可以打開這個濾波器。由于是數字濾波,被測信號不再局限于周期信號。在ERES功能里能夠直接選擇增強多少bit分辨率,其實就是選擇濾波器的帶寬。帶寬越小,信噪比改善得越多,增強的分辨率位數就越多。下表是增強的分辨率位數和濾波器帶寬的關系。
例如在采樣率為10GSa/s的情況下,如果要增強3bit,示波器帶寬減小到80MHz。這就是ERES方法需要付出的代價。
3.分組平均(GroupAverage)
這種算法在很多示波器里被稱為高分辨率采樣模式(HiRES,HighResolutionAcquisitionMode)。一些示波器也稱其為線性平均(LinearAverage),或者過采樣和線性降噪技術(Hypersampling&LinearNoiseReduction)。無論市場宣傳的名稱是什么,本質還是對ADC采樣后數據進行信號處理。這種算法的好處是也可以用于非周期信號。示波器以zui大采樣率采集波形,將一段波形的每n個采樣點分成1組,對1組中n個采樣點取平均得到1個數據點存入采集存儲器中。zui終在示波器上顯示的波形是樣點分組平均后的數據,樣點數量被抽取了n倍,如下圖示意:
分組平均本質上也是一種數字濾波。樣點抽取倍數越高,分辨率提升得越多。據某款示波器規格,當抽取倍數為16時,可由8bit提升到12bit。
同樣,分組平均提升分辨率的代價是性能受損和波形失真:
1)高采樣率和高垂直分辨率不可兼得。比如在8bit、40GSa/s的示波器上要實現12bit分辨率,處理后的采樣率只能到2.5GSa/s。要使處理后的采樣率達到5GSa/s,分辨率只能提升到11bit。
2)示波器帶寬和垂直分辨率也不可兼得。在上一條例子中,要實現12bit分辨率,帶寬從4GHz下降到500MHz。
3)工作在HiRes模式下的示波器,使用者不能直接選擇增強多少bit分辨率,它隨示波器的時間刻度動態變化。使用者不知道當前增強了多少分辨率、帶寬下降到多少。
4)分組平均算法對抑制高斯白噪聲有效果,而對于示波器ADC的INL(積分非線性)引起的噪聲沒有抑制作用。
5)信號比較陡峭的邊沿在HiRES模式下,容易欠采樣。例如信號邊沿原本有16個采樣點,為了提高4bit分辨率,需要每16個點取平均。結果邊沿只剩下1個樣點。不少示波器以sin(x)/x方式做內插,在欠采樣的情況下會導致吉布斯現象,使本來正常的邊沿出現過沖、振鈴:
6)分組平均也會顯著降低示波器波形更新率。
7)分組平均可以有條件地提升分辨率,卻不能改善示波器的準確度。例如具有硬件12bitADC示波器的直流增益精度可以達到±0.5%。采用過采樣和線性降噪技術提升到12bit分辨率的示波器,直流增益精度仍然是8biADC示波器的水平:±2%
下圖是三種測試場景,被測信號都是正弦波峰值附近存在一個微小變化。對波形做局部放大后的效果:
三、結論
無論什么形式的算法,在付出一定代價后,只是在數學意義上提升了垂直分辨率,測量微小信號的能力是有限的。當工程師身邊只有8bitADC示波器的時候,可以通過這些方法來改善一下信噪比。當真正需要高分辨率、高準確度測試的場合,無疑還是需要具有真實硬件12bitADC的示波器。在12bitADC示波器上也可以開啟這類算法。軟硬兼施,效果更好。