單片機應用系統(tǒng)中去除工頻干擾的快速實現(xiàn)
引 言
針對工頻干擾的特點,本文使用參考文獻1所提出的自適應相干模板法。這是一種極其簡單、有效的濾除工頻干擾的算法,十分有利于單片機快速實現(xiàn),在采樣率不太高的情況下,能達到實時濾波。該算法之所以利于單片機快速實現(xiàn),是因為算法本身多數(shù)為加法和減法運算,不涉及乘法運算,且通過合理的選擇M值,可將除法運算巧妙地簡化為移位運算或更簡單地直接甩掉低位字節(jié)[2]。
1 自適應相干模板法
1.1 濾除工頻干擾的原理
參考文獻1所提出的自適應相干模板法,是根據(jù)工頻干擾的特點,從原始信號中得到工頻干擾的模板,再從原始信號中減去該模板,達到濾除工頻干擾的目的。
假設X(n)為原始信號,S(n)為其中的有用信號,N(n)為工頻干擾信號,則
X(n) = S(n) + N(n)
1.2 幅頻響應特性
根據(jù)系統(tǒng)傳遞函數(shù)(2)式,利用MATLAB語言,對不同采樣頻率、不同M值的幅頻響應特性進行比較,如圖1所示。
從圖1 A組可看出,該濾波器不僅對50 Hz有濾波效果,對所有頻率為50 Hz整數(shù)倍的信號都有濾波作用。因此,若采用自適應相干模板法濾除工頻干擾,則當有用信號頻帶范圍較寬,信號采樣率較高時,將對工頻干擾50 Hz及其各諧波信號都有很好的抑制作用。
因此不僅要求采樣率為50 Hz的整數(shù)倍,而且要求有用信號的最高頻率分量不超過100 Hz,否則,頻率為100 Hz的有用信號也和工頻干擾一樣被濾除。這樣,濾波后的信號將產(chǎn)生失真。
從圖1 B組可看出,濾波器的幅頻特性受M值影響較大。當M值較大時,通頻帶的紋波系數(shù)較小,阻帶寬度也較窄。也就是說,M值越大對濾除理想的50 Hz來說效果越好;然而,實際工頻干擾具有一定的頻率變化范圍,當M值大到超過某一值后將導致工頻干擾濾除效果下降,因此,在實際設計濾波器時,M值的選取要綜合考慮。一般M值可選256。
2 單片機實現(xiàn)
用自適應相干模板法去除工頻干擾,可以達到實時濾波,這由信號的采樣頻率、單片機的速度決定。若信號的采樣頻率不高,單片機速度較快,則在信號的采樣間隔時間內(nèi)就能實現(xiàn)工頻干擾的濾除。因此,在使用該方法前,應大概估計信號濾波所需的時間(與信號的通道數(shù)成正比),再適當選擇采樣率和晶振。
為方便說明,下面以A/D采樣精度為16位、單片機為89C51、fs=200 Hz、M=256為例,來討論單通道信號中工頻干擾去除的快速實現(xiàn)問題。由于A/D精度為16位,因此,單片機中所涉及的運算一般為雙字節(jié)或三字節(jié)加法或減法運算,且由于M值取為256,使得除法運算也變得極其簡單,直接簡化為甩掉低字節(jié)即可。
2.1 建立初始模板
如前所述,利用自適應相干模板法去除工頻干擾的關鍵在于建立工頻干擾的模板,而為實現(xiàn)連續(xù)濾波,首先需建立一個初始模板。
依此類推,以后采入的每一個數(shù)據(jù)都做相應處理:濾波和修改模板,最終就可實現(xiàn)整個信號的快速、連續(xù)、實時去除工頻干擾。由于濾波過程中涉及減法運算,而單片機對于有符號數(shù)的運算處理較復雜,因此,在進行減法運算之前,應先將被減數(shù)加上一個常數(shù),以保證運算結果都為正值。圖2為濾波程序流程框圖。
結 論
本文主要討論了自適應相干模板法去除工頻干擾在單片機應用系統(tǒng)中的快速實現(xiàn)問題。與模擬濾波方法相比較,該方法具有成本低、濾波效果好等特點;而與其它數(shù)字濾波方法比較,該方法易于實現(xiàn)、速度快、頻響特性極佳。
參考文獻
1 李剛、林凌、虞啟璉,濾除工頻干擾的自適應相干模板法,中國生物醫(yī)學工程學報,第16卷第3期,pp280-283,1997.9
2 孫涵芳、徐愛卿,單片機原理及應用,北京航空航天大學出版社,1988.2