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