摘要:胎兒心率是衡量胎兒健康狀況的一項重要信息。利用胎心儀對胎兒心率進行監(jiān)測是實現(xiàn)優(yōu)生優(yōu)育的一個重要手段。介紹了以AT89C51單片機為核心部件,以自相關(guān)算法處理數(shù)據(jù)為技術(shù)關(guān)鍵的超聲多普勒胎心監(jiān)測儀的實現(xiàn)方案。該方案由兩片單片機分別擔(dān)任取樣和自相關(guān)計算的任務(wù),很好地解決了低檔單片機運行速度不夠的問題,這也是所述方案的一個重要特點。 關(guān)鍵詞:胎心儀;單片機;自相關(guān)分析 1 引言 胎心率是指胎兒心臟每分鐘跳動的次數(shù),是評判胎兒狀況的重要信息,正常胎兒的心跳速率大約為每分鐘120次~160次。當(dāng)胎兒的心跳速率低于每分鐘99次或大于每分鐘180次,就屬于心率異常。出現(xiàn)胎兒心率異常的原因大多是由于胎兒缺血、缺氧造成的,嚴(yán)重的胎兒缺血、缺氧會導(dǎo)致出生缺陷,出生缺陷目前已成為影響我國人口質(zhì)量的一個嚴(yán)重問題。因此,應(yīng)該密切關(guān)注胎兒心率的變化情況。 隨著現(xiàn)代電子技術(shù)的不斷發(fā)展,采用超聲多普勒原理的胎心檢查已經(jīng)普及。在為孕婦進行常規(guī)檢查時多采用多普勒胎心儀,用于檢查胎兒心率是否正常。這種產(chǎn)品操作簡單、使用方便,價格便宜,不但占據(jù)著一定的醫(yī)療市場,甚至還有進一步走入家庭的趨勢,特別是在我國的一些縣、鄉(xiāng)、鎮(zhèn)醫(yī)院,多普勒胎心儀將有廣泛的應(yīng)用。 目前一些廠家所生產(chǎn)的胎心儀一般都采用放大、整形、計數(shù)的方法對超聲探頭的所接收的信號進行處理,或在放大、整形的基礎(chǔ)上進行數(shù)字濾波,將高頻部分濾除,得到包含胎兒心跳信息的低頻部分,通過低頻信號頻率,計算出胎心率。這種基于模擬和數(shù)字濾波的方法有某些優(yōu)點,但是這些方法存在從含有噪聲的信號中提取信息的能力不夠強的問題,因而導(dǎo)致測量的精度不理想。本文提出了一種基于單片機和自相關(guān)分析的超聲多普勒胎心儀設(shè)計方案,并可將測得結(jié)果通過數(shù)碼管顯示,極大方便了用戶的使用。 根據(jù)相關(guān)檢測理論,確定性信號在不同時刻的取值一般具有較強的相關(guān)性;而對于干擾噪聲,其隨機性較強,不同時刻取值的相關(guān)性較差,因此利用相關(guān)技術(shù)可以將胎兒心跳信號和各種干擾信號區(qū)分開來。信號的自相關(guān)函數(shù)是指信號與其延時信號的相似性,它是一個時間函數(shù),無論是隨機信號還是周期性信號,其自相關(guān)函數(shù)不僅與波形有關(guān),而且還與其頻率有關(guān)。利用自相關(guān)函數(shù)可從噪聲中恢復(fù)有用信號[1]。 信號x(t)的自相關(guān)函數(shù)定義為:
根據(jù)自相關(guān)函數(shù)的性質(zhì),當(dāng)的取值剛好等于信號的周期時,其自相關(guān)函數(shù)存在峰值。因此可根據(jù)信號的帶寬取不同的值(即延時值)計算自相關(guān)函數(shù)值,利用其自相關(guān)函數(shù)峰值的位置即可確定周期性信號的周期和頻率。同樣,對胎心信號進行采樣、存儲,根據(jù)測量范圍取不同的延時值,計算自相關(guān)函數(shù)值。當(dāng)自相關(guān)函數(shù)值最大時,由其值即可計算出胎心信號的頻率。 2 胎心儀的硬件設(shè)計 超聲多普勒胎心儀的系統(tǒng)框圖如圖1所示。主要由超聲多普勒胎心探頭、前置放大器、放大檢波、脈沖形成、數(shù)字處理、LED顯示等單元組成,整個系統(tǒng)以數(shù)字信號處理單元為核心。
圖 1 胎心監(jiān)測儀系統(tǒng)框圖 超聲多普勒胎心探頭所接收到的胎心信號經(jīng)過放大檢波和脈沖形成電路,得到胎兒心跳的脈沖信號,對該信號進行計數(shù)即可計算出胎兒的心率,但由于各種噪聲干擾,導(dǎo)致測量數(shù)據(jù)不準(zhǔn)確。為此,將脈沖信號送入數(shù)字處理單元作自相關(guān)計算,計算出胎兒心率并送到顯示部分顯示。其中數(shù)字信號處理單元由采樣和顯示控制單元、相關(guān)計算單元組成。 采樣和顯示控制單元電路主要由一片ATMEL的AT89C1051單片機構(gòu)成。其主要功能是通過AT89C1051的P3.0口對脈沖形成電路所輸出的胎心信號進行采樣并將采樣數(shù)據(jù)組織成字節(jié)數(shù)據(jù),以中斷方式送到相關(guān)計算單元的外部數(shù)據(jù)存儲器存儲。同時相關(guān)計算單元計算出結(jié)果后再以中斷方式將計算結(jié)果送回該芯片, 由該芯片負(fù)責(zé)將結(jié)果通過LED顯示出來。 在采樣單元中,關(guān)鍵是采樣頻率的確定,正常的胎兒心率范圍是120~160拍/分,為此將胎心監(jiān)測儀的測量范圍定為60~210拍/分,為了達到1拍的分辨率,也就是使胎心儀能夠區(qū)分209拍和210拍,計算的時間分辨率應(yīng)為:
為計算方便將取樣頻率定為768Hz,這樣每秒鐘可產(chǎn)生96個字節(jié)的數(shù)據(jù),相應(yīng)的時間分辨率約為0.0013021秒,能夠滿足測量精度的要求。 相關(guān)計算機單元主要是由一片AT89C51單片機、一片8位地址鎖存器74HC373和一片32KB的SRAM62256組成,其主要功能是接收來自采樣單元的胎心信號數(shù)據(jù),將其存儲在外部數(shù)據(jù)存儲器中,并對數(shù)據(jù)進行自相關(guān)計算以濾除各種干擾噪聲,達到精確測量胎心率的目的。其電路如圖2所示。
圖 2 相關(guān)計算單元電路
相關(guān)計算單元中,使用AT89C51內(nèi)部4KB的程序存儲器存放程序,另外設(shè)計了32KB的外部數(shù)據(jù)存儲器存放采樣數(shù)據(jù)和計算的中間結(jié)果,其地址范圍為0000H~7FFFH。其中0000H~7DFFH這個區(qū)域用來循環(huán)存放采樣的數(shù)據(jù),7E00H~7FFFH用來存放自相關(guān)計算的結(jié)果。當(dāng)采樣單元每采集到8個樣點數(shù)據(jù)后,將采樣數(shù)據(jù)組成字節(jié),通過AT89C51的INT0引腳向CPU申請中斷,CPU響應(yīng)中斷通過P1口將數(shù)據(jù)讀入并通過P0口將數(shù)據(jù)寫到外部數(shù)據(jù)存儲器存儲。 3 胎心儀的軟件設(shè)計 由于胎心儀使用兩片單片機分別完成采樣和相關(guān)計算的任務(wù),所以胎心儀的軟件設(shè)計分為2個部分。所有程序采用AT89C51的匯編語言編制,具有程序執(zhí)行速度快,占用存儲空間少的特點,其軟件系統(tǒng)結(jié)構(gòu)如圖3所示。
圖 3 胎心儀的軟件結(jié)構(gòu)圖 采樣單元的關(guān)鍵程序是采樣中斷處理程序。由AT89C1051內(nèi)部的定時器0按照768Hz的采樣頻率向CPU申請中斷,CPU響應(yīng)中斷獲得定時器0的中斷服務(wù)程序的入口地址,轉(zhuǎn)去執(zhí)行采樣中斷處理程序。該程序使用單片機內(nèi)部數(shù)據(jù)存儲器的0FH單元作“位計數(shù)器”,其初始值為01H,用0EH單元存放采樣到的字節(jié)數(shù)據(jù),用00H單元存放剛剛采樣的位數(shù)據(jù),根據(jù)P3.0口的狀態(tài)是0或1,將00H單元置“0”或置“1”,再根據(jù)00H單元的內(nèi)容及“位計數(shù)器”的值將0EH單元的相應(yīng)位置“0”或置“1”,每讀入一個采樣值將“位計數(shù)器”的值右移一位,當(dāng)“位計數(shù)器”的值再次等于01H時,表示已采樣到一個字節(jié)的數(shù)據(jù),通過P3口的P3.7向相關(guān)計算單元的CPU申請中斷,并將0EH單元的數(shù)據(jù)通過P1口送到相關(guān)計算單元的外部數(shù)據(jù)存儲器中存儲。 相關(guān)計算單元的主程序的功能是計算自相關(guān)函數(shù)值,根據(jù)自相關(guān)函數(shù)的峰值所對應(yīng)的K,采用查表方法得到胎心信號的頻率。由于要對不同延時值所對應(yīng)的自相關(guān)函數(shù)值進行比較,因此可將計算自相關(guān)函數(shù)值的公式簡化為:
(3)自相關(guān)函數(shù)值的計算:對于每一個k值需要計算∑x(n)x(n-k),由于N的值為1536,而采樣數(shù)據(jù)x(n)是按字節(jié)組織的,一共需要192個字節(jié)的數(shù)據(jù)。每次將存儲在外部數(shù)據(jù)存儲器某個單元中的8個樣點值x(n)與x(n-k)的8個樣點值做乘法,需連續(xù)計算192個字節(jié),x(n)的8個樣點值一定是在同一字節(jié)中,而x(n-k)的8個樣點值有可能不在同一個字節(jié)中,需要將相鄰的兩個字節(jié)中的幾位做組合,與x(n)做乘法運算(邏輯與運算),將邏輯與運算后“1”的個數(shù)累加并存放在內(nèi)部數(shù)據(jù)存儲器的一個字單元中,經(jīng)過192(1536/8)次循環(huán)可計算出針對某一個k值的∑x(n)x(n-k),每計算出一個結(jié)果將其保存在外部數(shù)據(jù)存儲器。從48拍/分開始計算,一直到240拍/分為止,循環(huán)對每一個k值計算∑x(n)x(n-k),經(jīng)過一輪193(240-48+1)次的計算,可得到所有k值的∑x(n)x(n-k),對計算結(jié)果進行比較,得到∑x(n)x(n-k)的最大值及所對應(yīng)的k值,該k值就是自相關(guān)函數(shù)峰值的位置,即胎兒心跳信號的周期。根據(jù)k的值通過查表的方法即可得到對應(yīng)的胎兒心率。 4 結(jié)論 本文介紹了一種基于單片機和自相關(guān)分析的胎心監(jiān)測儀的設(shè)計方案。根據(jù)該方案設(shè)計的胎心儀具有高精度、抗干擾能力強的特點,胎心率的測量范圍在60~210次/分,測量誤差為1次/分,其技術(shù)指標(biāo)均符合國家醫(yī)藥行業(yè)有關(guān)超聲多普勒胎心監(jiān)護儀的標(biāo)準(zhǔn)。同時該胎心儀還具有使用方便,價格低廉,特別適合中小醫(yī)院和家庭監(jiān)護的特點。 參考文獻 [1]徐科軍 主編,信號分析與處理[M],清華大學(xué)出版社,2006.4 [2]高晉占 編著,微弱信號檢測[M],清華大學(xué)出版社,2004.11 [3] John G.Proakis、Dimitris G.Manolakis 著,張曉林、肖創(chuàng)柏 譯,數(shù)字信號處理—原理、算法與應(yīng)用,第三版[M],電子工業(yè)出版社,2004.5 93-103 [4]劉海英 一種新型智能型胎兒監(jiān)護系統(tǒng)的研究與設(shè)計[J] 微計算機信息 2006.6 28—30 本文作者創(chuàng)新點:本文介紹的胎心儀的實現(xiàn)方案以AT89C51單片機為核心部件,以自相關(guān)算法處理數(shù)據(jù)為技術(shù)關(guān)鍵,由兩片單片機分別擔(dān)任取樣和自相關(guān)計算的任務(wù),很好地解決了低檔單片機運行速度不夠的問題。 作者簡介:朱韶紅,女,(1960-),漢族,碩士,計算機應(yīng)用專業(yè),北京物資學(xué)院副教授,主要從事計算機應(yīng)用研究。E-Mail:zhushaohong988@sina.com。 聯(lián)系方式:郵編:101149 北京市通州區(qū)北京物資學(xué)院 信息學(xué)院,朱韶紅收。 |