舒澤芳,王 娟,彭曉珊,嚴生梅
(1.貴陽學院 機械工程學院,貴陽 550005;2.貴陽學院 電子與通信工程學院,貴陽 550005)
心電圖ECG信號是診斷心臟疾病的重要依據,其信號的采集分析和處理對于醫務工作者和科研人員尤為重要。傳統的心電圖機無法將心電信號轉換成易于相關軟件處理的數據格式,新型的光電心電圖機雖本身具備數據采集和存儲功能,但是不易于利用相關軟件進行數據二次對比分析和處理,無法有效發揮心電信號的潛在價值。
文中利用MatLab強大的數據處理能力和STM32F103豐富軟硬件資源,提出了基于MatLab和STM32F103的12導聯ECG信號采集系統。該采集系統整體由采集前端和上位機軟件構成。采集前端以STM32F103微控制器為核心,完成電極信號的濾波放大、A/D轉換和串行數據上傳;上位機采集軟件基于MatLab平臺設計,進行心電數據的接收顯示以及存儲。同時將串行數據轉換成Matlab兼容的數據格式。該系統的設計為科研及醫務工作者利用MatLab強大數據處理能力對ECG信號進行各類分析創造了條件。
心電信號屬于生物電信號,是心房心室極化和復極化過程在電信號上的表象,其幅值微弱,為10 μV~4 mV;頻率范圍較低,為 0.05~100 Hz,大部分能量集中在0.05~40 Hz。其信噪比低,隨機性強,直流成分多。為了使采集信號能較全面反映心臟運行狀態[1],該采集系統針對醫學上標準12導聯系統,即采集并顯示標準導聯Ⅰ,導聯Ⅱ,導聯Ⅲ;加壓單極肢體導聯 aVR,aVL,aVF;胸前導聯V1~V6;等12個心電信號。各導聯和電極信號之間的數學關系為

依據各導聯之間的數學關系,式(2)表明加壓單極肢體導聯aVR,aVL,aVF可由標準導聯Ⅰ,導聯Ⅱ,導聯Ⅲ計算獲取。采集系統可定義實際輸入心電信號為 LA(左上肢)、RA(右上肢)、LL(左下肢)、胸導聯信號V1~V6。胸導聯信號V1~V6反映心臟水平情況,等于各自電位和威爾遜中心參考電位WCT之間的電位差,WCT為3個肢體電位的平均值;標準導聯Ⅰ,導聯Ⅱ,導聯Ⅲ和加壓單極肢體導聯aVR,aVL,aVF則反映心臟額面狀況。據此,將采集系統定義為采集前端和上位機采集軟件2個部分。系統結構如圖1所示。
濾波電路完成對原始心電信號的二階低通濾波,利用ADS1298R芯片完成心電信號的EMI濾波放大和A/D轉換,A/D轉換數據通過SPI接口傳送至STM32F103微控制器。上位機軟件基于MatLab平臺設計,通過串行UART接口從STM32F103獲取各路心電數據。ADS1298R芯片提供RLD(右下肢)驅動,作為參考接地點,同時提供威爾遜終端(WCT)作為胸導聯的參考點。

圖1 采集系統結構Fig.1 Sampling system structure
采集系統設計9通道濾波電路,針對LA,RA,LL和V1~V6等導聯信號,根據心電信號低頻(頻率范圍 0.05~100 Hz)、帶 50 Hz工頻干擾的特點,濾波電路由二階有源帶通濾波電路和50 Hz陷波電路構成,如圖2所示。

圖2 二階有源帶通和陷波電路Fig.2 Secondary active bandpass and the trap circuit
圖中,R1和C1構成低通濾波電路,取R1=4.7 kΩ,C1=0.33 μF,轉折頻率 fH=(2πR1C1)-1≈100 Hz;R2和C2構成高通濾波電路,取 R2=6.8 kΩ,C2=0.47 μF,則其轉折頻率 fL=(2πR2C2)-1≈0.05 Hz。 考慮后續的ADS1298R分辨率為24 b,在參考電壓為2.4 V時,其分辨率為0.0238 μV,大于心電信號典型值。對于心電信號的幅值而言,采集前端無需過高放大倍數,故 Rb,Ra可設定為 10 kΩ,U1 級放大倍數為(1+Rb/Ra)。 陷波電路由非對稱阻容網絡構成,R4~R6設定為 10 kΩ,C3~C5設定為 10 μF, 利用單一調節阻值為30 kΩ電位器RP1設定陷波器的中心頻率為50 Hz。利用U3運放的正反饋輸出連接陷波回路的縱臂,實現頻率增強阻帶變窄效果。同時通過調節電位器RP2提高Q值以提高有效信號幅值[2]。
ADS1298R是用于生理信號測量的低功耗、8通道、24 b模擬前端專用芯片,可專用于醫療儀器(心電圖ECG、肌電圖EMG和腦電圖EEG)等。其主要模塊如圖3所示。

