江 峰,管庶安,孫莉紅
(武漢工業(yè)學(xué)院數(shù)學(xué)與計算機學(xué)院,湖北武漢430023)
心電信號是心臟電活動在人體體表的表現(xiàn),對心電信號的分析是醫(yī)生診斷心臟疾病的重要依據(jù)。信號一般比較微弱,幅度為毫伏級,頻率為0.05—100 Hz。在采集、放大和檢測過程中通常會受到外界的各種干擾,其中以50 Hz交流電及其多次諧波引起的工頻干擾最為普遍。為了方便壓縮存儲和后續(xù)心電分析、識別,必須對這些干擾進行適當?shù)臑V除和抑制,這就需要對心電信號進行濾波。
目前已有許多消除50 Hz工頻干擾的方法,但是如何選擇還需視具體問題而定。在研制基于ARM的便攜式心電監(jiān)護儀中,經(jīng)過多次試驗認為Levkov濾波法[1]基本能適應(yīng)硬件環(huán)境,但是濾波后心電波形中非常重要的R波波峰被嚴重削弱。針對這一不足,有許多在此基礎(chǔ)上的改進。Christov引入ECG(Electrocardiogram)信號的線性段判據(jù)M來區(qū)分R波[2]。這種方法M取值技巧性較強,M值大濾波效果好,但是R波會被判別線性段來處理,同樣有R波峰值被削弱;M值小則濾波效果差。另一種典型的方法[3]是首先定位R波波峰,然后對于R波臨近幾點,直接用原始采樣點的幅值減去之前用Levkov法計算得到的噪聲值,結(jié)果即為濾波后的值。此方法的不足之處在于噪聲值的獲取比較困難,因為50 Hz工頻干擾是正弦波,各個采樣點的工頻干擾值是變化的,準確地得到需要進行大量浮點數(shù)運算,復(fù)雜度很高。針對以上的難點和不足,提出一種改進的Levkov法,先用小波方法定位R波,將R波波峰臨近幾點擬合成折線,然后采用線性段的方法濾波。
1984年,Levkov首先提出對ECG信號的線性段和非線性段采用不同處理方式的數(shù)字濾波法。用該方法濾波要求以下3個條件:(1)采樣頻率fs必須是工頻干擾f的整數(shù)倍。(2)在一個工頻干擾周期T內(nèi),工頻干擾采樣點的幅值的代數(shù)和為0。(3)在一個線性段中,要求濾波前相鄰的ECG采樣點幅度差值相等。在濾波過程中首先要識別出一個線性段,該線性段濾波后的值為這個線性段原始數(shù)據(jù)的平均值。
設(shè)原始采樣信號為Wi,噪聲信號為Ni,濾波后的信號為Si,一維心電信號是線性系統(tǒng)滿足疊加原理,有 Wi=Ni,i∈N。
設(shè) Si,i∈[0,9]為線性段采樣信號,在采樣率為500 Hz時,每隔2ms做一次采樣,有
在一個工頻干擾周期內(nèi),工頻干擾采樣點的幅值代數(shù)和為零,可得:
將工頻信號和濾波后信號拆開疊加:
由(3)和(4)得
推導(dǎo)出通式:
式(6)表明,每計算一個采樣點濾波后的值需要利用該點前4點和后5點的原始值。該算法是把這些點的連線近似看成一條直線,在處理遠離奇異點的波形時誤差較小,濾波效果也很好。但是在處理靠近奇異點比如R波波峰時,由于這些點的連線屬于非線性段,不在一條直線上,按基本Levkov法計算10點連線的斜率將會有很大誤差,會出現(xiàn)濾波后R波波峰被削弱的情況。
兩種典型的改進方法在處理R波的濾波取得了一定的效果。但是方法一中的M值因人因時間而異,難以確定;方法二需要得到采樣點的工頻干擾幅值,要計算出幅值須知工頻干擾正弦波的幅度、初相和頻率,最后經(jīng)三角計算得出,這無疑大大增加了算法的復(fù)雜度。
經(jīng)分析得知基本Levkov濾波法在處理R波時的缺陷,最根本原因是不同于心電波的其他波段,R波非線性非常強。在形狀上,R波先是呈急劇上升狀態(tài),抵達波峰后又急劇下降,結(jié)合這一顯著特點,可以將這段波形擬合成折線。只要能準確計算組成折線的兩條直線段的斜率,保證其和R波上升和下降幅度一致,便能準確模擬R波。最后對折線段段的兩部分分別使用線性段的方法濾波。
首先要準確定位R波?;谛〔ㄗ儞Q的R波檢測算法是目前采用較多的一種方法。Marr小波函數(shù)具有無限光滑性,不對單獨的噪聲點敏感,加上其獨特的時域性質(zhì),使得包含信息的特征點特別突出。因此,選用Marr小波基來檢測R波峰值奇異點:
準確定位R波波峰,令T為R波波峰的時刻。由基本Levkov法推導(dǎo)出的通式(6)知:在線性段濾波時,要使用T時刻采樣點原始值來計算線性段斜率的是T-6和T+4兩個時刻的采樣點。在這之間的采樣點的連線不在一條直線上,所以需要對波峰左側(cè)5點及右側(cè)3點進行單獨濾波。保存T-6和T+4這兩點濾波時計算的斜率d、e,d和e在R波這段折線上分別表示為波峰左側(cè)和右側(cè)線段的斜率,其中:
由于整個ECG波形在一個工頻干擾周期內(nèi)都用工頻干擾采樣點的幅值代數(shù)和為零,在折線段濾波時同樣每次取一個周期的10個點。每個周期計算R波波峰左側(cè)和右側(cè)2個點的濾波,計算分兩次實施,一次將波峰采樣點視為折線左邊線段上的點,然后再看成右邊線段上的點,如此聯(lián)立成方程組,得到2個點的濾波值。因為總共有9個點,所以完成折線段的濾波要分5次進行。
解出以上方程組,即可得出折線9個點的濾波。
對R波這段折線的濾波是研究的重點,首先定位R波非常重要。因為檢測R波是在有干擾的情況下進行的,選擇用尺度為3的Marr小波變換可將噪聲干擾降到最小。從MIT-BIH中提取了2000個心電波文件,參照標準給出的R波定位誤差區(qū)間,2000個采樣信號中的R波定位都在可接受范圍,定位很準確。在研制基于ARM的家用心電監(jiān)護儀中實現(xiàn)ECG信號濾波功能時采用了改進的Levkov方法。圖1(a)和圖2(a)為實時采集到的原始心電信號,圖1有2個R波波峰,圖2有1個R波波峰。由于工頻干擾非常嚴重,波形極不光滑。圖1(b)和圖2(b)為基本Levkov法濾波,消除了工頻干擾,但是相比較原始波形R波波峰高度降低了很多。圖1(c)和圖2(c)為改進后方法的濾波結(jié)果。由圖可見,改進后R波波峰高度與原方法濾波后相比有顯著提高。新方法在R波的濾波方面很好的保持了波形不失真,如此就達到了濾波的目的。而且在用新方法時,一個工頻干擾內(nèi)的累加能計算出兩個點的濾波值,相比較原算法只能得到一個點的濾波,效率也得到提高。
圖1 包含2個R波波峰的心電波濾波
圖2 只有一個R波波峰的心電波濾波
在VS2005編輯環(huán)境中完成了整個實驗,數(shù)據(jù)來源是國際三大心電學(xué)標準數(shù)據(jù)庫之一的MITBIH。首先讀取數(shù)據(jù)庫中的心電圖文件并繪制成波形,然后分別采用基本Levkov法和改進后的算法進行濾波。
在時間復(fù)雜性上,相比較基本Levkov法,新方法在小波變換定位R波上進行了額外的計算。N點的小波變換,每個點做7次加法運算,復(fù)雜度為O(n)。原始算法的時間復(fù)雜度也為O(n),增加的復(fù)雜性在可接受范圍內(nèi)。
為了更加準確的表示心電信號在R波處得濾波效果,可通過計算原始信號與噪聲信號的信噪比SNR【4】(Signal to Noise Ratio) 和均方誤差 RMSE(Root Mean Square Error)進行比較,根據(jù)參數(shù)值比較兩個算法的效果。設(shè)原始信號為W(n),去噪后信號為S(n),則信噪比SNR定義的公式為:
原始信號和去噪后信號的均方根誤差RMSE公式定義為:
信號的信噪比越高,原始信號和去噪后信號的均方根誤差越小,則去噪后的信號就越接近原信號,去噪的效果也就越好。表1給出了以上兩種去噪方法的參數(shù)對比。通過去噪后的信噪比、均方根誤差比較結(jié)果,可以看出,改進后的算法較基本Levkov法有著更好的處理效果。
表1 Levkov法改進前后對照表
通過上面的分析討論和實驗結(jié)果表明,在原有Levkov方法的基礎(chǔ)上將R波這部分處理成折線段,分段的兩部分分別按照線性段的方法來濾波,可以最大限度的消除噪聲同時保持波形不失真,減少有用心電信息的損失。這種方法欠缺之處在于,若心電信號受到除了工頻干擾以外的其他噪聲,如基線漂移等,此方法尚不能將這些噪聲有效濾除。
[1] Levkov.Subtraction of 50 Hz interference from the electrocardiogram[J].Med & Biol Eng &Compute,1984,22:371-373.
[2] Christov I.New approach to the digital elimination of 50 Hz interference from the electrocardiogram [J] .Med &BiolEng&Comput,1988 ,26 :431-434.
[3] 王海濱,董秀珍,漆家學(xué).一種消除ECG信號中50Hz工頻干擾的數(shù)字濾波方法[J].中國醫(yī)療器械雜志.1997,21(3):327-329.
[4] 吳偉,蔡培升.基于MATLAB的小波去噪仿真[J].信息與電子工程,2008,6(3):220-222.