基于LabView編程實現(xiàn)的胎兒心電圖儀系統(tǒng)
1 前言
虛擬儀器是機(jī)技術(shù)與儀器相結(jié)合產(chǎn)生的一種新型儀器模塊,它通常是由計算機(jī)、模塊化的功能硬件與帶有數(shù)據(jù)處理、過程控制的可視化軟件構(gòu)成。本系統(tǒng)使用NI公司出品的LabView6.1圖形語言編程實現(xiàn)。LabView采用圖標(biāo)代替?zhèn)鹘y(tǒng)的文字代碼實現(xiàn)編程,圖標(biāo)代表的程序模塊都是NI公司開發(fā)的成熟程序模塊,因此,采用LabView編程可以大大提高系統(tǒng)開發(fā)效率。
胎兒監(jiān)護(hù)及圍產(chǎn)期監(jiān)護(hù)是產(chǎn)科中一項重要的監(jiān)護(hù)措施。常用的胎兒監(jiān)護(hù)方法有:超聲多普勒監(jiān)護(hù)、胎心音監(jiān)護(hù)和胎心電監(jiān)護(hù)。其中,胎兒心電監(jiān)護(hù)因其從母體腹部提取胎兒心電信號,對母體和胎兒無創(chuàng),特別是能同時觀察胎兒心電圖,其優(yōu)點明顯,是產(chǎn)科常用的診斷方法。
雖然腹部心電信號拾取方便,但是,母體腹部信號復(fù)雜,信噪比低,特別是一般母體心電信號比胎兒心電信號大10-20倍,而且胎兒心電約有10%-30%與母體心電重合,形成復(fù)雜的QRS波群,并且胎兒心電的頻譜與母體心電的頻譜重疊。這些因素給胎兒心電的檢測帶來了比較大的困難。學(xué)者們探索了一系列的信號處理方法解決這個,包括:匹配濾波法、自適應(yīng)濾波法等。本系統(tǒng)采用比較常用的匹配濾波法。
2 系統(tǒng)的實現(xiàn)
2.1系統(tǒng)概要
本系統(tǒng)由硬件數(shù)據(jù)采集器和普通PC機(jī)兩部分組成,通過RS-232口連接。PC機(jī)上的應(yīng)用程序采用圖形化編程語言LabView6.1實現(xiàn)。硬件數(shù)據(jù)采集器采樣獲得的數(shù)據(jù)以串行通信的方式發(fā)送給PC機(jī),PC機(jī)上的軟件通過RS-232接口模塊讀入波形數(shù)據(jù),并送預(yù)處理模塊,工頻陷波和抑制基線漂移后,進(jìn)行匹配濾波去除母親心電的干擾,最終在顯示器上顯示胎兒心電信號的波形。另外,PC機(jī)也可以串行通信方式控制硬件數(shù)據(jù)采集器的工作狀態(tài),如調(diào)整增益、時間常數(shù)等。
2.2 硬件信號采集系統(tǒng)
系統(tǒng)硬件由前置放大、工頻陷波、主放大器、單片機(jī)系統(tǒng)等幾部分組成。前置放大器將導(dǎo)聯(lián)傳人的信號適當(dāng)放大后,送工頻陷波器陷波,以防止可能出現(xiàn)的過強(qiáng)工頻干擾阻塞系統(tǒng)放大通道。隨后,信號經(jīng)過主放大器和末級放大器幾萬倍放大之后,單片機(jī)控制的A/D對其進(jìn)行400&TImes;12 bits/s采樣,數(shù)據(jù)經(jīng)RS-232接口送PC機(jī)處理。硬件部分是PIC單片機(jī)控制的高精度心電信號采集系統(tǒng)。該系統(tǒng)內(nèi)部采用12位高精度串行輸出A/D轉(zhuǎn)換器AD7895。采樣得到的數(shù)據(jù)通過單片機(jī)處理后將按照下面的幀格式通過串口發(fā)給PC機(jī)。系統(tǒng)采樣率為400Hz,數(shù)據(jù)傳輸速率為19.2kbps。該系統(tǒng)以低功耗為主要設(shè)計思想,其工作電流小于3mA,可以采用串口供電,無須外接電源。
其中,12個X表示12位A/D采樣得到的數(shù)據(jù);00、11為標(biāo)志位,00代表高6位,11代表低6位。另外,硬件部分也接收PC機(jī)的控制字。
2.3 軟件部分
軟件部分分為RS-232接口模塊、信號預(yù)處理、匹配濾波算法3部分,其中匹配濾波又包括相關(guān)檢測和波形對消2個部分。
2.3.1 RS-232接口模塊
(1)串口供電。由于硬件數(shù)據(jù)采集器工作電流比較小,本系統(tǒng)使用RS-232中空閑的握手信號線制成電源,使其工作因此,在主程序打開串口讀人數(shù)據(jù)前,必須對硬件數(shù)據(jù)采集器加電,使其處于工作狀態(tài)。在LabView中采用Serial Line Ctrl.Vi模塊,將RTS和DTR置相應(yīng)電子;(2)串口讀寫。由于硬件數(shù)據(jù)采集器在整個工作期間,以19.2kbps的速率連續(xù)向外發(fā)送數(shù)據(jù),為了數(shù)據(jù)處理方便,采用了Serial Read With TIme-out FT.vi模塊,以保證每次從串口緩存中讀出等量偶數(shù)個數(shù)據(jù)。用Serial Port Write.vi模塊發(fā)送控制字給硬件模塊。控制字的發(fā)送采用了LabView6.1中新增的事件驅(qū)動功能。
2.3.2信號預(yù)處理
主要功能是濾除工頻干擾和抑制基線漂移。
由于硬件系統(tǒng)采用串口供電,采集的信號中?;烊?0Hz的工頻干擾,必須加以抑制。抑制工頻干擾的可以從硬件和軟件2個方面來實現(xiàn)。在硬件方面,工頻干擾是一種共模信號,可以設(shè)計高質(zhì)量的前置放大器和良好的屏蔽以及優(yōu)秀的電源模塊減弱工頻干擾對系統(tǒng)的。在軟件方面,使用50Hz的數(shù)字陷波的方法。本系統(tǒng)的數(shù)字陷波器采用Lab-View6.1 Signal Processing Toolbox中的Equi-Ripple Band-Stop PtByPt.vi控件實現(xiàn)。
基線漂移的原因有多種,其中由于運動造成體表電極與皮膚之間細(xì)微的滑動和硬件元件熱效應(yīng)造成參數(shù)變化是主要原因。本系統(tǒng)采用非線性高通濾波的方法抑制基線漂移。具體方法是將腹部電信號通過中值濾波得到基線信號,并與原腹部信號相減。本系統(tǒng)采用的是Median Filter PtByPt.vi控件。顯示了實際處理效果,A為原始腹部信號;B為經(jīng)過中值濾波后的基線信號;C為抑制基線漂移后的腹部信號。
2.4 匹配濾波算法
2.4.1 數(shù)據(jù)隊列的生成
隊列是一種常用的數(shù)據(jù)結(jié)構(gòu),本系統(tǒng)使用這種數(shù)據(jù)結(jié)構(gòu)進(jìn)行匹配濾波。但是LabView6.1已有的隊列控件queue,并不能滿足使用要求,必須重新創(chuàng)建一個。這里采用與C語言中類似的作法,創(chuàng)建一個N個元素的數(shù)組變量main Buffer,將數(shù)據(jù)不斷從尾部移動到首部。是用LabView編程實現(xiàn)的長對為1000的雙精度浮點數(shù)隊列,與C語言實現(xiàn)不同之處在于隊列中數(shù)據(jù)移動的次數(shù)是1000,而不是999,這是因為LabView初始化與C語言不同所致。在LabView中,如果數(shù)組某個單元沒有被附值,那么,該單元不被初始化。
因此,如果N=999,則第998個單元將被初始化,第999個單元因為是讀,而沒有被初始化,而致使后面的新數(shù)據(jù)輸入操作無效。
2.4.2 相關(guān)檢測算法
信號與檢測模板的互相關(guān)運算,其中:S表不經(jīng)過抑制基線操移和去除工頻干擾的腹部電信號;T表示系統(tǒng)內(nèi)部的檢測模板。經(jīng)過互相關(guān)運算后就可以進(jìn)行R峰檢測了。互相關(guān)運算采用Signal Processing Toolbox中的ColssCorrelaTIon.vi控件。
R峰檢測實際上是對互相關(guān)運算的結(jié)果進(jìn)行峰值檢測,以求得母親心電R峰的精確位置。用LabView系統(tǒng)自帶的峰值檢測控件Threshold Peak Deicer PtByPt.vi進(jìn)行檢測。
2.4.3 波形對消算法
波形對消算法的基本思想是把當(dāng)前母親心電QRS波群與先前求得的QRS波群模板進(jìn)行加權(quán)平均,出新的QRS波群模板,并與當(dāng)前QRS波群相減,濾除母親心電。臨床實驗獨立于主程序之外的定時中斷服務(wù)子程序完成顯示功能,程序設(shè)計思路簡單清晰、可讀性強(qiáng)。系統(tǒng)所用的24C01C操作簡單,3個管腳外,其余管腳接地即可。
3 系統(tǒng)軟件
系統(tǒng)軟件由主程序、顯示數(shù)字中斷服務(wù)子程序、功率控制中斷服務(wù)子程序、計時中斷服務(wù)子程序以及故障處理子程序組成。人眼視覺暫留時間為20ms,每位顯示時間間隔必須小于20ms。顯示中斷每次中斷間隔9ms,輪流切換顯示3位LED,每位數(shù)字的顯示時間間隔為18ms(<20ms),可以達(dá)到穩(wěn)定的視覺效果。計時中斷服務(wù)子程序包括正計時和倒計時,其中倒計時又分為以min為單位計時和以s為單位計時。故障處理子程序完成的功能是關(guān)閉系統(tǒng)中斷、關(guān)閉加熱輸出、根據(jù)采樣溫度判斷并顯示故障的類型(短路、斷路以及溫度超標(biāo))、發(fā)出報警以及等待用戶確認(rèn)故障信息后程序自動復(fù)位等功能。為了編程方便,本系統(tǒng)具體編制了按鍵檢測確認(rèn)子程序、從D轉(zhuǎn)換子程序、電壓\溫度轉(zhuǎn)換子程序、讀EEPROM以及寫EEPROM等子程序。
4 結(jié)束語
自動煎藥機(jī)以其突出的優(yōu)越性受到了各大與制藥廠家的歡迎,當(dāng)然它也存在一些需要解決的,即:如何解決先煎、后下問題,增加濃縮功能等。這些問題有待于在進(jìn)一步的實踐中不斷完善。過程中發(fā)現(xiàn)傳統(tǒng)的模板更新對母親心電QRS波群變化的跟蹤能力不強(qiáng),某些情況下不能徹底濾除母親心電QRS波群,本系統(tǒng)改進(jìn)了該方法。系統(tǒng)初始化時建立一個容量為N的模板庫,將檢測到的母親心電QRS波群存入該庫中,替換最初入庫的母親心電QRS波群,即構(gòu)建一個母親心電QRS波群隊列,隨后按照新高舊低的優(yōu)先級原則進(jìn)行加權(quán)平均。各母親心電QRS波群的權(quán)系數(shù)。
用信號流圖的形式表示該算法。展示了系統(tǒng)對腹部電信號進(jìn)行匹配濾波處理后的效果,A為從腹部提取的電信號;B為改進(jìn)模板更新方法后的胎兒心電信號;C為采用傳統(tǒng)模板更新方法的胎兒心電信號,*表示母親心電的殘余。
5 結(jié)論
本系統(tǒng)硬件無須另配電源,系統(tǒng)結(jié)構(gòu)更簡單。軟件采用LabView6.1進(jìn)行圖形化編程,直接使用NI公司提供的多種成熟的軟件模塊,因而大大節(jié)省系統(tǒng)開發(fā)時間和成本。本系統(tǒng)具有信號基線校正功能,改進(jìn)了傳統(tǒng)匹配濾波模板更新的方法,經(jīng)過近20例臨床測試,均取得良好效果。本系統(tǒng)在胎兒心電波群的識別上仍有改進(jìn)的空間。