高立坤, 劉東啟, 陳志堅(jiān)
(浙江大學(xué) 電氣工程學(xué)院,浙江 杭州 310027)
實(shí)時(shí)提取心電(electrocardiogram,ECG)信號(hào)[1]并最大限度消除外部噪聲干擾,對(duì)后續(xù)心臟活動(dòng)分析及疾病診斷至關(guān)重要。目前心電信號(hào)的提取主要采用濾波的方法[2~5]。然而,心電信號(hào)的頻率主要分布在0.25~40 Hz,與肌電信號(hào)、移動(dòng)噪聲等干擾信號(hào)存在頻段的重疊,導(dǎo)致基于濾波的方法不具備強(qiáng)抗噪性。當(dāng)移動(dòng)噪聲較大甚至超過心電信號(hào)本身時(shí),基于濾波的方法將無法準(zhǔn)確地提取出心電信號(hào)。
獨(dú)立成分分析(independent component analysis,ICA)能夠準(zhǔn)確地分離出混合信號(hào)中的各個(gè)源信號(hào)[6]。通過將肌電信號(hào)和移動(dòng)噪聲作為獨(dú)立信號(hào)源進(jìn)行建模,從信號(hào)混合的角度進(jìn)行信號(hào)分離,為強(qiáng)抗噪性的心電信號(hào)提取提供了一種新的解決思路。但傳統(tǒng)的ICA算法只能分離非實(shí)時(shí)信號(hào),且分離出的信號(hào)具有幅值和信號(hào)順序不確定的問題。為了實(shí)現(xiàn)實(shí)時(shí)心電信號(hào)提取,本文提出了基于相關(guān)性評(píng)估和FastICA的心電信號(hào)提取方法。核心思想是在對(duì)實(shí)時(shí)信號(hào)進(jìn)行分段處理的基礎(chǔ)上,利用信號(hào)相關(guān)性原理對(duì)分離出的信號(hào)進(jìn)行提取和重構(gòu),即按照時(shí)間順序?qū)⒉蓸拥降膶?shí)時(shí)信號(hào)分段進(jìn)行FastICA處理,應(yīng)用相關(guān)性評(píng)估方法,從分離信號(hào)中提取出心電信號(hào),并進(jìn)行相位的修正和幅值的縮放,從而持續(xù)穩(wěn)定地提取出心電信號(hào)。文章進(jìn)一步研究了算法的魯棒性設(shè)計(jì),在ICA處理前引入中值濾波器過濾基線漂移,有效地解決了ICA運(yùn)算周期長(zhǎng),分離過程易發(fā)散的問題。
ICA的基本模型如圖1所示。
圖1 ICA基本模型
ICA算法的核心思想是通過不斷更新分離矩陣W,使得到的估計(jì)值更接近真實(shí)的源信號(hào)。本文使用了基于負(fù)熵最大化的FastICA算法[7],該算法以負(fù)熵來度量非高斯性,從而判斷分離結(jié)果間的相對(duì)獨(dú)立性。當(dāng)負(fù)熵達(dá)到最大時(shí),表明已完成對(duì)各路獨(dú)立信號(hào)的分離?;谪?fù)熵最大化的FastICA算法的基本步驟為:
1)選擇隨機(jī)的初始權(quán)向量W;
2)對(duì)權(quán)向量W進(jìn)行調(diào)整,其中E[·]為均值運(yùn)算,g(·)為非線性函數(shù)
W=E(Z·g(WT·Z)}-E{g′(WT·Z)}·W
(1)
3)對(duì)權(quán)向量W進(jìn)行歸一化處理
(2)
4)如果W收斂則使用y(t)=W·X(t)求取源信號(hào)的估計(jì)量;否則,返回步驟(2)繼續(xù)迭代。
FastICA分離心電信號(hào)的基本模型如圖2所示。在提取心電信號(hào)時(shí),首先對(duì)3路采樣信號(hào)心電信號(hào)、移動(dòng)噪聲、肌電信號(hào)進(jìn)行FastICA處理,分離出混入了基線漂移與工頻噪聲的心電信號(hào)、肌電信號(hào)和移動(dòng)噪聲。由于基線漂移和工頻噪聲的頻段與心電信號(hào)的主頻沒有混疊,可以進(jìn)一步使用濾波器濾除基線漂移和工頻噪聲,從而得到準(zhǔn)確的心電信號(hào)。
圖2 FastICA分離心電信號(hào)的基本模型
獨(dú)立成分分析能夠在觀測(cè)信號(hào)成分未知的情況下準(zhǔn)確地進(jìn)行信號(hào)的分離,但其算法本身也存在明顯的缺陷:只能處理采樣點(diǎn)數(shù)已知的信號(hào),無法處理實(shí)時(shí)信號(hào);分離出的信號(hào)是源信號(hào)的估計(jì)值,存在一定程度的隨機(jī)性;對(duì)同一組采樣信號(hào)進(jìn)行多次獨(dú)立成分分析,每次分離出信號(hào)的幅值和次序可能不同,甚至可能出現(xiàn)相位相反的情況;只能完成信號(hào)的分離,而無法從分離出的各路信號(hào)中提取出目標(biāo)信號(hào)。
為了解決FastICA算法提取實(shí)時(shí)心電信號(hào)的一系列問題,本文提出了基于相關(guān)性評(píng)估的FastICA算法,該算法以信號(hào)相關(guān)性為判斷依據(jù),找出FastICA分離后各路信號(hào)中的心電信號(hào)并進(jìn)行信號(hào)的重構(gòu),從而持續(xù)穩(wěn)定地提取出實(shí)時(shí)心電信號(hào)。
基于相關(guān)性評(píng)估與FastICA的實(shí)時(shí)心電信號(hào)提取流程如圖3所示。對(duì)觀測(cè)到的各路信號(hào)進(jìn)行分段處理,采用中值濾波器濾除采樣完成的各信號(hào)段中的基線漂移成分;對(duì)該段信號(hào)進(jìn)行FastICA處理,分離出心電信號(hào)和各類噪聲信號(hào);采用相關(guān)性評(píng)估的方法提取出心電信號(hào),并進(jìn)行相位的修正和幅值的縮放;采用濾波器濾除工頻噪聲并將得到的信號(hào)輸出。
圖3 相關(guān)性評(píng)估與FastICA融合的實(shí)時(shí)心電信號(hào)提取算法流程
傳統(tǒng)的ICA方法無法處理實(shí)時(shí)信號(hào),因此本文對(duì)實(shí)時(shí)信號(hào)進(jìn)行分段,每段信號(hào)采用固定的樣本數(shù)目,由FastICA進(jìn)行分離。對(duì)于N路的信號(hào)段,ICA處理后會(huì)得到N路的分離信號(hào),其中有一路信號(hào)為心電信號(hào),但是由于分離信號(hào)的次序存在隨機(jī)性,因此無法根據(jù)信號(hào)的次序確定分離信號(hào)中心電信號(hào)所在的位置。鑒于各路信號(hào)的特征具有顯著的區(qū)別,其中心電信號(hào)與典型心電信號(hào)有高度相關(guān)性,因此本文使用典型心電信號(hào)片段作為基準(zhǔn)信號(hào),與各路分離信號(hào)進(jìn)行相關(guān)性評(píng)估,選取相關(guān)系數(shù)最大的分離信號(hào)作為目標(biāo)心電信號(hào)。
2.1.1 相關(guān)性評(píng)估計(jì)算
采用皮爾遜相關(guān)系數(shù)來進(jìn)行相關(guān)性評(píng)估,能夠簡(jiǎn)單有效地對(duì)兩組數(shù)據(jù)進(jìn)行相關(guān)性評(píng)估
(3)
2.1.2 基于相關(guān)性評(píng)估的心電信號(hào)提取
使用相關(guān)性評(píng)估的方法提取心電信號(hào),需要選取段長(zhǎng)為H個(gè)采樣點(diǎn)的典型心電信號(hào)作為基準(zhǔn)信號(hào)。所選典型心電信號(hào)有且僅有一個(gè)R峰,且該R峰位于典型心電信號(hào)的第K個(gè)采樣點(diǎn)。
如圖4所示,對(duì)分離出的信號(hào)進(jìn)行相關(guān)性評(píng)估時(shí),使用QRS檢測(cè)[8]的方法從每路分離信號(hào)中定位出J個(gè)R峰,截取R峰左側(cè)K-1個(gè)采樣點(diǎn),右側(cè)H-K個(gè)采樣點(diǎn)作為待評(píng)估信號(hào)段。對(duì)得到的J段待評(píng)估信號(hào)分別進(jìn)行相關(guān)性評(píng)估,并計(jì)算評(píng)估結(jié)果的平均值作為該路分離信號(hào)與心電信號(hào)的相關(guān)系數(shù)。分離信號(hào)與心電信號(hào)相關(guān)系數(shù)絕對(duì)值的大小反映了該信號(hào)是心電信號(hào)的概率,選擇相關(guān)系數(shù)最高的分離信號(hào)為心電信號(hào)。根據(jù)相關(guān)系數(shù)的符號(hào)對(duì)分離出的心電信號(hào)進(jìn)行相位的修正,修正后的信號(hào)即為提取到的心電信號(hào)。
圖4 待評(píng)估信號(hào)段的截取
為了使各輸出信號(hào)段的幅值與原始心電信號(hào)保持相同的比例,需要在信號(hào)輸出前對(duì)提取結(jié)果進(jìn)行幅值的縮放。通過對(duì)提取結(jié)果與前段輸出信號(hào)進(jìn)行幅值的比較,調(diào)整提取到的心電信號(hào)的幅值,重構(gòu)出幅值穩(wěn)定的輸出信號(hào)。
如圖5所示,處理實(shí)時(shí)信號(hào)時(shí),對(duì)采樣信號(hào)按照時(shí)間順序分段,采樣點(diǎn)數(shù)達(dá)到分段段長(zhǎng)L后,對(duì)該段信號(hào)進(jìn)行FastICA處理,并使用相關(guān)性評(píng)估的方法提取出心電信號(hào)。心電信號(hào)提取完成后,取當(dāng)前信號(hào)段的后M個(gè)點(diǎn)(即與下一信號(hào)段重合區(qū)域)的分離結(jié)果作為基準(zhǔn)信號(hào)段,用于下一信號(hào)段幅值的修正;取當(dāng)前信號(hào)段的前M個(gè)點(diǎn)(即與上一信號(hào)段重合區(qū)域)的分離結(jié)果作為待評(píng)估信號(hào)段。計(jì)算出基準(zhǔn)信號(hào)段各采樣點(diǎn)幅值的平均值以及待評(píng)估信號(hào)段各采樣點(diǎn)幅值的平均值,對(duì)提取的心電信號(hào)段的各個(gè)采樣點(diǎn)進(jìn)行修正后輸出,修正后各點(diǎn)的值為修正前該點(diǎn)的值×基準(zhǔn)信號(hào)段的平均值/等評(píng)估信號(hào)段的平均值。
圖5 混合信號(hào)片段
研究發(fā)現(xiàn),基線漂移引入的噪聲會(huì)降低ICA算法的實(shí)現(xiàn)效果。在原始信號(hào)存在基線漂移的情況下,引入相關(guān)性評(píng)估的FastICA算法分離出的心電信號(hào)的幅值發(fā)生抖動(dòng),甚至?xí)l(fā)生逐級(jí)放大的情況,使得分離出的心電信號(hào)的幅值隨著時(shí)間的延長(zhǎng)而與標(biāo)準(zhǔn)值的差距越發(fā)增大,嚴(yán)重影響了心電信號(hào)提取的準(zhǔn)確性。
本文算法使用中值濾波器,在進(jìn)行ICA分離前先對(duì)每一路觀測(cè)信號(hào)進(jìn)行濾波,濾除各路信號(hào)中的基線漂移。中值濾波器具有運(yùn)算簡(jiǎn)單且運(yùn)算速度快的優(yōu)點(diǎn),能夠抑制噪聲和保護(hù)邊緣的特征,且對(duì)后續(xù)ICA的分離處理不會(huì)造成影響[9,10]。
本文采用MIT-BIT中的心律不齊數(shù)據(jù)庫(kù)(arrhythmia database)與噪聲壓力測(cè)試數(shù)據(jù)庫(kù)(noise stress test database)進(jìn)行MATLAB仿真實(shí)驗(yàn)。對(duì)心電信號(hào)、肌電信號(hào)、移動(dòng)噪聲進(jìn)行隨機(jī)混合,得到3路各不相同的混合信號(hào)作為采樣信號(hào)。
由于實(shí)驗(yàn)選取數(shù)據(jù)庫(kù)的采樣頻率為360 Hz,因此每段信號(hào)需要在22.22 s(即(10 000-2 000)/360)內(nèi)完成心電信號(hào)的提取。設(shè)置FastICA的最大迭代次數(shù)為100 000次,每段心電信號(hào)提取的最大時(shí)間小于19 s,能夠保證信號(hào)的實(shí)時(shí)輸出。
表1隨機(jī)抽取了arrhythmia database中10組不同的心電信號(hào)進(jìn)行實(shí)驗(yàn),給出了先過濾基線漂移再進(jìn)行FastICA處理與先進(jìn)行FastICA處理再過濾基線漂移2種方法的實(shí)驗(yàn)結(jié)果。其精確度為提取到的心電信號(hào)與原始信號(hào)的相似程度,利用式(3)計(jì)算。從表中可以看出,在FastICA后引入中值濾波器的方法提取出的心電信號(hào)的準(zhǔn)確率僅為90.4 %,平均提取時(shí)間則高達(dá)724.44 s。相比之下,本文所述方法可以提高6.3 %的準(zhǔn)確率,并節(jié)省74.5 %的分離時(shí)間。本文所述算法的準(zhǔn)確率高達(dá)96.7 %,且具有較快的提取速度,基本符合后續(xù)信號(hào)分析與疾病診斷的要求。
表1 2種實(shí)驗(yàn)方法對(duì)比數(shù)據(jù)
提出了一種融合相關(guān)性評(píng)估與FastICA的實(shí)時(shí)心電信號(hào)提取算法,收斂速度快且提取出的心電信號(hào)的精確度可達(dá)96.7 %,具有良好的應(yīng)用前景。