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