樊 強(qiáng), 苗曙光, 邵 丹, 汪徐德
(淮北師范大學(xué)物理與電子信息學(xué)院,安徽 淮北 235000)
2020年12月2日-3日召開(kāi)的“第五屆煤炭科技創(chuàng)新高峰論壇”在展示煤炭開(kāi)采的科技創(chuàng)新成果的同時(shí),再一次強(qiáng)調(diào)了煤炭能源的重要性,礦工安全問(wèn)題更加不能忽視,特別是礦難發(fā)生后,如何根據(jù)礦工的體征信號(hào)展開(kāi)快速有效地營(yíng)救,顯得尤為重要。針對(duì)上述問(wèn)題,設(shè)計(jì)了礦工心電信息無(wú)線監(jiān)測(cè)系統(tǒng)。該系統(tǒng)通過(guò)ADS1292心電檢測(cè)模塊實(shí)時(shí)監(jiān)測(cè)礦工的心電狀態(tài)并以動(dòng)態(tài)心電圖的形式顯示出來(lái)。動(dòng)態(tài)心電圖可對(duì)礦工心電信號(hào)連續(xù)記錄,一方面該系統(tǒng)采集到的心電信息不僅可以通過(guò)佩戴儀器的OLED屏幕以動(dòng)態(tài)心電圖的形式顯示出來(lái),通過(guò)設(shè)置閾值,當(dāng)?shù)V工心率不正常時(shí),可以對(duì)礦工生命健康狀況進(jìn)行預(yù)警;另外一方面,該系統(tǒng)可以通過(guò)無(wú)線自組網(wǎng)模塊把心電信號(hào)發(fā)送到上位機(jī),實(shí)現(xiàn)遠(yuǎn)距離監(jiān)控,一旦發(fā)生礦難,通過(guò)遠(yuǎn)程無(wú)線端實(shí)時(shí)采集到的礦工心電信號(hào),可以為災(zāi)后救援提供準(zhǔn)確的信息參考。
系統(tǒng)按照功能可以分為數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)傳輸和數(shù)據(jù)顯示四個(gè)部分,整體架構(gòu)如圖1所示,其中數(shù)據(jù)處理部分是該系統(tǒng)的核心內(nèi)容。
圖1 系統(tǒng)整體架構(gòu)
(1)數(shù)據(jù)采集部分。采用ADS1292模塊對(duì)心電信息進(jìn)行采集,[1]ADS1292模塊有兩個(gè)可編程增益放大器以及兩個(gè)24位模數(shù)轉(zhuǎn)換器,可對(duì)兩個(gè)通道進(jìn)行同步采樣且功耗低。ADS1292廣泛應(yīng)用于便攜式醫(yī)療心電圖和體育運(yùn)動(dòng)等相關(guān)器件中。系統(tǒng)將其應(yīng)用于動(dòng)態(tài)心電圖和心率的檢測(cè)。
(2)數(shù)據(jù)處理部分。將采集到的信息發(fā)送給單片機(jī)進(jìn)行處理,單片機(jī)模塊選擇的是STM32F103ZET6芯片的單片機(jī)[2],相對(duì)于51系列單片機(jī)和STM32F103C8T6來(lái)說(shuō)功能更加強(qiáng)大,資源更加豐富。該模塊主要負(fù)責(zé)實(shí)現(xiàn)對(duì)傳感器的控制以及對(duì)傳感器采集到的數(shù)據(jù)進(jìn)行分析處理,是硬件系統(tǒng)的核心。由于采集的信號(hào)有較多的噪聲干擾,為了使心電圖的顯示和心率的計(jì)算更加準(zhǔn)確,需要對(duì)采集到的信號(hào)進(jìn)行FIR濾波、均值濾波、中值濾波和誤差補(bǔ)償?shù)确椒ㄌ幚?,最后通過(guò)FFT快速傅里葉變換計(jì)算出心率。數(shù)據(jù)處理流程如圖2所示。
圖2 數(shù)據(jù)處理流程
(3)數(shù)據(jù)傳輸部分。數(shù)據(jù)傳輸使用無(wú)線自組網(wǎng)模塊,相比于藍(lán)牙和Wi-Fi傳輸,其傳輸距離更遠(yuǎn)、自由度更高并且可以自組網(wǎng)實(shí)現(xiàn)多點(diǎn)對(duì)多點(diǎn)的數(shù)據(jù)傳輸。自組網(wǎng)無(wú)線通信模塊主芯片型號(hào)為CC2530F256,可以自組多跳Mesh網(wǎng)絡(luò)實(shí)現(xiàn)多點(diǎn)對(duì)多點(diǎn)的通信。系統(tǒng)通過(guò)自組網(wǎng)無(wú)線傳輸模塊將處理后的數(shù)據(jù)發(fā)送到上位機(jī)進(jìn)行顯示。
(4)數(shù)據(jù)顯示部分。為了便攜式的設(shè)計(jì),采用0.96寸的OLED屏作為顯示屏。因?yàn)镺LED是可以自發(fā)光的不需要背光,相對(duì)LCD屏來(lái)說(shuō),同樣的內(nèi)容OLED的顯示效果要更好一些。以現(xiàn)在的技術(shù),OLED的尺寸雖然很難做到大型化,但是它的分辨率卻可以做到很高,因此顯示得較為清晰。此外,還可以將數(shù)據(jù)通過(guò)無(wú)線自組網(wǎng)模塊發(fā)送到上位機(jī)進(jìn)行實(shí)時(shí)顯示以實(shí)現(xiàn)遠(yuǎn)程監(jiān)測(cè)的目的。
IIR數(shù)字濾波器雖然具有遞歸結(jié)構(gòu)、階次相對(duì)較低、頻率分量選擇性好、對(duì)設(shè)計(jì)手段要求較低等優(yōu)點(diǎn),但同時(shí)它也具有噪聲反饋大、運(yùn)算誤差大且不能用于FFT快速卷積等缺點(diǎn)。然而相比于IIR數(shù)字濾波器來(lái)說(shuō),F(xiàn)IR數(shù)字濾波器雖然階次相對(duì)較高、頻率分量選擇性較差,但是其具有嚴(yán)格線性相位、噪聲小且運(yùn)算誤差小,除此之外更為關(guān)鍵的是通過(guò)該濾波器的信號(hào)可采用FFT快速卷積算法[3],這有利于心率的計(jì)算。
FIR濾波器的輸入輸出關(guān)系用公式(1)表示:
(1)
式中:y(n)為輸出,x(n)為輸入,h(n)為單位脈沖響應(yīng)。由公式可知,某一時(shí)刻的輸出不僅與此時(shí)的輸入有關(guān),還與過(guò)去輸入有關(guān),因此準(zhǔn)備一個(gè)心電信號(hào)寄存器x[N+1],N為濾波器的階數(shù),每次采集到心電信號(hào)時(shí)將其中的數(shù)據(jù)均后移一位,并將新的數(shù)據(jù)存放到x[0],設(shè)濾波器系數(shù)寄存器為h[N+1],則輸出變成為式(2):
(2)
為了更好地反映心電信號(hào)的真實(shí)情況將P波和T波識(shí)別出來(lái),又考慮到數(shù)字濾波器的過(guò)渡帶和阻帶衰減問(wèn)題,選擇使用Kaiser窗函數(shù)以此來(lái)獲得更為窄的過(guò)渡帶和更大的阻帶衰減[4]。由于心電信號(hào)的干擾主要有高頻噪聲、人體的分布電容引起的50Hz的工頻干擾、基線漂移(一般由人體呼吸或者電極移動(dòng)等低頻干擾引起的頻率小于5Hz的干擾信號(hào)),因此選擇使用帶通濾波器且通帶截止頻率分別設(shè)為5Hz和40Hz。[5]
選擇好數(shù)字濾波器的參數(shù)后用MATLAB軟件設(shè)計(jì)一個(gè)128階、采樣頻率為250Hz、通帶截止頻率分別為5Hz和40Hz的帶通濾波器,[6]采用窗函數(shù)法,使用Kaiser窗,Beta設(shè)為10使得在計(jì)算量較小的同時(shí)能夠獲得更大的阻帶衰減和更窄的過(guò)渡帶。
采集到的心電模擬器原始心電信號(hào)如圖3所示,濾波后的心電信號(hào)如圖4所示。
圖3 心電模擬器原始心電信號(hào)
圖4 心電模擬器濾波后的心電信號(hào)
人體原始信號(hào)與濾波后的信號(hào)分別如圖5、圖6所示。
圖5 人體原始信號(hào)
圖6 人體濾波信號(hào)
對(duì)通過(guò)濾波后的心電信號(hào)進(jìn)行心率的計(jì)算,也是本系統(tǒng)最核心的內(nèi)容[7]。由于心電信號(hào)的R波幅值最大,傳統(tǒng)計(jì)算心率的方法是在時(shí)域中根據(jù)一分鐘內(nèi)R波出現(xiàn)的次數(shù)來(lái)表征心率,這種方法相對(duì)來(lái)說(shuō)較為簡(jiǎn)單但不夠及時(shí),即必須等待1min才能測(cè)一次。由于心電信號(hào)隨著心臟有節(jié)奏的收縮和舒張進(jìn)行規(guī)律性的變化,而且濾波器選用的是FIR濾波器。因此可對(duì)其進(jìn)行FFT快速傅里葉變換[8],將時(shí)域分析轉(zhuǎn)為頻域分析,即在頻域?qū)ふ曳底畲蟮狞c(diǎn),其所對(duì)應(yīng)的頻率即為心電信號(hào)的頻率,此方法相對(duì)于從時(shí)域分析計(jì)算來(lái)說(shuō)更能體現(xiàn)其實(shí)時(shí)性。
(3)
復(fù)數(shù)加法次數(shù)為式(4):
A=2Nlog4N
(4)
(5)
式中:f為心率;X為各諧波幅值下標(biāo);fs為采樣頻率;N為FFT運(yùn)算的點(diǎn)數(shù)。
該系統(tǒng)采用多跳Mesh網(wǎng)絡(luò)技術(shù)[9],與傳統(tǒng)的無(wú)線網(wǎng)絡(luò)差別較大,在多節(jié)點(diǎn)通信應(yīng)用中占有較大優(yōu)勢(shì)。傳統(tǒng)的無(wú)線網(wǎng)絡(luò)通信大多為點(diǎn)到點(diǎn)或者點(diǎn)到多點(diǎn)的拓?fù)浣Y(jié)構(gòu),數(shù)據(jù)傳輸方式為終端節(jié)點(diǎn)與匯聚節(jié)點(diǎn)的單跳方式傳輸,距離較遠(yuǎn)的情況下需要單獨(dú)設(shè)立具備路由功能的節(jié)點(diǎn)進(jìn)行數(shù)據(jù)的轉(zhuǎn)發(fā)。而多跳Mesh網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)可以組成多點(diǎn)到多點(diǎn)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)[10],各個(gè)節(jié)點(diǎn)必須連接同一個(gè)網(wǎng)絡(luò)和信道才能夠正常通信。各個(gè)節(jié)點(diǎn)可以通過(guò)范圍內(nèi)相鄰的其他節(jié)點(diǎn)以無(wú)線多跳方式相連,無(wú)需路由節(jié)點(diǎn),通電自主加入網(wǎng)絡(luò)并且自動(dòng)尋找傳輸路徑。該系統(tǒng)采用這種通信方式,當(dāng)某些礦工相距上位機(jī)較遠(yuǎn)無(wú)法直接通信的時(shí)候,可以通過(guò)范圍內(nèi)其他礦工進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),經(jīng)過(guò)多次轉(zhuǎn)發(fā)后傳到上位機(jī)。3用戶節(jié)點(diǎn)加1個(gè)匯聚節(jié)點(diǎn)的網(wǎng)絡(luò)節(jié)點(diǎn)連接如圖7所示。該網(wǎng)絡(luò)最多可容納190個(gè)節(jié)點(diǎn),單次傳輸距離最遠(yuǎn)為500m且最多可轉(zhuǎn)發(fā)15次。
圖7 多跳Mesh網(wǎng)絡(luò)節(jié)點(diǎn)連接
由于OLED的顯存是按字節(jié)寫(xiě)入的,為了防止畫(huà)點(diǎn)時(shí)出現(xiàn)錯(cuò)誤,采用數(shù)據(jù)寄存的方法,先在單片機(jī)中建立一個(gè)寄存器,之后把數(shù)據(jù)先寫(xiě)入寄存器中,在修改好寄存器中的數(shù)據(jù)后再一次性寫(xiě)入到OLED的顯存中。將前面計(jì)算的心率、心電信號(hào)從STM32單片機(jī)通過(guò)IIC通信方式發(fā)送給OLED并顯示出來(lái)。其中心電圖的顯示具體實(shí)現(xiàn)方法為:將ADS1292采集到的心電數(shù)據(jù)存放到一個(gè)數(shù)組中并不斷更新,由于OLED屏幕大小限制,需要對(duì)數(shù)據(jù)進(jìn)行縮小,縮小倍數(shù)為顯示區(qū)域的高度與心電波形的峰峰值的比值即式(6):
(6)
式中:a為縮減倍數(shù);h為OLED屏顯示區(qū)域的高度;Vmax為R波的最大幅值;Vmin為R波最小幅值。
此時(shí)其在OLED屏中的縱坐標(biāo)為式(7):
Y=Am·a
(7)
式中:Y為縱坐標(biāo);Am為FFT后X點(diǎn)幅值;a為縮減倍數(shù)。
因?yàn)樵O(shè)置的OLED屏的原點(diǎn)在左上方,所以最后對(duì)(X,63-Y)點(diǎn)不斷進(jìn)行畫(huà)點(diǎn)即可顯示出實(shí)時(shí)心電波形,如圖8所示。
圖8 OLED屏心電圖顯示
采集到的心電數(shù)據(jù)按照上位機(jī)的數(shù)據(jù)收發(fā)格式發(fā)送到上位機(jī)進(jìn)行動(dòng)態(tài)心電圖的顯示,如圖9所示。
圖9 上位機(jī)心電圖顯示
該系統(tǒng)經(jīng)過(guò)多次實(shí)驗(yàn),能夠?qū)π碾娦盘?hào)進(jìn)行較好的濾波,OLED屏和上位機(jī)能夠顯示測(cè)試人員的心電圖,心率最大誤差為4%,計(jì)算出的心率較為準(zhǔn)確,整體來(lái)說(shuō)能夠?qū)崿F(xiàn)所需要求。多次測(cè)試得到的一組數(shù)據(jù)如表1所示:
表1 測(cè)試數(shù)據(jù)記錄表
設(shè)計(jì)實(shí)現(xiàn)了基于Mesh網(wǎng)的礦工心電信息監(jiān)測(cè)系統(tǒng)。首先,與傳統(tǒng)的心電檢測(cè)方法相比該系統(tǒng)作為便攜式佩戴設(shè)備能夠更為方便地對(duì)礦工的心率和心電信號(hào)進(jìn)行實(shí)時(shí)監(jiān)測(cè),礦工能夠通過(guò)自身佩戴的設(shè)備更加及時(shí)并且較為準(zhǔn)確地了解自身的身體狀況,便于及時(shí)發(fā)現(xiàn)及時(shí)治療。其次,采用的多跳自組Mesh網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)能夠滿足多人數(shù)據(jù)同時(shí)上傳的需要,傳輸距離更遠(yuǎn)、更加簡(jiǎn)化了多點(diǎn)通信架構(gòu),降低了功耗和成本。最后,檢測(cè)到的數(shù)據(jù)可以通過(guò)自組Mesh網(wǎng)絡(luò)無(wú)線傳輸?shù)姆绞桨l(fā)送到上位機(jī)進(jìn)行顯示從而達(dá)到遠(yuǎn)程監(jiān)測(cè)的目的。該系統(tǒng)架構(gòu)較為簡(jiǎn)單、成本較為低廉、數(shù)據(jù)上傳實(shí)時(shí)性高,對(duì)保障礦工的生命安全和災(zāi)后救援有生力量具有重要的作用。