江培海, 黃啟俊, ?!?, 王 豪, 何 進(jìn)
(武漢大學(xué) 物理科學(xué)與技術(shù)學(xué)院,湖北 武漢 430072)
?
基于SoC FPGA的心電信號(hào)檢測(cè)系統(tǒng)設(shè)計(jì)*
江培海, 黃啟俊, 常勝, 王豪, 何進(jìn)
(武漢大學(xué) 物理科學(xué)與技術(shù)學(xué)院,湖北 武漢 430072)
摘要:設(shè)計(jì)實(shí)現(xiàn)了一種基于片上系統(tǒng)現(xiàn)場(chǎng)可編程門(mén)陣列(SoC FPGA)的心電信號(hào)(ECG)檢測(cè)系統(tǒng)。系統(tǒng)通過(guò)具有高輸入阻抗、高共模抑制比和低噪聲的前置采集放大電路,實(shí)現(xiàn)心電信號(hào)的拾取和預(yù)處理。通過(guò)基于SoC FPGA的硬件平臺(tái)和移植的嵌入式Linux開(kāi)發(fā)環(huán)境的軟硬協(xié)同設(shè)計(jì)方式,完成了心電信號(hào)的A/D轉(zhuǎn)換、VGA顯示、Micro SD卡數(shù)據(jù)存儲(chǔ)和心電信號(hào)算法處理,能夠?qū)π碾娦盘?hào)進(jìn)行小波分析和QRS波檢測(cè),實(shí)現(xiàn)了對(duì)心電信號(hào)的采集、顯示、存儲(chǔ)和處理。
關(guān)鍵詞:片上系統(tǒng)現(xiàn)場(chǎng)可編程門(mén)陣列; 心電信號(hào); Linux; 小波分析; QRS波檢測(cè)
0引言
心電信號(hào)(electrocardiogram,ECG) 能夠客觀反映心臟各部分的生理狀況,也是用來(lái)診斷心臟疾病的主要依據(jù),由于其具有易于檢測(cè)和有較好直觀性等特點(diǎn),在臨床醫(yī)學(xué)中得到較為廣泛的研究與應(yīng)用[1,2]。自1906年,第一臺(tái)心電圖儀用于臨床以來(lái),各種形式的心電監(jiān)護(hù)儀相繼出現(xiàn)。傳統(tǒng)的心電圖檢測(cè)儀器多以單片機(jī)、PC為核心設(shè)計(jì),系統(tǒng)笨重、檢測(cè)手段單一,不利于系統(tǒng)集成度的提高和小型化實(shí)現(xiàn),或造成系統(tǒng)的使用不便[3]。由于可穿戴設(shè)備和移動(dòng)醫(yī)療的興起,心電監(jiān)護(hù)儀正向小型化、便攜式、智能化方向發(fā)展[4]。
本文設(shè)計(jì)了一種基于片上系統(tǒng)現(xiàn)場(chǎng)可編程門(mén)陣列(SoC FPGA)心電信號(hào)檢測(cè)處理系統(tǒng),通過(guò)A/D混合設(shè)計(jì)和軟硬協(xié)同設(shè)計(jì)的方法,實(shí)現(xiàn)了心電信號(hào)檢測(cè)系統(tǒng)。信號(hào)采集由模擬前端電路完成,利用SoC FPGA可重配置和軟硬協(xié)同設(shè)計(jì)等優(yōu)勢(shì),通過(guò)軟件編程對(duì)信號(hào)進(jìn)行A/D轉(zhuǎn)換、VGA顯示、數(shù)據(jù)存儲(chǔ)和算法處理,從而實(shí)現(xiàn)信號(hào)采集、顯示、存儲(chǔ)和處理等多功能集于一體的心電檢測(cè)處理系統(tǒng)。
1心電信號(hào)檢測(cè)系統(tǒng)設(shè)計(jì)
心電信號(hào)檢測(cè)監(jiān)護(hù)系統(tǒng)是一個(gè)模擬和數(shù)字的混合系統(tǒng),主要分為體表心電信號(hào)采集電路和以SoC FPGA為核心的心電信號(hào)數(shù)字處理系統(tǒng)。采集電路接入醫(yī)用導(dǎo)聯(lián)線通過(guò)貼片電極拾取心電信號(hào),心電信號(hào)經(jīng)過(guò)采集電路放大和模擬濾波處理后進(jìn)入SoC FPGA,先由HPS端ARM嵌入式硬核上基于Linux的應(yīng)用程序控制進(jìn)行A/D轉(zhuǎn)換,轉(zhuǎn)換為數(shù)字信號(hào)在FPGA端進(jìn)行VGA顯示,同時(shí)將數(shù)字信號(hào)傳輸?shù)紿PS端,可以對(duì)數(shù)字信號(hào)進(jìn)行算法處理和存儲(chǔ)到Micro SD卡上。SoC FPGA軟硬協(xié)同的開(kāi)發(fā)方式對(duì)硬件設(shè)計(jì)和心電信號(hào)后續(xù)算法處理的軟件開(kāi)發(fā)都極為方便。按功能模塊劃分系統(tǒng)整體架構(gòu)如圖1所示。
圖1 系統(tǒng)框圖Fig 1 System block diagram
1.1體表心電信號(hào)采集電路
正常心電信號(hào)幅值范圍在10 μV~5 mV,典型值為1 mV,頻率范圍在0.05~100 Hz,同時(shí)心電信號(hào)對(duì)噪聲非常敏感。因此,心電信號(hào)采集電路需要具備高輸入阻抗、高共模抑制比、低噪聲和低漂移等方面性能。體表心電采集電路由前置放大電路和后級(jí)放大電路組成。
1.1.1前置放大電路
前置放大電路主要是對(duì)拾取到的心電信號(hào)進(jìn)行初步放大和去噪,以利于后級(jí)放大和處理。心電信號(hào)中的噪聲主要有工頻干擾、肌電干擾、基線漂移和高頻噪聲。
1)前置放大電路設(shè)計(jì)
前置放大電路由前級(jí)放大電路、帶通濾波電路和50 Hz工頻陷波電路組成,其中,前級(jí)放大電路又包括輸入保護(hù)電路、右腿驅(qū)動(dòng)電路和儀表運(yùn)放放大電路組成,如圖2所示。
圖2 前置放大電路Fig 2 pre-amplifier circuit
由于系統(tǒng)要接到體表采集信號(hào),需要考慮信號(hào)采集過(guò)程中人體保護(hù)的問(wèn)題,系統(tǒng)中在采集電路的輸入級(jí)前端選擇加入耐壓值很高的瞬態(tài)電壓抑制(transient voltage suppressors,TVS)二極管來(lái)保護(hù)人體和電路。右腿驅(qū)動(dòng)電路是在采集心電信號(hào)中用于接參考電極,可以有效地消除采集到信號(hào)中的共模干擾[5]。儀表運(yùn)算放大電路完成心電信號(hào)的初級(jí)放大,同時(shí)還要具有高輸入阻抗、高共模抑制比、低噪聲和低漂移的特性。綜合考慮,選擇ADI公司的精密儀表運(yùn)放AD8220芯片,為了防止出現(xiàn)飽和失真,前級(jí)增益設(shè)置為20倍[6]。
2)工頻干擾和基線漂移的消除
采集電路拾取的心電信號(hào)中有低頻的基線漂移和高頻干擾,還有在心電信號(hào)頻率范圍內(nèi)的50 Hz工頻干擾,這些噪聲對(duì)心電信號(hào)提取的影響非常大。設(shè)計(jì)了基于通用有源濾波模塊UAF42的帶通濾波器和50 Hz工頻陷波器。帶通濾波器電路的通頻帶為0.05~100 Hz,濾除了基線漂移等低頻干擾和高頻噪聲,工頻陷波器能有效濾除工頻噪聲。通過(guò)UAF42可以方便地設(shè)計(jì)出各種類型和頻率特性的濾波器,只需要計(jì)算出合適阻值的外接電阻器, 經(jīng)過(guò)簡(jiǎn)單的連接就能很好地滿足設(shè)計(jì)要求,免去了在有源濾波器的設(shè)計(jì)當(dāng)中對(duì)電容器、電阻器的選型和匹配的工作[7]。工頻陷波器電路圖如圖3所示。
圖3 工頻陷波電路Fig 3 Power frequency notch circuit
使用兩片UAF42芯片構(gòu)成4階陷波器增加陷波深度,設(shè)計(jì)工頻陷波電路Q值為50,50 Hz陷波深度為-110 dB。相比于傳統(tǒng)的雙T陷波器,此陷波器中心頻率在設(shè)計(jì)時(shí)就可設(shè)置好,免去了陷波中心頻率的調(diào)試。此外,只需要連接設(shè)計(jì)時(shí)計(jì)算好電阻值的電阻器即可,免去了電容器的選型和匹配。
1.1.2后級(jí)放大電路
后級(jí)放大電路由二級(jí)放大電路、光電隔離電路和低通濾波器電路組成。由于在前置放大電路中,儀表運(yùn)放的增益值和帶通濾波器的增益值都不能設(shè)得太高,避免噪聲竄入后幅值放大過(guò)大和產(chǎn)生振蕩而對(duì)有效信號(hào)干擾嚴(yán)重,所以,總體增益幅度為1 000~3 500,放大系統(tǒng)的增益將由多級(jí)增益電路實(shí)現(xiàn)。二級(jí)放大電路能夠?qū)⑾到y(tǒng)的增益達(dá)到設(shè)定值,由運(yùn)放接成電壓負(fù)反饋的形式,控制整體電路的增益。光電隔離電路選用了一種低成本的精密電容線性光耦芯片ISO124,實(shí)現(xiàn)前后電路的電氣隔離而避免反饋噪聲的影響。低通濾波器主要是為了對(duì)由光電耦合引入的高頻噪聲進(jìn)行消除,避免前級(jí)電路的高頻噪聲進(jìn)入數(shù)字電路板。后級(jí)放大電路實(shí)現(xiàn)了模擬電路板和數(shù)字電路板的電氣隔離。
1.2心電信號(hào)SoC FPGA數(shù)字處理系統(tǒng)設(shè)計(jì)
1.2.1SoC FPGA的結(jié)構(gòu)和特點(diǎn)
本文設(shè)計(jì)使用Altera公司推出的基于28 nm工藝的Cyclone V SoC FPGA作為硬件設(shè)計(jì)平臺(tái),這種新型的 SoC FPGA 將兩個(gè)分立的不同類型的芯片結(jié)合在一起,將基于ARM的硬核處理器系統(tǒng)(hard processor system,HPS)集成在 FPGA架構(gòu)中[8]。
使用Altera公司的嵌入式系統(tǒng)設(shè)計(jì)套裝(embedded design suite,EDS)SoC進(jìn)行軟硬件的設(shè)計(jì)開(kāi)發(fā)。用集成Quartus II中的新一代SOPC工具Qsys進(jìn)行硬件模塊的設(shè)計(jì),它能自動(dòng)生成互聯(lián)邏輯,連接知識(shí)產(chǎn)權(quán)(IP)功能和子系統(tǒng),SoC EDS還提供了由Qsys 硬件系統(tǒng)信息轉(zhuǎn)換為軟件開(kāi)發(fā)所需的工具,使得軟硬件設(shè)計(jì)銜接起來(lái),支持 Linux應(yīng)用開(kāi)發(fā),借助于DS—5可完成從啟動(dòng)代碼、內(nèi)核移植到Linux應(yīng)用程序的軟件設(shè)計(jì)[9]。
1.2.2心電信號(hào)數(shù)字處理系統(tǒng)
數(shù)字系統(tǒng)包括A/D轉(zhuǎn)換模塊、VGA顯示模塊、數(shù)據(jù)存儲(chǔ)模塊和算法處理模塊。SoC FPGA中的HPS和其它的硬件模塊可以通過(guò)Qsys進(jìn)行配置,用Quartus II進(jìn)行硬件設(shè)計(jì),Qsys和Quartus II編譯可以產(chǎn)生軟件設(shè)計(jì)所需的信息文件。移植嵌入式Linux系統(tǒng),下載sof文件,用DS—5進(jìn)行基于Linux的系統(tǒng)軟件工程開(kāi)發(fā)[10]。
系統(tǒng)的A/D轉(zhuǎn)換器采用的是ADI公司的8通道12位高精度低功耗A/D轉(zhuǎn)換芯片AD7928,轉(zhuǎn)換速率為1MSPS。美國(guó)心臟學(xué)會(huì)推薦的采樣率為500 Hz,但實(shí)際中不同應(yīng)用有不同的采樣率,一般為125~1 000 Hz,監(jiān)護(hù)時(shí)多采用200 Hz或250 Hz,輔助分析時(shí)多用400~500 Hz,而心電HOLTER一般取125~200 Hz,本系統(tǒng)采用200 Hz。編寫(xiě)程序控制A/D轉(zhuǎn)換和數(shù)據(jù)緩存,產(chǎn)生控制VGA需要的行同步信號(hào)與列同步信號(hào),消隱信號(hào)、時(shí)鐘信號(hào)、RGB信號(hào)使屏幕正常工作。嵌入式Linux文件系統(tǒng)支持Micro SD卡數(shù)據(jù)的寫(xiě)入和讀取,將數(shù)字信號(hào)通過(guò)AXI橋傳輸?shù)紿PS端,軟件工程實(shí)現(xiàn)心電信號(hào)的算法處理和Micro SD卡數(shù)據(jù)存儲(chǔ)。系統(tǒng)數(shù)字部分結(jié)構(gòu)簡(jiǎn)圖如圖4所示。
圖4 系統(tǒng)數(shù)字部分架構(gòu)Fig 4 System digital part architecture
2系統(tǒng)測(cè)試
系統(tǒng)設(shè)計(jì)完成后對(duì)前端采集電路和整體系統(tǒng)進(jìn)行調(diào)試和測(cè)試。采用三導(dǎo)聯(lián)方式安放醫(yī)用貼片式Ag/AgCl心電電極, 通過(guò)醫(yī)用導(dǎo)聯(lián)線連接到心電信號(hào)采集系統(tǒng)進(jìn)行測(cè)試。
2.1模擬前端采集電路測(cè)試
受測(cè)者佩戴心電電極,用醫(yī)用導(dǎo)聯(lián)線接入到模擬前端采集電路,后端接入示波器,待信號(hào)穩(wěn)定后就可以在示波器上觀測(cè)到心電信號(hào)波形,圖5即為模擬前端電路實(shí)際測(cè)試波形圖。
圖5 模擬前端電路實(shí)際測(cè)試波形圖Fig 5 AFE circuit test waveform
2.2系統(tǒng)整體測(cè)試
接入整體系統(tǒng),運(yùn)行軟件工程,系統(tǒng)存儲(chǔ)一段時(shí)間的心電信號(hào),取出Micro SD卡,讀取存儲(chǔ)的數(shù)據(jù)還原后心電信號(hào)波形如圖6所示。
圖6 系統(tǒng)測(cè)試心電信號(hào)波形Fig 6 System test ECG waveform
3心電信號(hào)算法處理
心電信號(hào)算法處理隨著智能醫(yī)療的應(yīng)用變得越來(lái)越廣泛。在健康監(jiān)護(hù)和疾病診斷等具體應(yīng)用環(huán)境中,傳統(tǒng)的算法處理都是基于硬件實(shí)現(xiàn)的,基于硬件的實(shí)現(xiàn)方法一般難度比較大而且耗費(fèi)資源,嵌入式Linux系統(tǒng)的移植大大方便了心電信號(hào)算法處理的軟件實(shí)現(xiàn)。在軟件工程中實(shí)現(xiàn)了心電信號(hào)的小波去噪和QRS波檢測(cè)。
3.1基于小波分析的心電信號(hào)去噪
采用小波分析的方法進(jìn)行心電信號(hào)去噪。小波分析由于能同時(shí)在時(shí)域和頻域中對(duì)信號(hào)進(jìn)行分析,具有多分辨分析的功能,所以,在不同的分解層上有效地區(qū)分信號(hào)的突變部分和噪聲。對(duì)含有噪聲的原始心電信號(hào)進(jìn)行小波分解后,噪聲部分主要集中在高頻小波系數(shù)中,包含有用信號(hào)的小波系數(shù)幅值較大,但數(shù)目少;而噪聲對(duì)應(yīng)的小波系數(shù)幅值小,數(shù)目較多?;谏鲜鎏攸c(diǎn),選取無(wú)偏似然估計(jì)閾值對(duì)小波系數(shù)進(jìn)行處理,然后對(duì)信號(hào)重構(gòu)即可達(dá)到消噪的目的。圖7為心電信號(hào)小波去噪前后對(duì)比,信噪比可以達(dá)到121 dB。
圖7 心電信號(hào)小波去噪Fig 7 ECG wavelet denoise
3.2基于小波分析的QRS波檢測(cè)
根據(jù)小波變換的理論, 信號(hào)的奇異點(diǎn)對(duì)應(yīng)于其小波變換的一個(gè)正模極大值和一個(gè)負(fù)模極大值對(duì),其位置對(duì)應(yīng)于正、負(fù)模極大值的過(guò)零點(diǎn),具體算法是尋找小波變換的模最大值,當(dāng)計(jì)算的信號(hào)模大于一定閾值時(shí), 就判定為QRS波群。同時(shí), 這個(gè)閾值也是隨著計(jì)算結(jié)果自適應(yīng)更新,在判定為QRS波群后, 再檢測(cè)過(guò)零點(diǎn)則可判定具體的R波位置。圖8即為心電信號(hào)QRS波群檢測(cè)和R波峰定位。
圖8 心電信號(hào)QRS波群和R波峰檢測(cè)Fig 8 QRS wave group and R peak detcction of ECG signal
對(duì)心電信號(hào)進(jìn)行小波分析檢測(cè)出R波波峰等特征點(diǎn)之后可以用提取到的特征值進(jìn)行模式識(shí)別和分類,例如:利用BP神經(jīng)網(wǎng)絡(luò)對(duì)心電圖ST段波形進(jìn)行形態(tài)分類[11]。
4結(jié)論
本文設(shè)計(jì)的基于SoC FPGA的心電信號(hào)檢測(cè)系統(tǒng)能夠很好地采集到心電信號(hào),實(shí)現(xiàn)了對(duì)心電信號(hào)的提取、顯示、存儲(chǔ)和處理。測(cè)試表明:系統(tǒng)的模擬前端電路可以采集到比較清晰地放大到合適倍數(shù)的心電信號(hào),系統(tǒng)整體的測(cè)試證明了設(shè)計(jì)的可行性。SoC FPGA軟硬結(jié)合的開(kāi)發(fā)方式能夠?qū)崿F(xiàn)心電信號(hào)的算法處理,使設(shè)計(jì)更為靈活,為心電信號(hào)的處理和分析提供了便利,也為智能醫(yī)療的實(shí)現(xiàn)提供了可能性。
參考文獻(xiàn):
[1]張大偉,王???,張斌.新型三導(dǎo)聯(lián)無(wú)線ECG 設(shè)計(jì)與其處理算法研究[J].傳感器與微系統(tǒng),2013,32(5):35-37.
[2]侯思羽.基于SOPC便攜式心電監(jiān)護(hù)系統(tǒng)的研究與設(shè)計(jì)[D].濟(jì)南:濟(jì)南大學(xué),2011.
[3]賈延江,李振波,張大偉,等.低功耗無(wú)線心電圖檢測(cè)系統(tǒng)與QRS復(fù)波檢測(cè)算法研究[J].傳感器與微系統(tǒng),2013,32(7):32-38.
[4]Lee S Y,Wang L H,Fang Q.A low-power RFID integrated circuits for intelligent healthcare system[J].IEEE Transactions on Information Technology in Biomedicine,2010,14(6):1387-1396.
[5]王明,李在軍,鐘維,等.基于FPGA的多功能生物電信號(hào)檢測(cè)系統(tǒng)[J].電子技術(shù)應(yīng)用,2013,39(6):34-39.
[6]鐘維,黃啟俊,常勝,等.基于SOPC的復(fù)合式生理信號(hào)檢測(cè)系統(tǒng)設(shè)計(jì)[J].傳感技術(shù)學(xué)報(bào),2014,27(4):446-451.
[7]顏良,陳儒軍,劉石,等.基于UAF42通用濾波芯片的50Hz陷波器設(shè)計(jì)[J].儀器儀表學(xué)報(bào),2006,27(8):927.
[8]白月明.基于SoC FPGA的視頻播放器設(shè)計(jì)[D].西安:西安電子科技大學(xué),2014.
[9]劉杰.基于模型的設(shè)計(jì)——Qsys篇[M].北京:機(jī)械工業(yè)出版社,2012.
[10] 任愛(ài)鋒,羅豐,宋士權(quán),等.基于FPGA的嵌入式系統(tǒng)設(shè)計(jì)——Altera SoC FPGA[M].西安:西安電子科技大學(xué)出版社,2014.
[11] 李在軍,王明,鐘維,等.基于SOPC的心電信號(hào)QRS波和ST段檢測(cè)與識(shí)別[J].武漢大學(xué)學(xué)報(bào):理學(xué)版,2014,60(2):122-128.
Design of ECG detecting system based on SoC FPGA*
JIANG Pei-hai, HUANG Qi-jun, CHANG Sheng, WANG Hao, HE Jin
(School of Physics Science and Technology,Wuhan University,Wuhan 430072,China)
Abstract:Design and implement an electrocardiogram signal(ECG)detecting system based on system on chip field programmable gate array(SoC FPGA).ECG can be acquired and preprocessed by pre-acquisition amplifier circuit with high input impedance,high co-mode restrain ratio and low noise.Through design approach which combined hardware and software based on SoC FPGA hardware platform and embedded Linux development environment,complete analog to digital conversion of ECG,VGA display,data storage in Micro SD card and ECG process with algorithms,wavelet analysis and QRS wave detection on ECG can be completed,realize acquisition,display,storage and processing of ECG.
Key words:system on chip field programmable gate array(SoC FPGA); electrocardiogram (ECG); Linux; wavelet analysis; QRS wave detection
DOI:10.13873/J.1000—9787(2016)02—0074—04
收稿日期:2015—04—20
*基金項(xiàng)目:公益性行業(yè)科技專項(xiàng)項(xiàng)目(GYHY20106049—5)
中圖分類號(hào):TN 710
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1000—9787(2016)02—0074—04
作者簡(jiǎn)介:
江培海(1990-),湖北黃岡人,碩士研究生,主要研究方向?yàn)樾碾娦盘?hào)檢測(cè)處理與嵌入式系統(tǒng)開(kāi)發(fā)。