圖3 ADS1298R主要模塊Fig.3 ADS1298R main module
ADS1298R的每個通道都有1個輸入復用器MUX,復用器除將輸入信號傳送給可編程放大器以外,還能夠獨立連接至內部生成的信號以進行測試、溫度、導聯斷開等檢測,可選擇輸入通道的任一配置生成右下肢驅動RLD輸出信號。
3個集成放大器和調節電阻用于生成標準12導聯ECG所需的威爾遜中心終端(WCT)。9路實際輸入信號LA,RA,LL和V1~V6通過二階濾波電路進入多路選擇器MUX,MUX將輸入信號送入可編程增益放大器PGA,PGA的放大倍數可設定為1,2,3,4,6,8 和 12,在此設定 PGA 的放大倍數為1。
采集前端中的STM32F103微控制器通過SPI接口控制ADS1298R進行導聯心電數據的傳輸,然后利用UART接口將接收的心電數據上傳至上位機軟件[3]。STM32F103微控制器及其外圍電路均采用典型設計,根據ADS1298R的SPI接口的訪問時序,STM32F103與ADS1298R的SPI接口及與上位PC的UART接口原理如圖4所示。
START引腳和DRDY引腳為ADS1298R的SPI接口特定引腳,設計中STM32F103設定為SPI通信主機,ADS1298R為通信從機,STRAT信號由主機發出,控制從機在設置和轉換模式之間切換,DRDY作為SPI從機數據轉換完成信號。

圖4 STM32F103與ADS1298R及PC的UART接口Fig.4 STM32F103 and ADS1298R and PC UART interface
采集系統的軟件部分為前端軟件和上位機軟件,前端軟件針對STM32F103微控制器設計,實現SPI,GPIO,UART 的初始化,SPI接口主從數據傳輸,UART數據傳輸等功能[4]。對于ADS1298R的SPI采用命令讀取數據模式RDATC。采集系統整體大約以300 Hz頻率對心電信號采樣,STM32F103以間隔3 ms將9組導聯心電數據上傳至上位機軟件,上位機軟件不斷刷新其顯示狀態。前端軟件流程如5所示。

圖5 采集前端軟件流程Fig.5 Sampling front end software flow chart
上位機軟件采用MatLab平臺GUI設計,其主界面設計如圖6所示,包括了用戶信息區、導聯設定區、使用者操作區3個部分[5]。

圖6 上位機主界面Fig.6 Upper computer interface
在創建串口對象后,完成串口屬性配置,同時利用相關串口回調函數接收、顯示和保存數據,保存數據可選擇TXT格式和XLS格式,其核心代碼設計如下:

采集系統對12導聯的心電信號進行了相關功能測試,包括數據采集顯示和保存等方面。部分采集心電數據保存為TXT文本文件,其內容如下:

在波形顯示測試方面,被測試者A標準導聯Ⅱ和胸導聯V5的波形如圖7所示,被測試者B的胸導聯V5和V2的波形如圖8所示,被測試者C的胸導聯V4和V1的波形如圖9所示。

圖7 導聯Ⅱ和V5的測試波形Fig.7 Waveforms of leadⅡand V5

圖8 導聯V5和V2的測試波形Fig.8 Waveforms of lead V5 and V2

圖9 導聯V4和V1的測試波形Fig.9 Waveforms of lead V4 and V1
所設計ECG信號采集系統的測試結果表明,采集系統能有效實現12導聯ECG信號的采集顯示和存儲。鑒于心電圖信號是分析診斷心臟疾病的重要依據,采集系統將心電數據存儲為TXT和XLS的數據格式,便于采用MatLab平臺進行分析研究。該系統的設計為科研及醫務工作者,利用MatLab強大數據處理能力,對ECG信號進行各類分析研究,奠定了條件。
參考文獻:
[1] 宋勐翔,陳蘭嵐.基于ADS1298和STM32F407的心電采集與顯示系統設計[J].現代電子技術,2015,38(13):141-142.
[2] 李遠,蔣稼歡,章毅,等.基于JAVA手機便攜式心電監護分析儀的ECG 信號采集模塊設計[J].醫療衛生裝備,2011,32(1):19-20.
[3] 勾慧蘭,劉光超.基于STM32的最小系統及串口通信的實現[J].工業控制計算機,2012,25(9):30-32.
[4] 劉軍,張洋,嚴漢宇.例說STM32[M].北京:北京航空航天大學出版社,2014:260-269.
[5] 余勝威,吳婷,羅建橋.MatLabGUI設計入門與實踐[M].北京:清華大學出版社,2016:351-368.
[6] 溫正.MatLab科學計算[M].北京:清華大學出版社,2017:71-79.