舒澤芳,王娟,彭曉珊
(1.貴陽學(xué)院機械工程學(xué)院,貴陽 550005;2.貴陽學(xué)院電子與通信工程學(xué)院,貴陽 550005)
標準導(dǎo)聯(lián)ECG是醫(yī)學(xué)上常用的心電圖導(dǎo)聯(lián),其相關(guān)信號如QRS波群、P波、R-R間期等信息是診斷心臟疾病的重要依據(jù),傳統(tǒng)的心電圖機屬于機電式,不易于將心電信號數(shù)字化;現(xiàn)在主流的光電心電圖機其數(shù)據(jù)已經(jīng)成數(shù)字化,但不易于移植至MATLAB軟件進行數(shù)據(jù)分析和研究。本文提出面向ECG標準導(dǎo)聯(lián)數(shù)據(jù)采集系統(tǒng)設(shè)計,利用MATLAB平臺設(shè)計GUI采集界面,采集卡基于STM32F103微控制器設(shè)計,利用INA333儀表放大器進行心電信號的濾波和放大。同時實現(xiàn)了心電信號的數(shù)據(jù)格式轉(zhuǎn)換,將其保存為TXT或者XLS格式,易于在相關(guān)分析軟件間進行數(shù)據(jù)交換,以發(fā)揮心電數(shù)據(jù)的潛在價值。
心電信號屬于生物電信號,是心房心室極化和復(fù)極化過程在電信號上的表象,其幅值微弱,在10μV~4mV之間;頻率范圍較低,范圍在0.05Hz~100Hz,大部分能量集中在0.05Hz~40Hz。其信噪比低,隨機性強,直流成分多[1]。本采集系統(tǒng)針對醫(yī)學(xué)上常用的標準導(dǎo)聯(lián),即采集并顯示標準導(dǎo)聯(lián)Ⅰ、Ⅱ、Ⅲ,標準導(dǎo)聯(lián)電極信號之間的數(shù)學(xué)關(guān)系式如下:
Ⅰ=LA-RA
Ⅱ=LL-RA
Ⅲ=LL-LA
依據(jù)標準導(dǎo)聯(lián)與電極信號之間的數(shù)學(xué)關(guān)系,系統(tǒng)需要采集 LA(左上肢)、RA(右上肢)、LL(左下肢)。根據(jù)以上分析,采集系統(tǒng)定義為兩部分,采集卡和上位機采集軟件。其系統(tǒng)結(jié)構(gòu)示意圖如圖1所示。
圖1 采集系統(tǒng)結(jié)構(gòu)圖
二階有源濾波電路利用INA333芯片完成對原始心電信號的二階帶通濾波放大,放大后由STM32F103微控制器進行ADC轉(zhuǎn)換。上位機采集軟件則基于MATLAB平臺設(shè)計,通過串行UART接口從STM32F103獲取各路心電數(shù)據(jù)。LA、RA和LL電極信號的測量參考點為RL(右下肢)。
采集系統(tǒng)硬件包括二階有源濾波電路和STM32F103微控制器電路構(gòu)成,二階有源濾波電路以INA333運放為核心設(shè)計,依據(jù)心電信號低頻(頻率范圍0.05Hz~100Hz)的特點,二階有源帶通濾波放大電路設(shè)計如圖2所示,R1和C1構(gòu)成低通濾波電路,取R1為 4.7kΩ,C1為 0.33μF,轉(zhuǎn)折頻率為 fH=1/(2πR1C1)≈100Hz;R2和C2構(gòu)成高通濾波電路,取R2為6.8 kΩ,C2 為 0.47μF,則其轉(zhuǎn)折頻率為 fL=1/(2πR2C2)≈0.05Hz。根據(jù)INA333運放單電阻配置放大倍數(shù)的特點,放大倍數(shù)為1+(100kΩ/RG),考慮后續(xù)STM32F103RCT6芯片中ADC的參考電壓為3.3V,取心電信號最高值為5mV,則取RG為150Ω,即放大666倍。U2級采用射極跟隨器設(shè)計,擴大輸出電阻[2]。
圖2 二階有源帶通和陷波電路原理圖
STM32F103通過MAX232接口與PC上位機的UART串口連接,通過STM32F103內(nèi)部自帶12位ADC進行標準導(dǎo)聯(lián)心電信號轉(zhuǎn)換,STM32F103最小系統(tǒng)及外圍電路原理圖如圖3所示[3]。
圖3 STM32F103與PC機UART接口原理圖
采集系統(tǒng)的軟件部分為采集卡軟件和上位機軟件,采集卡軟件針對STM32F103微控制器設(shè)計,實現(xiàn)GPIO、UART和ADC的初始化,ADC轉(zhuǎn)換,UART數(shù)據(jù)傳輸?shù)裙δ躘4]。采集系統(tǒng)整體大約以300Hz頻率對心電信號采樣,STM32F103以間隔3ms將3組標準導(dǎo)聯(lián)心電數(shù)據(jù)上傳至上位機軟件,上位機軟件不斷刷新其顯示狀態(tài),采集卡軟件流程圖如圖4所示。
圖4 采集卡軟件流程圖
ADC轉(zhuǎn)換部分核心代碼如下:
u16 Get_Adc(u8 ch)
{
//設(shè)置轉(zhuǎn)換序列
ADC1->SQR3&=0XFFFFFFFE0;//規(guī)則序列1通道ch
ADC1->SQR3|=ch;
ADC1->CR2|=1<<22;//啟動規(guī)則轉(zhuǎn)換通道while(!(ADC1->SR&1<<1));//等待轉(zhuǎn)換結(jié)果Return ADC1->DR;
//返回ADC值
}
上位機軟件采用MATLAB平臺GUI設(shè)計,其主界面設(shè)計如圖5所示。包括用戶信息區(qū)、導(dǎo)聯(lián)設(shè)定區(qū)、使用者操作區(qū)三個部分[5]。
用戶信息區(qū)采用靜態(tài)文本和編輯框控件,導(dǎo)聯(lián)設(shè)置區(qū)采用單選按鈕控件,使用者操作區(qū)采用按鈕控件,在啟動按鈕被按下后,即創(chuàng)建串口對象,完成串口屬性配置,同時利用相關(guān)串口回調(diào)函數(shù)接收、顯示和保存數(shù)據(jù),保存數(shù)據(jù)可選擇TXT格式和XLS格式,其核心代碼設(shè)計如下:
Serial_obj=serial('COM2');
Serial_obj.BaudRate=9600;
Serial_obj.DataBits=8;
Serial_obj.Parity='none';
Serial_obj.StopBits=1;
fopen(Serial_obj);
sdata=fscanf(Serial_obj,'%d',128);
data_Ⅰ=sdata;
plot(stime,data_Ⅰ);
fprintf(FileID,'%d',data_Ⅰ);[6]
圖5 上位機主界面
在系統(tǒng)設(shè)計時,利用STM32F103自帶的DAC,將采集的數(shù)據(jù)進行了數(shù)模轉(zhuǎn)換,便于示波器進行測試,部分測試結(jié)果如下:圖6為被測試者的標準導(dǎo)聯(lián)Ⅰ的示波器顯示波形,圖7為被測試者的標準導(dǎo)聯(lián)Ⅱ的示波器顯示波形。
圖6 被測試者標準導(dǎo)聯(lián)Ⅰ示波器波形
圖7 被測試者標準導(dǎo)聯(lián)Ⅱ示波器波形
采集系統(tǒng)對標準導(dǎo)聯(lián)Ⅰ、Ⅱ、Ⅲ的心電信號進行了相關(guān)功能測試,包括數(shù)據(jù)采集顯示和保存等方面,在波形顯示測試方面,圖8為被測試者標準導(dǎo)聯(lián)Ⅰ和Ⅱ的上位機界面顯示波形,和示波器實際測試波形一致。
圖8 標準導(dǎo)聯(lián)Ⅰ和ⅡMATLAB顯示波形
標準導(dǎo)聯(lián)Ⅱ部分心電數(shù)據(jù)保存為TXT文本文件內(nèi)容如下。
Sampling timeII
hh:mm:ss.mmm(mV)
0:00.000-0.145
0:00.003-0.145
第一列代表采樣時間,第二列為II導(dǎo)聯(lián)信號電壓值,轉(zhuǎn)換函數(shù)代碼設(shè)計如下:
function[VarName1,VarName2,VarName3]=importfile
(filename,startRow,endRow)
if nargin<=2
startRow=1;
endRow=inf;
end
formatSpec='%9s%8s%s%[^ ]';
fileID=fopen(filename,'r');
示波器測試環(huán)節(jié)顯示了采集卡部分運行情況,MATLAB GUI界面測試顯示了上位機軟件部分的運行情況,兩者結(jié)果一致。整體測試表明,采用MATLAB作為心電信號上位機軟件平臺是一種有效的方式,借助其強大的數(shù)據(jù)處理能力可為挖掘心電信號的各種臨床價值創(chuàng)造條件。
[1]宋勐翔,陳蘭嵐.基于ADS1298和STM32F407的心電采集與顯示系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2015,13:141-142.
[2]李遠,蔣稼歡,章毅等.基于Java手機便攜式心電監(jiān)護分析儀的ECG信號采集模塊設(shè)計[J].醫(yī)療衛(wèi)生裝備,2011,1:19-20.
[3]勾慧蘭,劉光超.基于STM32的最小系統(tǒng)及串口通信的實現(xiàn)[J].工業(yè)控制計算機,2012,9:20.
[4]劉軍,張洋,嚴漢宇.例說STM32[M].北京:北京航空航天大學(xué)出版社,2014:260-269.
[5]余勝威,吳婷,羅建橋.MATLAB GUI設(shè)計入門與實踐[M].北京:清華大學(xué)出版社,2016:351-368.
[6]溫正.MATLAB科學(xué)計算[M].北京:清華大學(xué)出版社,2017:71-79.