基于ARM的單電源心電圖檢測的原理與算法淺析
隨著心電圖技術(shù)的臨床應(yīng)用和電子技術(shù)的發(fā)展,心電圖作為生物醫(yī)學(xué)測量中一項較成熟、應(yīng)用較廣泛的技術(shù),已逐漸成為一種常規(guī)臨床檢查的手段,并在心臟疾病的診斷、監(jiān)護(hù)以及藥效分析等方面發(fā)揮著十分重要的作用。
本文引用地址:http://www.ex-cimer.com/article/201807/384708.htm目前常用的心電檢測電路多為雙電源供電,這種方案需要很多的電源器件和較大面積的布局布線,而這些都將增加產(chǎn)品的成本。
本文給出的設(shè)計采用單電源供電,可以解決上述問題并降低產(chǎn)品成本,同時該設(shè)計還在基于ARM核的嵌入式系統(tǒng)中采用了簡單實用的算法,能快速準(zhǔn)確定位QRS復(fù)波(即計算人的心率)。該設(shè)計面向廣大家庭用戶而設(shè)計,體積較小,只需要一臺個人電腦與之連接,便可實時地操作、觀測心電信號。
心電信號采集系統(tǒng)的基本架構(gòu)如圖1所示。人體的心電信號經(jīng)電極和專用導(dǎo)聯(lián)線從人體送至系統(tǒng)。通過濾波和放大調(diào)節(jié)電路,微弱的心電信號被放大到合適的幅值,并處于A/D轉(zhuǎn)換范圍之內(nèi)。
圖1:心電信號采集系統(tǒng)的基本架構(gòu)
系統(tǒng)的控制和數(shù)據(jù)的處理由ADI公司基于ARM7 TDMI核的MCU ADuC7020來完成。這款芯片有豐富的片內(nèi)外圍電路,處理速度高達(dá)40MIPS,A/D轉(zhuǎn)換速度可達(dá)1MSPS,具有很高的性價比。最后將結(jié)果由 ADuC7020通過UART口送至計算機(jī),由計算機(jī)通過由LabVIEW編寫的界面將結(jié)果直觀地顯示出來或存儲下來。圖2是基本的硬件電路圖。
圖2:基本的硬件電路
從人體或是心電信號發(fā)生器上采集到的心電信號幅值在0.05~5mV之間(一般為2mV),頻率在0.05Hz~75Hz之間。心電信號要經(jīng)過緩沖、匹配電阻網(wǎng)絡(luò)、電壓放大和濾波等幾級電路。
心電信號首先經(jīng)過一個兩級的RC低通濾波電路,進(jìn)入緩沖級。信號進(jìn)入系統(tǒng)之前,需要除去高頻分量,因此這里設(shè)計了一個截止頻率為300Hz的低通濾波器,以保證0.05~75Hz的微弱心電信號不會被衰減。緩沖級由電壓跟隨器組成,它可以提高整個放大電路的輸入阻抗,降低輸出阻抗。為保證差分信號的一致性,應(yīng)選用集成在芯片上的放大器。匹配電阻網(wǎng)絡(luò)通常采用威爾遜電中心端網(wǎng)絡(luò),它通過特定的電阻網(wǎng)絡(luò)獲得威爾遜電中心端作為整個ECG系統(tǒng)的參考點。
濾波放大電路的前級采用負(fù)反饋差分放大電路,這里使用ADI公司可調(diào)增益高共模抑制比的儀表放大器AD8221作為前級放大器。放大倍數(shù)設(shè)為8倍,由公式G=49.4kΩ/RG+1計算得到,其中RG是AD8221兩個RG管腳之間的電阻值。
這個電阻應(yīng)當(dāng)選用高精度、低溫漂的金屬膜電阻,以保證AD8221的低噪聲性能。AD8221的REF管腳沒有接地,而是和一個低通濾波器構(gòu)成負(fù)反饋回路,以便能有效地濾除直流分量,從而使U1處的電壓始終箝位在1.25V。因為是單電源供電,而不同導(dǎo)聯(lián)的心電信號電壓有正有負(fù),所以一定要提供一個合適的箝位電壓。ADuC7020的AD轉(zhuǎn)換模式下電壓輸入范圍是0-2.5V,這里就選擇中間值1.25V作為箝位電壓。
AD8221輸出的單端信號幅值非常小,其中還混有大量干擾,無法進(jìn)行數(shù)據(jù)處理。后級濾波放大電路由一個增益較大的有源低通組成,增益可調(diào)。不同人的心電信號強(qiáng)弱不一樣,考慮到有衰減,一般將該增益設(shè)為150倍。系統(tǒng)的傳遞函數(shù)為:
這兩個低通濾波器都要求具有低電壓偏移、低溫漂和低噪聲特性,ADI公司的軌到軌輸入輸出雙運(yùn)放AD8607能夠很好地滿足這些要求。由于第二級放大器是反相端輸入,所以最后得到的信號是反相的,這可以在軟件中再作處理。
從保護(hù)病人和提高系統(tǒng)的共模抑制比兩方面考慮,必須將共模信號反相并放大后,再反饋給人體,這樣系統(tǒng)和人體就共同構(gòu)成了一個電壓并聯(lián)負(fù)反饋網(wǎng)絡(luò),即通常所說的右腿驅(qū)動電路。由ADuC7020對處理后的心電信號進(jìn)行AD轉(zhuǎn)換,選擇定時器控制的ADC采樣模式。一次A/D轉(zhuǎn)換結(jié)束,觸發(fā)ADC中斷,在中斷服務(wù)程序中對數(shù)字信號進(jìn)行處理。
處理心電數(shù)字信號的關(guān)鍵是對心電信號中QRS復(fù)波的精確識別。正常人的QRS波群的寬度為0.06至0.10秒,且不受心律變化的影響。針對R 波很尖銳的特點,我們通過一個滑動時間窗判斷信號峰、谷是否滿足要求,同時確認(rèn)其是否在時間窗內(nèi)。對信號幅值的閾值采用雙可變閾值法,即對波形設(shè)置波峰閾值和波谷閾值。如果峰閾值和谷閾值在一段適當(dāng)時間內(nèi)有較大變化,則重新設(shè)置峰閾值和谷閾值。下面我們將對QRS復(fù)波定位和心律計算進(jìn)行討論。對起始一段時間的信號只進(jìn)行反相和濾波處理,這是為了將倒置的心電信號恢復(fù)過來,并避免信號初期的波動影響閾值。然后在一定的時期內(nèi),根據(jù)采樣得到的數(shù)據(jù)設(shè)置峰閾值 Thpeak 和谷閾值THtrough,然后對QRS波進(jìn)行定位。最后,按以下步驟(見圖3)進(jìn)行數(shù)據(jù)處理。
圖3:數(shù)據(jù)處理的基本步驟
讀取新采樣點Ni:
1)判斷采樣的信號點幅值是否大于峰閾值Thpeak。如果不滿足,則回到第1)步。
2)如果滿足條件,則開始計數(shù)n=1,并記錄n值為peaktime1。將時間窗的起始邊滑至此處。
3)繼續(xù)采樣Ni+1,每采樣一次則n+1。
4)判斷新的采樣點Ni+1是否小于谷閾值。如果不滿足,則回到第4)步。
5)如果滿足采樣點小于谷閾值Thtrough,則記錄該點的n值為troughtime1。
6)判斷這兩次滿足幅值要求的信號點時刻troughtime1和peaktime1之差是否在時間窗內(nèi),即是否小于窗寬度THtime。如果不小于THtime,則回到第1)步。
7)如果滿足,則這段信號被認(rèn)為是一個QRS波群。Peaktime1就被定位為一個R波。
有了定位的R波,就可以在此基礎(chǔ)上按以下步驟統(tǒng)計心率:1)找到第一個R波,并記錄n值為peaktime1;2)找到第二個R波,并記錄n值為peaktime2;3)按照以下公式計算心律。
實踐證明,采用這種算法計算得到的心律準(zhǔn)確率高、計算簡便、易于實現(xiàn),并最終在PC機(jī)上觀察到心電信號波形和心律值。
評論