《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 業(yè)界動(dòng)態(tài) > 基于FPGA的數(shù)字式心率計(jì)系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)

基于FPGA的數(shù)字式心率計(jì)系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)

2017-04-13
關(guān)鍵詞: 醫(yī)療健康 FPGA 心率計(jì)

  心率計(jì)是常用的醫(yī)學(xué)檢查設(shè)備,,實(shí)時(shí)準(zhǔn)確的心率測(cè)量在病人監(jiān)控,、臨床治療及體育競(jìng)賽等方面都有著廣泛的應(yīng)用,。心率測(cè)量包括瞬時(shí)心率測(cè)量和平均心率測(cè)量,。瞬時(shí)心率不僅能夠反映心率的快慢,。同時(shí)能反映心率是否勻齊;平均心率雖只能反映心率的快慢,,但記錄方便,,因此這兩個(gè)參數(shù)在測(cè)量時(shí)都是必要的,。

  測(cè)量心率有模擬和數(shù)字兩種方法,。模擬方法是在給定的時(shí)間間隔內(nèi)計(jì)算R波(或脈搏波)的脈沖個(gè)數(shù),,然后將脈沖計(jì)數(shù)乘以一個(gè)適當(dāng)?shù)某?shù)測(cè)量心率的。這種方法的缺點(diǎn)是測(cè)量誤差較大,、元件參數(shù)調(diào)試?yán)щy,、可靠性差。數(shù)字方法是先測(cè)量相鄰R波之間的時(shí)間,,再將這個(gè)時(shí)間轉(zhuǎn)換為每分鐘的心跳數(shù)測(cè)量心率的,。這種方法的優(yōu)點(diǎn)是測(cè)量精度高,、可靠性好,并且能同時(shí)測(cè)量瞬時(shí)心率和平均心率,。用數(shù)字方法測(cè)量心率的電路又分為兩種類(lèi)型:一種是使用一個(gè)可預(yù)置的計(jì)數(shù)器實(shí)現(xiàn)現(xiàn)除法電路;另一種是通過(guò)自動(dòng)下降的時(shí)鐘頻率測(cè)量相鄰R波之間的時(shí)間,。

  本心率計(jì)在數(shù)字式心率計(jì)的基礎(chǔ)上,采用FPGA和VHDL語(yǔ)言實(shí)現(xiàn),,減少了元器件使用數(shù)量,,提高了測(cè)量精度和可靠性。該電路能夠?qū)崟r(shí)采集并測(cè)量人體心跳的瞬時(shí)和平均心跳速率,,判斷并顯示心率狀態(tài)(即心跳是否正常,、是否過(guò)快或過(guò)慢、是否有心率不齊現(xiàn)象),。如果心率過(guò)快或過(guò)慢或者有心率不齊現(xiàn)象,,那么將用不同顏色發(fā)光管進(jìn)行閃爍報(bào)警顯示。

  1 測(cè)量方法及電路組成

  1.1 測(cè)試方法

  如上所述,,采用數(shù)字方法測(cè)量瞬時(shí)心率(Intantaneous Heart Rate,IHR)時(shí),,先測(cè)量?jī)上噜廟波之間的時(shí)間(即心率周期),再將這個(gè)心率周期轉(zhuǎn)換為每分鐘的心跳數(shù),。如圖1所示,,設(shè)心率周期為T(mén)秒,則瞬時(shí)心率的計(jì)算公式為IHR=60/T,。如果用頻率為f0的時(shí)鐘脈沖作為測(cè)量時(shí)間基準(zhǔn),,在T秒時(shí)間內(nèi)對(duì)時(shí)鐘脈沖計(jì)烽,并設(shè)計(jì)數(shù)值為N,,則T=N/f0秒,,故瞬時(shí)心率的計(jì)算公式為IHR=60f0/N,。當(dāng)f0=1kHz時(shí),,IHR=60×1000/N=60000/N。

  平均心率(Average Heart Rate)的測(cè)量是將一定時(shí)間內(nèi)測(cè)得的各個(gè)瞬時(shí)心率求平均值,。設(shè)測(cè)得的瞬時(shí)心率為IHR1,,IHR2,…,,IHRn,,則平均心率的計(jì)算公式為:

  AHR=(IHR1+IHR2+…+IHRn)/n

  1.2 電路組成

  系統(tǒng)的組成框圖如圖2所示。按下start開(kāi)關(guān)將啟動(dòng)測(cè)量過(guò)程,,由傳感器獲得的模擬心電信號(hào)(R波或脈搏波)經(jīng)過(guò)放大后加到比較器的一個(gè)輸入端,,與另一個(gè)輸入端的參考電壓進(jìn)行比較,將心電信號(hào)轉(zhuǎn)換為同周期的方波信號(hào),,再輸入FPGA進(jìn)行心率測(cè)量,。

  在FPGA中,,波形變換電路首先將這個(gè)脈沖寬較寬的方波信號(hào)進(jìn)行微分,轉(zhuǎn)換為脈沖寬度等于時(shí)鐘信號(hào)(clk1)一個(gè)周期的方波信號(hào),,通過(guò)周期計(jì)數(shù)器在心率周期T時(shí)間內(nèi)對(duì)時(shí)鐘信號(hào)計(jì)數(shù),,再根據(jù)前面給出的瞬時(shí)心率計(jì)算公式做除法運(yùn)算即可得到瞬時(shí)心率。瞬時(shí)心率通過(guò)譯碼電路轉(zhuǎn)換為七段顯示代碼后送到FPGA外部的三個(gè)LED顯示器上進(jìn)行顯示,。在一次測(cè)量結(jié)束時(shí),,心率計(jì)算模塊將測(cè)到的各個(gè)瞬時(shí)心率求平均,得到的平均心率轉(zhuǎn)換為七段顯示代碼也送到三個(gè)LED顯示器進(jìn)行顯示,。

  告警控制模塊根據(jù)每一個(gè)瞬時(shí)心率值判斷心率是否正常,、是否過(guò)快或過(guò)慢,并根據(jù)相鄰兩個(gè)瞬時(shí)心率值判斷是否有心率不齊現(xiàn)象,,分別以英文字母E(正常),、F或S(過(guò)快或過(guò)慢)及I(心率不齊)的七段顯示代碼送告警顯示電路中的三個(gè)LED顯示器進(jìn)行顯示,并將這三種心率狀態(tài)以8Hz的頻率送到告警顯示電路中顏色分別為綠,、紅,、黃的三個(gè)發(fā)光二極管進(jìn)行閃爍報(bào)警顯示。按下stop開(kāi)關(guān)將結(jié)束測(cè)量過(guò)程,,并將平均心率送三個(gè)LED顯示器進(jìn)行顯示,。

  系統(tǒng)的主時(shí)鐘頻率為32MHz,送到FPGA中的時(shí)鐘分頻電路產(chǎn)生1kHz和8Hz的時(shí)鐘頻率,,分別送到用作波形變換,、瞬時(shí)心率計(jì)算和心率狀態(tài)顯示的波形變換模塊、心率計(jì)算模塊和告警控制模塊,。系統(tǒng)中的數(shù)字電路全部由FPGA芯片實(shí)現(xiàn),,外圍只有少量的模擬器件,包括比較器,、LED和發(fā)光二極管顯示器,、電源電路及晶振電路等,因而系統(tǒng)的體積小,、工作穩(wěn)定,、可靠性高。

  2 FPGA中各模塊的電路組成及工作原理

  2.1 波形變換電路

  由比較器獲得的方波心率脈沖還不能直接用于心率測(cè)量,,因?yàn)槊}沖寬度太大,。要進(jìn)行正確的心率測(cè)量,必須對(duì)這個(gè)方波脈沖進(jìn)行微分,,將其寬度調(diào)整為一個(gè)時(shí)鐘周期寬,。微分電路如圖3所示。用VHDL語(yǔ)言編程時(shí),可用一個(gè)時(shí)鐘進(jìn)程實(shí)現(xiàn)這個(gè)微分電路,。圖3中各點(diǎn)波形如圖4所示,。

  2.2 心率計(jì)算電路

  根據(jù)瞬時(shí)心率計(jì)算公式及圖1,瞬時(shí)心率的計(jì)算應(yīng)以1kHz的時(shí)鐘頻率作為時(shí)間基準(zhǔn),,測(cè)量相鄰兩次心跳之間的時(shí)間,,然后做除法運(yùn)算。因此,,瞬時(shí)心率計(jì)算電路應(yīng)包括一個(gè)12位的二進(jìn)制計(jì)數(shù)器和一個(gè)16位的二進(jìn)制除法電路,。平均心率的計(jì)算應(yīng)根據(jù)測(cè)量結(jié)束前最后測(cè)得的16次心率值求平均,因此心率計(jì)算電路還應(yīng)包括一個(gè)能完成12位二時(shí)制數(shù)加法的電路和一個(gè)能完成12位二進(jìn)制數(shù)除法的電路,,這個(gè)除法運(yùn)算可通過(guò)移位寄存器右移四次來(lái)實(shí)現(xiàn),。計(jì)數(shù)器、加法器和移位寄存器在FPGA中用VHDL語(yǔ)言實(shí)現(xiàn)都很容易,。下面主要討論測(cè)量的實(shí)現(xiàn)方法,。

  瞬時(shí)心率計(jì)算公式是一個(gè)拋物線函數(shù),分母中計(jì)數(shù)值N是一個(gè)變量,,這個(gè)除法運(yùn)算不能通過(guò)簡(jiǎn)單的移位寄存器來(lái)實(shí)現(xiàn);而設(shè)計(jì)16位二進(jìn)制除法運(yùn)算電路,,無(wú)論采用組合電路還是采用時(shí)序電路,都將耗費(fèi)很多的芯片資源,。另一方面,,人的正常心率為60~120跳/分鐘,即使心率出現(xiàn)異常,,也不會(huì)超過(guò)20~200跳/分鐘,,因此所測(cè)量的心率值只有有限個(gè)數(shù)據(jù)。這樣,,可根據(jù)每一個(gè)可能出現(xiàn)的心率值,,預(yù)先求出N的變化范圍,制作一張表,,存入ROM中,。實(shí)際測(cè)量時(shí),再根據(jù)測(cè)到的N值,,選擇相應(yīng)的心率數(shù)據(jù),。假設(shè)心率的變化范圍為20~200,,則N的變化范圍為3077~300,。瞬時(shí)心率值IHR與計(jì)數(shù)值N的關(guān)系如表1所示。

  心率計(jì)算電路除了完成上述功能外,,還要將瞬時(shí)心率值和平均心率值轉(zhuǎn)換為七段顯示代碼,,再送入LED顯示器進(jìn)行數(shù)字顯示。

  2.3 告警控制電路

  告警控制電路的功能是根據(jù)心率計(jì)算電路得到的瞬時(shí)心率值來(lái)判斷心率的狀態(tài):心跳到否正常、是否過(guò)快或過(guò)慢,、是否心率不齊,。如果心率處于60~120的范圍,則心跳正常;如果心率小于60,,則心跳過(guò)慢,,如果心跳大于120,則心跳過(guò)快;如果相鄰兩次測(cè)量的心率值認(rèn)為心率不齊,。這些判斷是由一系列比較器完成的,,用VHDL語(yǔ)言實(shí)現(xiàn)比較簡(jiǎn)單,這里不再詳述,。

  完成比較判斷后,,告警控制電路將代表不同心率狀態(tài)的字母E(正常)、F或S(過(guò)快或過(guò)慢)及I(心率不齊)的七段顯示代碼以8Hz的頻率分別送到三個(gè)LED顯示器進(jìn)行報(bào)警顯示,,同時(shí)將不同心率狀態(tài)信號(hào)以8Hz的頻率分別送到三個(gè)不同顏色的發(fā)光二極管進(jìn)行報(bào)警顯示,。

  2.4 時(shí)鐘分頻電路

  時(shí)鐘分頻電路的功能是將系統(tǒng)提供的主時(shí)鐘進(jìn)行分頻,提供其它模塊電路所需的兩個(gè)時(shí)鐘(1kHz和8kHz),。其中,,周期計(jì)數(shù)器的時(shí)鐘(clk1)決定了周期計(jì)數(shù)器的位數(shù)。當(dāng)心率測(cè)量范圍為20~200跳/分鐘時(shí),,對(duì)慶的心率周期T為3~0.3秒,。若時(shí)鐘信號(hào)clk1的頻率f0=1kHz,則在最低心率(20跳/分鐘)時(shí)的計(jì)數(shù)值N=3/10 -3=3000,,因此計(jì)數(shù)器的位數(shù)為12位,。由下面的性能評(píng)價(jià)佛標(biāo)分析可知,更高的時(shí)鐘頻率可擴(kuò)大心率測(cè)量范圍并提高測(cè)量分辨率,,但同時(shí)分增加電路的復(fù)雜性;而報(bào)警控制電路的時(shí)鐘(clk2)決定了顯示閃爍的快慢,。在FPGA中,時(shí)鐘分頻電路一般是通過(guò)VHDL語(yǔ)言的進(jìn)程語(yǔ)句由計(jì)數(shù)器實(shí)現(xiàn)的,。

  3 性能評(píng)價(jià)指標(biāo)

  心率計(jì)數(shù)能評(píng)價(jià)指標(biāo)主要包括測(cè)量誤差和分辨率,。由表1可知,由于計(jì)數(shù)值N的邊辦取值對(duì)應(yīng)于相鄰兩個(gè)心率值的中點(diǎn),,故在20~200跳/分鐘范圍內(nèi)測(cè)量的每一個(gè)顯示心率值的誤差都為0.5跳/分鐘,。最大相對(duì)誤差(用百分比表示)如圖5所示。相對(duì)誤差的最大值發(fā)生在最低心率20跳/分鐘處,,隨著心率值的增加,,相對(duì)誤差減小。當(dāng)心率值大于或等于50跳/分鐘時(shí),,相對(duì)誤差小于1%,,而當(dāng)心率值大于100跳/分鐘時(shí),相對(duì)誤差小于0.5%。

  另一個(gè)性能指標(biāo)是儀器的分辨率,。由瞬時(shí)心率IHR=6×10 4/N和表1可知,,當(dāng)周期計(jì)數(shù)值N較小時(shí),N變化一個(gè)單位(增大或減小1)對(duì)應(yīng)瞬時(shí)心率變化比較大,。因此,,高心率處的分辨率較差,而低心率處的分辨率較好,。在瞬時(shí)心率接近200跳/分鐘時(shí),,N值很小,分辨率為1跳/分鐘;在較低的瞬時(shí)心率時(shí),,分辨率小于1跳/分鐘,。

  如果將時(shí)鐘頻率提高到8kHz,同時(shí)將周期計(jì)數(shù)器的位數(shù)提高到16位,,分辨率將會(huì)大幅提高,。此時(shí),在瞬時(shí)心率接近200跳/分鐘處,,分辨率會(huì)小于0.1跳/分鐘,,而在瞬時(shí)心率較低處,分辨率將進(jìn)一步變好,。因此,,在20~200跳/分鐘的心率范圍內(nèi),可以0.1跳/分鐘的分辨率顯示所有心率,。不過(guò),,將周期計(jì)數(shù)器從12位提高到16位會(huì)增加電路的復(fù)雜性。另外,,在實(shí)際心率測(cè)量中,,人們習(xí)慣1跳/分鐘的分辨率,更高的分辨率沒(méi)有必要,。

  基于FPGA的數(shù)字心率計(jì)測(cè)量精度高,,測(cè)量范圍寬,在20~200跳/分鐘的測(cè)試范圍內(nèi),,最大誤差為2.5%,,而當(dāng)心率大于50跳/分鐘時(shí),誤差小于1%,,而且它的工作穩(wěn)定性和可靠性好,、功耗低、不需要電路參數(shù)校正和靈敏度調(diào)節(jié),,能夠測(cè)量瞬時(shí)心率和平均心率,,并具有心率異常報(bào)警功能,。因此,,與文獻(xiàn)中報(bào)道的其它心率計(jì)相比,,具有更好的性能。

  歡迎分享本文,,轉(zhuǎn)載請(qǐng)保留出處:http://www.eechina.com/thread-158285-1-1.html     【打印本頁(yè)】


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]