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