焦運良,邢計元,靳堯凱
(華北計算機系統(tǒng)工程研究所,北京 100083)
心電信號是人類最早研究的生物信號之一,相比其他生物信號更易于檢測,且具有直觀的規(guī)律。心電圖的準確分析對心臟病的及早治療有重大的意義。人體是一個復雜精密的系統(tǒng),有許多不可抗的外界因素,得到純凈的心電信號非常困難。可以采用神經網絡算法去除心電信號的噪聲,但這種方法存在訓練難度大、耗時長的缺點。小波變換在處理非線性、非平穩(wěn)且奇異點較多的信號時具有一定的優(yōu)越性,近年來許多學者使用其對心電信號進行研究[1]。
心電信號由以下幾個波段組成,一個典型的心電圖如圖1所示。
圖1 典型心電圖
(1)P波:反映心房肌在除極過程中的電位變化過程;
(2)P-R間期:反映的是激動從竇房結通過房室交界區(qū)到心室肌開始除極的時限;
(3)QRS波群:反映心室肌除極過程的電位變化;
(4)T波:代表心室肌復極過程中所引起的電位變化;
(5)S-T段:從QRS波群終點到達T波起點間的一段水平線[2];
(6)Q-T間期:心室從除極到復極的時間[3];
(7)U波:代表動作電位的后電位。
由于心電信號十分微弱,且低頻,極易受到干擾,不同的干擾源的噪聲雖是隨機的,但來自同一個干擾源的噪聲往往具有同一類特征。分析干擾的來源,針對不同的來源使用合適的處理方法,是數據采集重點考慮的一個問題。常見干擾有3種:(1)工頻干擾;(2)基線漂移;(3)肌電干擾[4]。其中已經證明小波變換在抑制心電信號的工頻干擾方面具有較大優(yōu)勢[5]。具體噪聲頻帶如表1所示。
表1 心電信號以及主要噪聲頻帶
設信號函數φ(t)滿足L2(R),即若φ(t)平方可積,則將此信號作下列變換:
WTf(a,b)≤f(t)
(1)
上述變換的逆變換為:
(2)
其中,
(3)
Ψ(w)是φ(t)的傅里葉變換。與傅里葉變換類似,利用式(1)可以將信號做小波變換,利用式(2)可以恢復出原信號,只不過CΦ有一個約束條件式(3),這個約束條件被稱作進行小波變換的容許性條件,φ(t)被稱作基本小波函數或母小波函數。對母小波函數進行伸縮平移變換,可得到如下函數族:
(4)
其中,a為尺度因子,b為位移因子,a,b∈R,且a≠0,當a,b不斷變化時,就可以得到一系列函數,稱為函數族,在這里將這個函數族φa,b(t)稱作小波基函數。小波變換的巧妙之處在于這個小波基函數中的a和b兩個變量。a是將母小波進行伸縮變換,且a在分母上,所以a≠0。a越大,母小波的時間域越大,對應的頻域越小,適當將a增大可以用母小波研究低頻信號,提高時間域分辨率;a越小,母小波的時間域越小,對應頻域越大,適當減小a可以將母小波用來研究高頻信號,提高頻率域的分辨率。b是位移因子,調節(jié)b的大小可以將信號進行平移變換,如果將a和b結合起來,通過變換a和b的大小,能對高頻和低頻信號都有一個好的分析效果。小波變換在時頻域都是局部的,能很好地對各時刻附近的頻率信息進行處理[6]。
給定一個基本函數φ(x),φ(x)的伸縮和平移可以記為:
φ(a,b)(x)=φ(ax-b)
(5)
在小波變換中,多分辨的一般定義為:L2(R)可以被分割成許多小空間Vj,j=…,-2,-1,0,1,2。
這樣處理完之后,就將L2(R)這個向量空間用它的子空間Vj{j∈z}和Wj{j∈z}表示,其中Vj{j∈z}被稱為尺度空間,Wj{j∈z}被稱為小波空間。
首先選擇對稱性好的小波基,對稱性好的小波基不易產生相位畸變,其次選擇正則性好的小波基,這樣重構的信號更加平滑,同時應該選擇緊支撐的小波基使得處理能夠實時進行。
Daubechies構造的dbNv小波就可以滿足以上幾個條件。其中最簡單的是db1(Haar)小波,但它的頻域局域性差。此處選擇db6小波,相比db1小波其更加符合要求,同時在MATLAB上容易實現,db6小波更接近于心電信號,對心電信號去噪有更好的效果。圖2為db系列小波基曲線。
3.1.1 去噪原理
噪聲的定義為“預測不到的,只能用概率論統(tǒng)計的方法來認識的隨機誤差”[7]。小波分析去噪的
圖2 db系列小波
原理:對小波分解后的各層系數模大于和小于某閾值的系數分別進行處理,然后利用處理后的小波系數重構出消噪后的圖像[8]。將采集到的心電信號做多尺度的小波分解,然后根據不同尺度的心電信號特征和噪聲特點,選取合適的規(guī)則,利用分解的小波系數的特征在各尺度對心電信號進行去噪,最后再進行重構,得到去除噪聲之后的圖像。
將心電信號進行小波變換之后,在突變處幅值很大,而突變的地方往往是噪聲比較多的地方,在很多比較平穩(wěn)的有用信號處幅值很小,這就能夠用閾值的方法很好去除噪聲。由前面的Mallat算法可以知道如何對信號進行多尺度分析,即使信號突變嚴重,也能用合適的小波系數將信號進行分解,相比傅里葉單一的正弦函數基,小波有很多優(yōu)秀的小波基供選擇去噪。
3.1.2 信號去噪的評價標準
信號去噪最好的結果是在不破壞信號本身信息的條件下將噪聲予以剔除,對原始信號的還原程度越高,去噪效果越好。通常用以下兩個參數來判斷去噪效果的好壞:一個是最小化平均平方誤差MSE,另一個是信噪比SNR。
(6)
其中,X表示不含噪聲的純凈的心電信號,x表示經過去噪過程之后的心電信號,由式(6)可知,MSE越小,真實純凈的信號與去噪之后的信號越接近,去噪效果越好。
(7)
同樣,X表示不含噪聲的純凈的心電信號,分母是均方誤差,分子是原始純凈的信號,SNR越大表明去噪效果越好。
除了這兩個標準,肉眼觀察也可以辨別不同去噪算法的好壞,本文最后的去噪效果通過客觀和主觀觀察兩種方法來判定。
3.2.1 閾值去噪總流程
利用小波閾值去噪的過程如下:
(1)選擇一個合適的小波基;
(2)利用下一小節(jié)式(8)確定分解的層數,也可以利用簡單規(guī)則,根據SNR來簡單確定分解層數;
(3)根據小波系數,選擇合適的閾值對信號進行去噪;
(4)將信號進行重構。
3.2.2 分解層數的選擇
對信號處理的每一步都會影響最終的去噪結果,分解層數過低或者過高都不能達到理想的去噪效果,求解分解層數的公式為:
j=min{(log2(fs/fn)-1),log2(N)}
(8)
其中,fs是指所含噪聲最低頻率的下限。由上式中的幾個變量可得,分解層數j與采樣頻率、噪聲頻帶寬度、信號長度這三個因素有關。
上述是求分解層數的最有效的方法,也可以根據SNR來粗略確定分解層數,SNR越大,可以選擇相對較小的分解層數,這樣既能達到想要的去噪效果,又能簡化計算過程,提高運算速度,同理小的SNR時選擇較大的分解層數才能達到想要的去噪效果。根據經驗,若SNR>20,就可以將分解層數選為3,既能有效去噪又能快速求解;若SNR<20,可以粗略地將分解層數選為4。
3.2.3 閾值函數的選取
利用閾值去噪方法去除噪聲過程中,閾值的選取是最重要的一環(huán),傳統(tǒng)的閾值選取方法有兩種,即硬閾值和軟閾值。
首先介紹硬閾值的閾值取法,硬閾值的取法如下所示:
(9)
其中,w為小波系數的值,而λ為選定的閾值,硬閾值即將小波系數中大于給定閾值的保持不變,小于給定閾值的將其置0。硬閾值的處理效果在閾值點處一定是不連續(xù)的,如果直接對信號進行重構,那么重構的信號可能會產生震蕩。
第二種閾值方法為軟閾值:
(10)
此式中各符號的含義與硬閾值一樣,如果小波系數w比所設定的閾值大或者與設定的閾值相同時,并不直接保留小波系數的值,而是采取了一種比較平滑的處理,令其為原值減閾值λ;小于時,與硬閾值一樣,將其置0。經過這樣的軟閾值處理之后,在閾值點處不會發(fā)生不連續(xù)的現象,改進了硬閾值的缺點,但對信號進行重構可能會影響重構信號對真實信號的逼近程度。軟閾值相比硬閾值還是有更好的去噪效果,因此本文基于軟閾值來對信號去噪。
3.2.4 閾值選取
閾值去噪時在閾值大的情況下,數據會不清晰,大的閾值影響高頻的小波系數,心電信號邊緣處小波系數被遺忘;若閾值選取值小,會有很多噪聲存在。可以采用全局和局部閾值,用全部尺度或固定尺度的小波域系數僅以固定閾值進行噪聲處理即全局閾值,由小波系數的特征靈活地選擇閾值即局部閾值。
全局閾值方法有:DJ閾值、極大極小閾值等。DJ閾值的D和J在理論上證明了當帶有雜質的心電信號小波變換后,如果其系數比指定閾值大時,其含噪概率趨于0。其閾值選擇標準如下:
(11)
其中,σn是噪聲信號方差,N是信號長度。
但這種閾值處理效果并不理想,會過度扼殺小波系數,也會消除一些有用的小波信號。它只針對一個尺度上小波域系數的關聯強度,并沒有在各個尺度表現小波系數的相關程度。
局部閾值挽救了全局閾值的不足,把各個部位含噪信號的小波域系數的相關程度和雜質信號系數的影響也表示在公式中。分析小波系數的局部特點,按照某種判定準則研究小波系數的來源,決定是否保留這個小波系數。
在以上的去噪流程中,小波基和分解層數的選擇以及閾值的選擇,都會直接影響最終的去噪效果。但不論是硬閾值還是軟閾值,都存在不可避免的對去噪效果有一定影響的因素。
面對心電信號這種不平穩(wěn)的信號,對其進行小波變換之后,不同小波系數之間大小有較大差距,同時在信噪比上也存在較大的差異,基于此來尋找一種更加適合的閾值取法。
在此處將閾值λ取為:
(12)
其中,λ表示閾值取值;σi表示i級分解上的小波系數的噪聲標準差;Ni表示第i級分解上小波系數的大??;j為分解層數,此處為4;c為調節(jié)因子。使閾值隨著分解層數改變,層數越大閾值越小,比較符合在小波分解后不同分解層數的系數在信號和噪聲上的比例分布。
改進的閾值去噪算法的具體步驟如下:
(1)利用db6小波基對信號進行4級分解;
(2)對四個尺度上的小波系數采用新的閾值采取方法來進行閾值處理,采用軟閾值的方法,大于λ的其值為本身的值減去閾值λ的大小,小于λ的置0予以剔除;
(3)調整c的值實現最好的閾值處理效果,并將處理之后的各小波進行重構得到去噪的心電信號。
圖3和表2為原方法和改進后方法去噪結果對比。實驗數據來源為Massachusetts Institute of Technology-Beth Israel Hospital (MIT-BIH)數據庫,MIT-BIH是由美國麻省理工學院提供的研究心律失常的數據庫,是目前國際上公認的可作為標準的心電數據庫之一,MIT-BIH數據庫近年來應用比較廣泛。
從圖3可以看出改進閾值的辦法更好地過濾了噪聲,信號的毛刺減少,更加光滑。
圖3 去噪方法比較
閾值選擇原閾值改進閾值SNR5.031 55.362 8MES0.037 70.034 1
從表2可以得出,改進之后的方法比原來的去噪方法能更加有效地去除噪聲,更好還原心電信號。
本文基于軟閾值提出了一種新的閾值選取方法,新的閾值取法綜合了各級小波分解系數的值,相對通用閾值的方法能更好去除心電信號中的噪聲,但還不能完全去除,這是本文今后的研究方向。