【作 者】于璐,張勇德,沙憲政*
中國醫(yī)科大學生物醫(yī)學工程系,遼寧,沈陽,110001
Labview和Matlab混合編程方法在生物醫(yī)學信號分析中的應用
【作 者】于璐,張勇德,沙憲政*
中國醫(yī)科大學生物醫(yī)學工程系,遼寧,沈陽,110001
介紹了Labview和Matlab混合編程的方法,并用于脈搏信號的預處理及特征點識別過程中。實驗表明,該方法具有便捷、高效和結(jié)果準確的特點,為生物醫(yī)學信號的分析提供了一種有效的新方法。
Labview;Matlab;混合編程;生物醫(yī)學信號檢測與分析;脈搏信號
近年來,隨著計算機技術(shù)的不斷進步和完善,虛擬儀器技術(shù)越來越多的被應用到生物醫(yī)學信號的檢測與分析中來。虛擬儀器技術(shù)是計算機技術(shù)與儀器技術(shù)相結(jié)的產(chǎn)物,它由計算機、儀器硬件和相應的應用軟件組成,利用PC機強大的圖形環(huán)境建立圖形化的虛擬儀器面板,完成對儀器的控制及數(shù)據(jù)的采集、分析和顯示。目前使用最為廣泛的虛擬儀器開發(fā)環(huán)境是美國NI公司推出的Labview軟硬件平臺,而且許多生理信號的識別與分析等研究工作也是在此系統(tǒng)框架下進行的[1]。
雖然Labview具有開發(fā)便捷、效率高、形象直觀和易于掌握等優(yōu)點,但是由于它對各種算法支持的工具箱不多且功能單一,使Labview在數(shù)學計算方面的功能十分有限,因此對于一些虛擬儀器中需要進行大量數(shù)據(jù)運算處理的復雜應用就顯得有些力不從心。Matlab是美國MathWorks公司開發(fā)的一種直觀高效的計算機語言,它為數(shù)據(jù)分析和數(shù)據(jù)可視化、算法和應用程序開發(fā)提供了最核心的數(shù)學和高級圖形工具,在信號和圖像處理等領(lǐng)域具有無可比擬的優(yōu)勢。但它的界面開發(fā)及流程控制能力較差,并且數(shù)據(jù)采集、網(wǎng)絡(luò)通信和硬件控制等方面比較繁瑣,而且腳本文件不能脫離Matlab這個應用程序環(huán)境,這就制約了程序的可移植性和通用性。因此,我們提出了Labview和Matlab混合編程[2],利用Matlab Script節(jié)點技術(shù),使它們在功能上互補,充分發(fā)揮兩者的優(yōu)勢,具有很高的實用價值。
利用Matlab Script節(jié)點技術(shù),實際上是通過ActiveX控件與Matlab server進行的通信。調(diào)用Matlab函數(shù)或命令,實質(zhì)是將Matlab當作一個ActiveX服務器,并建立ActiveX通道,然后將這個函數(shù)或命令通過ActiveX通道發(fā)送給Matlab,由Matlab在后臺執(zhí)行。Labview提供的Matlab Script節(jié)點具有多輸入、多輸出的特點,一次處理的信息量可以很大。Matlab腳本可以現(xiàn)在Matlab下調(diào)試,無誤后再導入到Matlab Script節(jié)點中,執(zhí)行Matlab命令并使用功能豐富的各種工具箱。使用Matlab Script節(jié)點的方法實現(xiàn)混合編程既簡單又實用,當需要使用時,可將其模塊化,采用主程序動態(tài)加載,用戶比較容易掌握,也是Labview開發(fā)組推薦使用的方式[3]。
脈搏波中包含了許多生理信息,對其進行檢測和分析,在心血管疾病的預防與臨床診斷治療有著重要的意義和作用[4]?;贛atlab強大的計算功能和Labview良好的人機控制界面,我們可以實現(xiàn)對脈搏信號的預處理、識別和特征提取。
在對脈搏波進行去噪預處理時,我們采用了模3均值濾波來實現(xiàn)去噪功能。實驗和理論分析結(jié)果都表明,前向平均使脈搏相位右移,后向平均使脈搏相位左移,因此為了避免此類相移,在對脈搏波形進行平滑去噪時,我們采用前向平均和后向平均交替進行的方式[5]。在Labview中用可視化VI實現(xiàn)此功能非常繁瑣,而使用Matlab只需要幾條語句即可實現(xiàn),非常方便,見圖1。通過此方法實現(xiàn)的去噪效果非常理想,波形的“毛刺”絕大部分被去除,波形也沒有失真,可以進行后續(xù)處理與分析,結(jié)果見圖2。
圖1 平滑去噪源程序圖Fig.1 Program for smoothing filtering of pulse wave
圖2 去噪前后脈搏波Fig.2 Comparison of pre and post smoothing filtering of pulse wave
基線漂移是大部分生理信號采集過程中都存在的一種低頻干擾。在對脈搏進行識別及特征提取時,它的存在會使以上工作的進行產(chǎn)生較大誤差,我們采用插值擬合法對其進行調(diào)整[6],原理如圖3所示。
圖3 去基線漂移原理圖示Fig.3 Principle of removing baseline drift
在單周期識別結(jié)束后,我們可以確定每個脈搏波起始點的位置及幅值,然后將這些點③、④、⑤、⑥連接起來,構(gòu)造一條漂移折線,將脈搏信號與漂移信號相減,就可以達到去除基線漂移的目的。但是在具體實現(xiàn)時,圖中的漂移折線其實一開始并不存在,它只是用兩個數(shù)組A和B表示出來(A數(shù)組用來保存構(gòu)成漂移折線的各點②~⑧的位置,B數(shù)組用來保存②~⑧的幅值),無法真正實現(xiàn)脈搏信號的各點與漂移折線各點相減,因此需要根據(jù)A、B數(shù)組構(gòu)造真正的漂移折線。構(gòu)造漂移折線的過程用Labview現(xiàn)有的功能模塊無法實現(xiàn),而利用Matlab靈活的數(shù)學功能則可以非常簡單地完成。具體實現(xiàn)原理及方法如下:若已知平面上兩點坐標為(X1,Y1),(X2,Y2),則兩點確定的直線方程為Y=((Y2-Y1)/(X2-X1))*X +(X2*Y1-X1*Y2)/(X2-X1),由于我們知道②~⑧各點的位置及幅值,也就是相當于知道了各點的坐標,利用該公式,可求出各條直線②~③、③~④、④~⑤、⑤~⑥、⑥~⑧中每個點的值了,從而構(gòu)造出真正的漂移折線。圖4為構(gòu)造漂移折線及基線調(diào)整的完整程序。
圖4 基線調(diào)整源程序圖Fig.4 Program for baseline adjustment
圖5 展示的就是利用這種方法所得到的實驗結(jié)果,其中上圖為去漂移前的脈搏波形,中圖為去漂移后的脈搏波形,下圖為漂移折線。從圖中可以看出,利用這種方法去除基線漂移效果非常理想。
脈搏波最具代表性的特征點就是降中峽和重博波,在對脈搏波進行特征提取時,這兩點確定后,就可以準確地求出一系列脈搏特征值,從而反映人體生理病理信息。兩點的識別可采用二階導數(shù)方法[7],如圖6所示,脈搏的降中峽和重博波可以通過其二階導數(shù)在一個脈搏周期的中間位置對應出的一對波峰和波谷來標識。
圖5 去基線漂移的效果對照Fig.5. Pre and post comparison of baseline adjustment of pulse wave
可是由于脈搏下降支上的波動較多,再加上重博前波的存在,使得二階導結(jié)果中往往會有多個波峰存在,如圖6所示。此時,我們可以利用心臟生理學知識在多個波峰中對應出正確的降中峽。正常情況下成人的心動周期約為0.8 s,其中約有0.35 s為收縮期,另外0.45 s為舒張期,降中峽作為收縮期的終點,舒張期的起點,在時間上應該比重搏前波更靠近心動周期的二分之一處。當識別出兩個波峰點時,就對這兩個波峰點進行時間上的比較,哪一個最靠近心動周期的二分之一,哪一個就確定為降中峽對應的波峰。
圖6 脈搏波及其二階導數(shù)Fig.6 Pusle wave and its second-order derivative
同樣,把時間限制的方法引入到降中峽和重博波識別后,現(xiàn)有的Labview功能無法實現(xiàn),因此,我們再一次利用了Matlab和Labview混合編程的方法。圖7為降中峽及重博波識別源程序圖。框圖中MATLAB Script里填寫的Matlab語言代碼如下:
p=[]; i=1; xia=0;
while (peak(i)-time)<0
p(i)=time-peak(i); i=i+1;
if i>length(peak)
break; end
end
xia=time-min(p);
f=[]; i=1; j=1;
while (valleys(i)-xia)<0
i=i+1; end
while (valleys(i)-xia)>0
f(j)=valleys(i); i=i+1;
j=j+1; end
其中,peak為二階導結(jié)果中各個波峰處的時間,以數(shù)組形式存放;valleys為二階導結(jié)果中各個波谷處的時間,以數(shù)組形式存放;time為脈搏波對應的心動周期二分之一處的時間;xia為識別出的降中峽處對應的時間;f為識別出的重博波處對應的時間。
圖7 降中峽及重博波識別源程序圖Fig.7 Program for dicrotic notch and wave recognization
經(jīng)過對大量不同類型脈象的處理實驗表明,利用以上混合編程方法實現(xiàn)的脈搏特征點識別系統(tǒng)具有速度快、結(jié)果準確的特點。圖8為脈搏波降中峽和重博波的識別情況。值得一提的是,我們還可以通過對Matlab代碼的修改方便地實現(xiàn)對其他特征點(如重博前波)的識別,這對更加全面地揭示脈搏信號蘊含的生理信息也非常有意義。特征點確定后,就可以進行脈搏信號特征值的提取,從而根據(jù)特征值反映人體心血管系統(tǒng)的生理病理信息,為相關(guān)疾病的預防與診斷治療提供支持。
圖8 脈搏波的降中峽和重博波識別情況Fig.8 Results of dicrotic notch and wave recognization
在生物醫(yī)學工程領(lǐng)域中,Labview和Matlab是風靡世界的兩種語言,倍受科研工作者和相關(guān)程序開發(fā)人員的青睞。本文研究了利用ActiveX自動化技術(shù)和Matlab Script節(jié)點技術(shù)實現(xiàn)Labview和Matlab混合編程的方法,并以脈搏信號的預處理及特征點識別為實例,說明了將Matlab引入到虛擬儀器平臺下進行生理信號分析是可行的,而且兩者的混合編程將會使整個系統(tǒng)的搭建更加方便、快捷和高效,并會使整個系統(tǒng)的功能更加完善且易于擴展。由于Matlab還有很多有待在對更多類型生理信號的分析及識別過程中,Labview和Matlab混合編程的方法將有更為廣泛的應用。
[1] 應俊, 陳廣飛, 何史林. 基于虛擬儀器技術(shù)數(shù)字化腦電采集系統(tǒng)的研制[J]. 中國醫(yī)療器械雜志, 2009, 33(5):332-335.
[2] 柴敬安, 廖克儉, 潘德輝, 等. Labview和Matlab混合編程方法的研究與實現(xiàn)[J]. 計算機測量與控制, 2008, 16(5):737-739.
[3] 陳錫輝, 張銀鴻. Labview 8.20程序設(shè)計從入門到精通[M]. 北京:清華大學出版社, 2007
[4] Michael F. O’Rourke. Time domain analysis of the arterial pulse in clinical medicine[J]. Med Biol Eng Comput, 2009, 47(2): 119–129.
[5] 孫欣. 動脈壓變順應性無創(chuàng)檢測關(guān)鍵技術(shù)研究[D]. 山東大學碩士學位論文, 2007
[6] 孔令鋒, 謝錫城, 盧志遠. 矯正心電信號中基線漂移的數(shù)字濾波技術(shù)及其實現(xiàn)[J]. 中國醫(yī)療器械信息, 2003, 9(6): 12-14.
[7] Korpas D, Hálek J, Dolezal L. Parameters describing the pulse wave[J]. Physiol Res, 2009, 58(4): 473-479.
Application of the Mixed Programming with Labview and Matlab in Biomedical Signal Analysis
【 Writers 】Yu Lu, Zhang Yongde, Sha Xianzheng*
Department of Biomedical Engineering, China Medical University, Shenyang, Liaoning, 110001
Labview, Matlab, mixed programming, biomedical signal detection and analysis, pulse wave signal
R318
A
10.3969/j.isnn.1671-7104.2011.01.004
1671-7104(2011)01-0015-04
2010-08-24
于璐,講師,碩士研究生,研究方向:生物醫(yī)學信號檢測與處理
沙憲政,教授,研究方向:生物醫(yī)學傳感器及其在醫(yī)學上的應用;生物醫(yī)學信號檢測與處理;遠程醫(yī)療及家庭監(jiān)護系統(tǒng)。E-mail: xzsha@mail.cmu.edu.cn
【 Abstract】This paper introduces the method of mixed programming with Labview and Matlab, and applies this method in a pulse wave pre-processing and feature detecting system. The method has been proved suitable, efficient and accurate, which has provided a new kind of approach for biomedical signal analysis.