何英杰,劉娟秀,梁飛
(成都工業(yè)學(xué)院電子工程學(xué)院,四川成都 611730)
我國心血管疾病患者已達3.3 億人,心血管疾病已經(jīng)是我國所有疾病發(fā)病率、死亡率的首位[1]。傳統(tǒng)的短時心電圖由于心電采集時間不長,在實際的診斷過程中很難診斷出心率異常。而動態(tài)心電圖(又叫長程心電圖)的采集時間很長,采集時患者的生活環(huán)境也更為多樣。為發(fā)現(xiàn)在常規(guī)體表心電圖檢查時不易發(fā)現(xiàn)的心律失常和心肌缺血等癥狀,為臨床診斷、治療及判斷療效提供重要的客觀依據(jù)[2]。本文設(shè)計了一款可實時遠程監(jiān)控的移動便捷式心電采集系統(tǒng)。
本系統(tǒng)采用德州儀器的ECG 專用模擬前端ADS1292 對人體進行心電信號和呼吸信號進行采集。通過樂鑫的ESP32 對采集后的數(shù)據(jù)進行處理,并發(fā)送到服務(wù)器。系統(tǒng)框圖如圖1所示。
圖1 系統(tǒng)總體框圖
德州儀器的ADS1292 有兩個低噪聲可編程增益放大器(PGA)和兩個高分辨率模數(shù)轉(zhuǎn)換器(ADC),內(nèi)置右腿驅(qū)動放大器、持續(xù)斷線檢測還完全集成型呼吸阻抗測量,方便設(shè)備小型化。功耗低(每個通道335μW),使得充一次電可以長時間使用。樂鑫的ESP32自帶通訊,只需外加些許電路即可完成無線通訊,無需外加其他模塊,可以簡化電路設(shè)計和縮小體積。
本設(shè)計采用電池或USB供電。ADS1292對電源要求較高,而ESP32有射頻功能電流波動較大,對電源的負載調(diào)整率有較高要求。且ESP32的最大電流在500mA左右,因此本設(shè)計采用雙LDO 隔離供電。電源抑制比較高的AP211 2 芯片給ADS1292 供電,輸出最大電流較大的AMS1117 給ESP32 供電,同時ADS1292電源輸入采用了磁珠隔離,可以降低ADS1292的電源紋波。
圖2 雙LDO隔離供電電路
ADS1292采集部分對電源,呼吸檢測和右腿驅(qū)動進行了濾波,電路如圖3所示。
圖3 ADS1292采集部分主要電路圖
采集信號通過主控芯片的通信模塊傳輸?shù)缴衔粰C及服務(wù)器上,如圖4所示。Type-c接口主要用于直接與電腦通訊和下載程序,其需要配一個串口通訊芯片,這里選址的是CH340K。CH340K配合兩個NPN三極管可以自動下載電路。ESP32使用的是安信可的ESP32最小板,所以不需要做過多處理。
圖4 主控芯片及外圍電路
心電信號非常微弱,采集的典型值在1mV 左右,其幅值范圍為0.05-4mV,一般而言,心電信號頻率較低,其頻率范圍為0.05-100Hz,并且能量主要集中在0.05-40Hz,易于耦合工頻等共模干擾。心電信號很容易受到外界干擾,導(dǎo)致信號畸變,特征值很難被提取。干擾主要來自兩個方面[3]。
(1)人體的干擾。人體的干擾主要由人體的呼吸、皮膚、運動等因素造成的。
(2)技術(shù)上的干擾。首先電極貼與人體表面的接觸不能保持始終不變,這就會造成連接點阻抗的變化。其次是環(huán)境的干擾,在儀器使用環(huán)境中會有大量的50Hz的工頻干擾,會耦合到心電信號。此外采集電路以及電路與人的連線中也存在干擾。采集電路會因為電源的紋波和寄生參數(shù)而引入干擾。上述干擾情況表現(xiàn)在采集的心電信號上為基線漂移、50Hz 干擾和高頻干擾。
心電信號的基線漂移是指心電信號的基線在某個數(shù)值附近緩慢上下飄動。漂移的頻率一般在0~0.2HZ?;€漂移會導(dǎo)致波形識別和特征提取的誤差增加。處理方法主要分為小波變換法、曲線擬合和傳統(tǒng)高通濾波三種。小波變換繼承和發(fā)展了短時傅立葉變換局部化的思想是時間頻率的局部化分析,能自適應(yīng)時頻信號分析的要求[4]。
小波變換雖然可以很好地消除基線漂移,但是計算量太大。曲線擬合法是使用曲線擬合出心電信號的基線,然后讓心電信號減去基線,就可以得到去基線的心電信號。采用曲線擬合的方法雖然可以在穩(wěn)定的基線漂移中效果較好,但對于基線變化明顯時效果不佳。
基線漂移的頻率很低在0~0.2Hz,心電信號的集中在0.05-40Hz,可以較好地區(qū)分傳統(tǒng)的高通濾波器,可以很好地改善低心電信號的基線漂移問題,傳統(tǒng)的高通濾波已經(jīng)足夠。所以本系統(tǒng)采用傳統(tǒng)高通濾波法抑制基線漂移。使用MATLAB 的Filter Designer 工具設(shè)計了一個切比雪夫Ⅰ型一階0.2Hz截止頻率的IIR濾波器,如圖5。
圖5 高通濾波器抑制基線漂移
在實際的應(yīng)用中50Hz的工頻干擾可能會很明顯,甚至?xí)⑿碾娦盘栄蜎]。而高頻干擾在對心電圖進行分析時會有干擾,雖然在硬件上做了濾波處理但在軟件上可以進一步進行低通處理,但難以調(diào)試,對環(huán)境敏感,同時也會增大系統(tǒng)體積。同樣地使用MATLAB 的Filter Designer 工具進行設(shè)計。為了更好地保留心電信號的特征,本系統(tǒng)采用FIR 濾波器。如圖6 使用Filter Designer工具設(shè)計了一個128階帶阻漢明窗。
圖6 128階帶阻漢明窗抑制工頻干擾
在測試時使用了麻省理工的噪聲應(yīng)力測試數(shù)據(jù)庫中的數(shù)據(jù)(MIT-BIT Noise Stress Test atabase),該數(shù)據(jù)在MATLAB 上的濾波測試效果如圖7。對于基線漂移,可以很明顯地看見在一段時間后基線回零,上下漂移幅度減小,效果不錯。再加上工頻和高頻抑制后,可以明顯看出心電圖的特征體現(xiàn)明顯,線條光滑,特征易辨識。輸入總體信號有時延大概為120個點,但對于本系統(tǒng)而言無影響。
圖7 濾波測試效果
本系統(tǒng)使用的是樂鑫的ESP32 作為主控,其主頻為240MHz、160MHz 和80MHz 可選,為降低功耗這里選用的是80Mhz的主頻,80MHz的主頻也足夠勝任。本系統(tǒng)的軟件設(shè)計使用了FreeRTOS 操作系統(tǒng),使得系統(tǒng)軟件設(shè)計和擴展更為方便。軟件總框圖如圖8所示。
圖8 采集端軟件設(shè)計流程圖
ESP32與ADS1292通過1MHz的SPI通信,在初始化后設(shè)置ADS1292 為連續(xù)讀取模式。通過ADS1292 的DRDY 信號產(chǎn)生ESP32 外部中斷,在外部中斷中讀取ADS1292 轉(zhuǎn)換后的數(shù)據(jù)。然后對數(shù)據(jù)進行抑制基線漂移、抑制工頻干擾和抑制高頻干擾處理后,對其進行特征提出處理,提取出心率,放入發(fā)送隊列中。最后通過TCP協(xié)議發(fā)送至服務(wù)器。
使用Apache Echarts v5,MDUI 與Golang Iris 框架組成前端呈現(xiàn)的主要技術(shù)棧。在初始化的時候會優(yōu)先查詢網(wǎng)關(guān)是否有設(shè)備鏈接通信功能,如果有則會詢問網(wǎng)關(guān)心電設(shè)備信息。當(dāng)網(wǎng)關(guān)無此功能或者網(wǎng)關(guān)長時間不回應(yīng)時,會開始遍歷當(dāng)前網(wǎng)段下的所有鏈接設(shè)備,當(dāng)查詢到所有設(shè)備之后使用并發(fā)技術(shù)詢問所有設(shè)備的特征碼并且以此分類。
用戶在進入客戶端之時可以選擇當(dāng)前網(wǎng)段之下的任意一個設(shè)備進行查看,在此之前后端服務(wù)器會持續(xù)緩存心電設(shè)備的信息,當(dāng)前端查詢心電信息之時后端服務(wù)器會詢問數(shù)據(jù)庫調(diào)取心電數(shù)據(jù);當(dāng)前端判定心電圖數(shù)據(jù)沒有長達40 秒時會對空位進行填0標(biāo)記處理,當(dāng)心電圖數(shù)據(jù)足夠40秒之時會剔除最老的數(shù)據(jù)并且在末尾追加最新數(shù)據(jù)并且重新畫圖。
得益于Apache Echarts v5 的臟矩形繪制,前端刷新速度能在現(xiàn)代瀏覽器的加持之下?lián)碛袩o與倫比的性能,就算在低性能設(shè)備上也能做到非常迅速地繪圖。
由于設(shè)計架構(gòu)上的前后端分離,因此能輕松地做到搭建中心服務(wù)器與搭建開放API 服務(wù)。同樣的,由于可選的開放API功能,開發(fā)者能非常輕松地重新設(shè)計前端。
本文使用心電發(fā)生器和人體來驗證系統(tǒng)。圖9 是使用標(biāo)準(zhǔn)心電信號發(fā)生器采集端的實物圖,為方便測試,直接使用了USB供電,也可使用3.7V鋰電供電。在系統(tǒng)完成初始化和連接服務(wù)器后,打開心電信號發(fā)生器。在服務(wù)器端即可實時監(jiān)測到由采集端發(fā)送的心電圖和心率信息,心率信息與標(biāo)準(zhǔn)平均誤差小于1 次/分鐘。經(jīng)測試在網(wǎng)絡(luò)條件較好的情況下延時小于100ms。連接標(biāo)準(zhǔn)心電發(fā)生器的服務(wù)器端顯示結(jié)果如圖10 所示,連接人體的服務(wù)器端顯示結(jié)果如圖11所示。
圖9 使用標(biāo)準(zhǔn)心電發(fā)生器采集端實物圖
圖10 標(biāo)準(zhǔn)心電信號的測試結(jié)果
圖11 人體心電信號的測試結(jié)果
本文使用了ADS1292模擬前端采集心電數(shù),使用ESP32芯片進行心電數(shù)據(jù)處理和發(fā)送處理后的數(shù)據(jù)到服務(wù)器,該方案的實時性強,可拓展性好。通過實際測試驗證了方案的可行性,為心電檢測設(shè)備的小型化,智能化和便攜化提供了一套解決方案。