高立坤, 劉東啟, 陳志堅
(浙江大學 電氣工程學院,浙江 杭州 310027)
實時提取心電(electrocardiogram,ECG)信號[1]并最大限度消除外部噪聲干擾,對后續心臟活動分析及疾病診斷至關重要。目前心電信號的提取主要采用濾波的方法[2~5]。然而,心電信號的頻率主要分布在0.25~40 Hz,與肌電信號、移動噪聲等干擾信號存在頻段的重疊,導致基于濾波的方法不具備強抗噪性。當移動噪聲較大甚至超過心電信號本身時,基于濾波的方法將無法準確地提取出心電信號。
獨立成分分析(independent component analysis,ICA)能夠準確地分離出混合信號中的各個源信號[6]。通過將肌電信號和移動噪聲作為獨立信號源進行建模,從信號混合的角度進行信號分離,為強抗噪性的心電信號提取提供了一種新的解決思路。但傳統的ICA算法只能分離非實時信號,且分離出的信號具有幅值和信號順序不確定的問題。為了實現實時心電信號提取,本文提出了基于相關性評估和FastICA的心電信號提取方法。核心思想是在對實時信號進行分段處理的基礎上,利用信號相關性原理對分離出的信號進行提取和重構,即按照時間順序將采樣到的實時信號分段進行FastICA處理,應用相關性評估方法,從分離信號中提取出心電信號,并進行相位的修正和幅值的縮放,從而持續穩定地提取出心電信號。文章進一步研究了算法的魯棒性設計,在ICA處理前引入中值濾波器過濾基線漂移,有效地解決了ICA運算周期長,分離過程易發散的問題。
ICA的基本模型如圖1所示。

圖1 ICA基本模型
ICA算法的核心思想是通過不斷更新分離矩陣W,使得到的估計值更接近真實的源信號。本文使用了基于負熵最大化的FastICA算法[7],該算法以負熵來度量非高斯性,從而判斷分離結果間的相對獨立性。當負熵達到最大時,表明已完成對各路獨立信號的分離。基于負熵最大化的FastICA算法的基本步驟為:
1)選擇隨機的初始權向量W;
2)對權向量W進行調整,其中E[·]為均值運算,g(·)為非線性函數
W=E(Z·g(WT·Z)}-E{g′(WT·Z)}·W
(1)
3)對權向量W進行歸一化處理
(2)
4)如果W收斂則使用y(t)=W·X(t)求取源信號的估計量;否則,返回步驟(2)繼續迭代。
FastICA分離心電信號的基本模型如圖2所示。在提取心電信號時,首先對3路采樣信號心電信號、移動噪聲、肌電信號進行FastICA處理,分離出混入了基線漂移與工頻噪聲的心電信號、肌電信號和移動噪聲。由于基線漂移和工頻噪聲的頻段與心電信號的主頻沒有混疊,可以進一步使用濾波器濾除基線漂移和工頻噪聲,從而得到準確的心電信號。

圖2 FastICA分離心電信號的基本模型
獨立成分分析能夠在觀測信號成分未知的情況下準確地進行信號的分離,但其算法本身也存在明顯的缺陷:只能處理采樣點數已知的信號,無法處理實時信號;分離出的信號是源信號的估計值,存在一定程度的隨機性;對同一組采樣信號進行多次獨立成分分析,每次分離出信號的幅值和次序可能不同,甚至可能出現相位相反的情況;只能完成信號的分離,而無法從分離出的各路信號中提取出目標信號。
為了解決FastICA算法提取實時心電信號的一系列問題,本文提出了基于相關性評估的FastICA算法,該算法以信號相關性為判斷依據,找出FastICA分離后各路信號中的心電信號并進行信號的重構,從而持續穩定地提取出實時心電信號。
基于相關性評估與FastICA的實時心電信號提取流程如圖3所示。對觀測到的各路信號進行分段處理,采用中值濾波器濾除采樣完成的各信號段中的基線漂移成分;對該段信號進行FastICA處理,分離出心電信號和各類噪聲信號;采用相關性評估的方法提取出心電信號,并進行相位的修正和幅值的縮放;采用濾波器濾除工頻噪聲并將得到的信號輸出。

