A/D轉(zhuǎn)換中的數(shù)字濾波抗干擾技術(shù)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1引言
儀器儀表設(shè)備在現(xiàn)場(chǎng)測(cè)試過程中,由于生產(chǎn)變量的測(cè)試數(shù)據(jù)對(duì)生產(chǎn)過程具有重要的意義,因此對(duì)各種物理量測(cè)試數(shù)據(jù)精度要求是比較高的。
在前向測(cè)試通道上采用的抗干擾措施中,濾波方法是抑制干擾的一種有效途徑。在工業(yè)現(xiàn)場(chǎng)中,可利用硬件濾波器電路或軟件濾波器算法提高測(cè)試數(shù)據(jù)的準(zhǔn)確性。硬件濾波措施是使用較多的一種方法,技術(shù)比較成熟,但同時(shí)也增加了設(shè)備,提高了成本,而且電子設(shè)備的增加有可能帶來新的干擾源。而采用軟件濾波算法不需增加硬件設(shè)備,可靠性高,功能多樣,使用靈活,具有許多硬件濾波措施所不具備的優(yōu)點(diǎn),當(dāng)然它需要占一定的運(yùn)行時(shí)間。
2常用的幾種軟件濾波方法
(1)中值濾波法:即每次
取N個(gè)AD值,去除其中的最大值和最小值而取剩余的N-2個(gè)A/D轉(zhuǎn)換值的平均值。
(2)程序判斷濾波法:即根據(jù)經(jīng)驗(yàn)確定出兩次采樣的最大偏差ΔY,若先后兩次采樣的信號(hào)相減數(shù)值大于ΔY,表明輸入為干擾信號(hào),應(yīng)去除;用上次采樣值與本次采樣值比較,若小于或等于Δ Y,表明沒有受到干擾,此時(shí)本次采樣值有效,這樣可以濾去隨機(jī)干擾和傳感器不穩(wěn)定而引起的誤差。
(3)利用格拉布斯(Grubbs)準(zhǔn)則進(jìn)行處理:根據(jù)誤差理論,要有效地剔除偶然誤差,一般要測(cè)量10次以上,兼顧到精度和響應(yīng)速度,取15次為一個(gè)單位。在取得的15個(gè)數(shù)據(jù)中,有些可能含有較大的誤差,需要對(duì)它們分檢,剔除可疑值,提高自適應(yīng)速度。對(duì)可疑值的剔除有多種準(zhǔn)則,如萊以達(dá)準(zhǔn)則、肖維勒(Chauvenet)準(zhǔn)則、格拉布斯(Grubbs)準(zhǔn)則等。以Grubbs準(zhǔn)則為例,它認(rèn)為若某測(cè)量值 xi對(duì)應(yīng)的殘差Vi滿足下式
|Vi|=| xi-|>g(n,a)× σ(X)
時(shí)應(yīng)將該數(shù)據(jù)舍去。式中,為n次采集到的AD 值的平均值,=(∑xi)/n ;σ(X)為測(cè)量數(shù)據(jù)組的標(biāo)準(zhǔn)差,由貝塞爾函數(shù)可得: σ(X)=[(∑Vi2 )/(n-1)]1/2;g(n, a)是取決于測(cè)量次數(shù)n和顯著性水平a (相當(dāng)于犯“棄真” 錯(cuò)誤的概率系數(shù)),a通常取0.01或0.05。通過查表可得:當(dāng) n="15時(shí)",a=0.05, g(n,a)=2.41。
把15次采集到的AD值存入一個(gè)數(shù)組中然后求平均值,計(jì)算殘差,求標(biāo)準(zhǔn)差σ(X)。將殘差絕對(duì)值與2.41倍的標(biāo)準(zhǔn)差σ(X)比較。剔除可疑值以后,再求平均值,求出新的平均值以后,應(yīng)再重復(fù)以上過程,驗(yàn)證是否還有可疑值存在。據(jù)我們對(duì)測(cè)量裝置大量的實(shí)際測(cè)試結(jié)果看,這樣做沒有什么必要,因?yàn)橐话阒挥械谝槐榧纯蛇_(dá)到要求。
然而這種方法也有它的不足, 利用Grubbs準(zhǔn)則需要處理大量的數(shù)據(jù),而在一般的工業(yè)現(xiàn)場(chǎng)測(cè)試設(shè)備中,儀表結(jié)構(gòu)大多采用嵌入式結(jié)構(gòu),如AVR單片機(jī)。這些MCU程序空間和數(shù)據(jù)空間有限,若處理大量數(shù)據(jù),難以滿足資源要求。而且,由于Grubbs準(zhǔn)則要求MCU進(jìn)行大量數(shù)據(jù)處理,使得系統(tǒng)降低了信號(hào)采集速率,影響實(shí)時(shí)性。3.AD7705內(nèi)置的數(shù)字濾波器
上述的幾種軟件濾波方法對(duì)抑制個(gè)別的異常數(shù)據(jù)方面具有一定作用,然而對(duì)于由工頻干擾引起的平穩(wěn)隨機(jī)干擾信號(hào)不太理想。隨著近幾年來集成電路的快速發(fā)展,一些數(shù)字濾波器也集成到數(shù)據(jù)處理芯片當(dāng)中,而且數(shù)字濾波器的設(shè)計(jì)參數(shù)通過軟件可編程實(shí)現(xiàn),具有極大的靈活性和實(shí)用性。
3.1 芯片介紹及應(yīng)用
目前市場(chǎng)上由美國AD公司新近推出的AD7705 就是一例[1]。它是內(nèi)置了數(shù)字濾波器的帶信號(hào)調(diào)理電路的16位A/D轉(zhuǎn)換器件,可應(yīng)用于低頻測(cè)量的2通道的模擬前端。該器件可以接受直接來自傳感器的低電壓輸入信號(hào),然后產(chǎn)生串行的數(shù)字輸出,利用∑-Δ轉(zhuǎn)換技術(shù)實(shí)現(xiàn)16位無丟失代碼性能。選定的輸入信號(hào)被送到一個(gè)基于模擬調(diào)制器的增益可編程專用前端,片內(nèi)數(shù)字濾波器處理調(diào)制器的輸出信號(hào),通過片內(nèi)控制寄存器可調(diào)節(jié)濾波器的截止點(diǎn)和輸出更新率,從而對(duì)數(shù)字濾波器的第一個(gè)陷波進(jìn)行編程。
AD7705有以下幾個(gè)特點(diǎn):
(1)差分輸入通道ADC,具有16位無丟失代碼和0.003%非線形誤差;
(2)MCU的接口為串行的三線接口模式;
(3)可編程增益1~128,信號(hào)極性以及更新速率配置有工作寄存器,通過對(duì)寄存器的操作可以選擇等;
(4) 器件還包括自標(biāo)定和系統(tǒng)校準(zhǔn)功能,以消除器件本身或系統(tǒng)的增益和編程誤差;
(5) 內(nèi)帶數(shù)字信號(hào)處理電路,由軟件可編程進(jìn)行設(shè)置。
引腳排列如圖1。
主要管腳說明如下:
MCLK IN:為轉(zhuǎn)換器提供主時(shí)鐘信號(hào),能以晶體/諧振器或外部時(shí)鐘的形式提供。
MCLK OUT:當(dāng)主時(shí)鐘為晶體/諧振器時(shí),晶體諧振器被接在MCLK IN和MCLK OUT之間;如果在MCLK IN引腳處連接一個(gè)外部時(shí)鐘,MCLK OUT將提供一個(gè)反向時(shí)鐘信號(hào)。
CS :片選,低電平有效的邏輯輸入。
A1N2(+)[A1N1]:對(duì)于AD7705,差分模擬輸入通道2的正輸入端;對(duì)于AD7706,模擬輸入通道1的輸入端。
A1N1(+)[A1N2]:差分模擬輸入通道1的正輸入端。
A1N1(-)[COMMON]:差分模擬輸入通道1的負(fù)輸入端。
A1N2(-)[A1N3]:差分輸入模擬通道2的負(fù)輸入端。
DRDY :邏輯輸出。這個(gè)輸出端上的邏輯低電平表示可從AD7705的數(shù)字寄存器獲取新的輸出字。
DOUT:串行數(shù)據(jù)輸出端。
DIN:串行數(shù)據(jù)輸入端。
SCLK:串行時(shí)鐘,施密特邏輯輸入。
從AD轉(zhuǎn)換器件發(fā)展趨勢(shì)來看,目前的16位A/ D轉(zhuǎn)換器除具有較高的轉(zhuǎn)換精度外,還具有高度的集成化、可編程等特點(diǎn) [2,3]。AD7705符合這些特點(diǎn),其簡化的應(yīng)用電路如圖2。
圖2給出了一個(gè)完整的前向測(cè)試通道,圖中 AD7705可直接接收傳感器輸入信號(hào),而不用外接信號(hào)調(diào)理電路,模擬量輸出增益可實(shí)現(xiàn)軟件可編程調(diào)節(jié)。輸出的AD值通過SPI三線口模式發(fā)送給MCU。圖中,MCU采用的是P87LPC764,它是 PHILIPS公司新推出的增強(qiáng)型8位單片機(jī),內(nèi)核與MCS51系列兼容,內(nèi)置電源檢測(cè)、看門狗WDT、 IIC總線等資源。 AD7705的數(shù)據(jù)接口采用了SPI接口標(biāo)準(zhǔn)。SPI 接口利用4根線可完成主從之間的數(shù)據(jù)通信。接口非常方便。這4根口線分別為時(shí)鐘線(SCLK)、數(shù)據(jù)輸入線(SDI)、數(shù)據(jù)輸出線(SDO)和片選線(CS)。DIN線用來向片內(nèi)寄存器傳輸數(shù)據(jù),而DOUT線用來訪問寄存器里的數(shù)據(jù)。SCLK是串行時(shí)鐘輸入,所有的數(shù)據(jù)傳輸都和SCLK信號(hào)有關(guān)。DRDY線作為狀態(tài)信號(hào),以提示數(shù)據(jù)什么時(shí)候已準(zhǔn)備好從寄存器讀數(shù)據(jù)。輸出寄存器中有新的數(shù)據(jù)時(shí),DRDY變?yōu)榈碗娖?,在?shù)據(jù)寄存器更新前,若DRDY變?yōu)楦唠娖?,則提示這個(gè)時(shí)候不讀數(shù)據(jù),以免在寄存器更新的過程中讀數(shù)據(jù)。CS作為片選信號(hào),在本電路中由于只用一片AD7705故CS端接地。
3.2 低通濾波及陷波處理
AD7705包含一個(gè)片內(nèi)低通濾波器,用它處理器件的∑-Δ調(diào)制器的輸出信號(hào)。所以,該器件不僅提供模數(shù)轉(zhuǎn)換功能,而且還具備一定的濾波能力。AD7705內(nèi)嵌了數(shù)字低通濾波器,數(shù)字濾波發(fā)生在模-數(shù)轉(zhuǎn)換之后,它能消除模-數(shù)轉(zhuǎn)換過程中產(chǎn)生的噪音。此外,數(shù)字濾波器容易實(shí)現(xiàn)可編程性。依靠數(shù)字濾波器設(shè)計(jì),用戶可以編程截?cái)囝l率和輸出更新頻率。
AD7705的數(shù)字濾波器是一個(gè)低通(sin x/x)3 濾波器(也稱為sinc3),其在Z 域的轉(zhuǎn)換功能可描述為,
在3次域可描述為,
圖3是截止頻率為15.72Hz的濾波器頻率響應(yīng),這一頻率與濾波器的第一個(gè)陷波頻率(50Hz)對(duì)應(yīng),這曲線顯示從直流到300Hz。在數(shù)字濾波器采樣頻率的兩邊這個(gè)頻率曲線各重復(fù)一次。這種濾波器響應(yīng)與一個(gè)平均濾波器的相似。因此,圖中的輸出速率為50Hz,濾波器的第一個(gè)陷波頻率為50Hz。這種(sin x/x)3 濾波器的陷波位置多次在第一個(gè)陷波的倍數(shù)處重復(fù)。在這些陷波處濾波器提供大于100dB 的衰減。
AD7705內(nèi)部帶有數(shù)字濾波器,具有抑制干擾功能。對(duì)于50Hz的工頻干擾在第一陷波位置已衰減180dB,這樣有效抑制工頻干擾。另外,我們?cè)诿看尾杉疉D值時(shí),每采集10個(gè)AD值作為一組數(shù)據(jù),去除其中的最大值,最小值而取剩余的8個(gè)A/D轉(zhuǎn)換值的平均值,這樣可有效去除數(shù)據(jù)隨機(jī)誤差。