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