圖3 相關性評估與FastICA融合的實時心電信號提取算法流程
傳統的ICA方法無法處理實時信號,因此本文對實時信號進行分段,每段信號采用固定的樣本數目,由FastICA進行分離。對于N路的信號段,ICA處理后會得到N路的分離信號,其中有一路信號為心電信號,但是由于分離信號的次序存在隨機性,因此無法根據信號的次序確定分離信號中心電信號所在的位置。鑒于各路信號的特征具有顯著的區別,其中心電信號與典型心電信號有高度相關性,因此本文使用典型心電信號片段作為基準信號,與各路分離信號進行相關性評估,選取相關系數最大的分離信號作為目標心電信號。
2.1.1 相關性評估計算
采用皮爾遜相關系數來進行相關性評估,能夠簡單有效地對兩組數據進行相關性評估
(3)

2.1.2 基于相關性評估的心電信號提取
使用相關性評估的方法提取心電信號,需要選取段長為H個采樣點的典型心電信號作為基準信號。所選典型心電信號有且僅有一個R峰,且該R峰位于典型心電信號的第K個采樣點。
如圖4所示,對分離出的信號進行相關性評估時,使用QRS檢測[8]的方法從每路分離信號中定位出J個R峰,截取R峰左側K-1個采樣點,右側H-K個采樣點作為待評估信號段。對得到的J段待評估信號分別進行相關性評估,并計算評估結果的平均值作為該路分離信號與心電信號的相關系數。分離信號與心電信號相關系數絕對值的大小反映了該信號是心電信號的概率,選擇相關系數最高的分離信號為心電信號。根據相關系數的符號對分離出的心電信號進行相位的修正,修正后的信號即為提取到的心電信號。

圖4 待評估信號段的截取
為了使各輸出信號段的幅值與原始心電信號保持相同的比例,需要在信號輸出前對提取結果進行幅值的縮放。通過對提取結果與前段輸出信號進行幅值的比較,調整提取到的心電信號的幅值,重構出幅值穩定的輸出信號。
如圖5所示,處理實時信號時,對采樣信號按照時間順序分段,采樣點數達到分段段長L后,對該段信號進行FastICA處理,并使用相關性評估的方法提取出心電信號。心電信號提取完成后,取當前信號段的后M個點(即與下一信號段重合區域)的分離結果作為基準信號段,用于下一信號段幅值的修正;取當前信號段的前M個點(即與上一信號段重合區域)的分離結果作為待評估信號段。計算出基準信號段各采樣點幅值的平均值以及待評估信號段各采樣點幅值的平均值,對提取的心電信號段的各個采樣點進行修正后輸出,修正后各點的值為修正前該點的值×基準信號段的平均值/等評估信號段的平均值。

圖5 混合信號片段
研究發現,基線漂移引入的噪聲會降低ICA算法的實現效果。在原始信號存在基線漂移的情況下,引入相關性評估的FastICA算法分離出的心電信號的幅值發生抖動,甚至會發生逐級放大的情況,使得分離出的心電信號的幅值隨著時間的延長而與標準值的差距越發增大,嚴重影響了心電信號提取的準確性。
本文算法使用中值濾波器,在進行ICA分離前先對每一路觀測信號進行濾波,濾除各路信號中的基線漂移。中值濾波器具有運算簡單且運算速度快的優點,能夠抑制噪聲和保護邊緣的特征,且對后續ICA的分離處理不會造成影響[9,10]。
本文采用MIT-BIT中的心律不齊數據庫(arrhythmia database)與噪聲壓力測試數據庫(noise stress test database)進行MATLAB仿真實驗。對心電信號、肌電信號、移動噪聲進行隨機混合,得到3路各不相同的混合信號作為采樣信號。
由于實驗選取數據庫的采樣頻率為360 Hz,因此每段信號需要在22.22 s(即(10 000-2 000)/360)內完成心電信號的提取。設置FastICA的最大迭代次數為100 000次,每段心電信號提取的最大時間小于19 s,能夠保證信號的實時輸出。
表1隨機抽取了arrhythmia database中10組不同的心電信號進行實驗,給出了先過濾基線漂移再進行FastICA處理與先進行FastICA處理再過濾基線漂移2種方法的實驗結果。其精確度為提取到的心電信號與原始信號的相似程度,利用式(3)計算。從表中可以看出,在FastICA后引入中值濾波器的方法提取出的心電信號的準確率僅為90.4 %,平均提取時間則高達724.44 s。相比之下,本文所述方法可以提高6.3 %的準確率,并節省74.5 %的分離時間。本文所述算法的準確率高達96.7 %,且具有較快的提取速度,基本符合后續信號分析與疾病診斷的要求。

表1 2種實驗方法對比數據
提出了一種融合相關性評估與FastICA的實時心電信號提取算法,收斂速度快且提取出的心電信號的精確度可達96.7 %,具有良好的應用前景。