Enrique Company-Bosch 和 Eckart Hartmann
心電圖(ECG)是心臟在體表產生的電活動的記錄。心電圖測量信息由放置在身體指定位置的皮膚電極收集。ECG信號的特征是六個峰谷,用字母P,Q,R,S,T和U的連續字母標記(圖1)。
圖1.心電圖信號的形式。
本文提出了一些低成本實施ECG監護儀的想法。1它的配置設想用于個人計算機(PC)。盡管本文在編寫時考慮了患者安全,但提出的任何想法本身并不一定符合所有系統安全要求;任何使用這些想法的人都必須確保在特定設計中,整個設計符合所需的安全標準。
首先,我們概述了典型的模擬ECG拓撲結構。然后提出了一種電路,該電路執行模數轉換、數字濾波和數字放大——所有這些都通過使用微轉換器——一個集成的“片上系統”,結合了A/D轉換器、微控制器和閃存。本文繼續討論微轉換器的組件選擇和編程方面的考慮因素。
心電圖儀的要求
ECG的前端必須能夠處理0.5 mV至5.0 mV的極弱信號,再加上高達±300 mV的直流分量(由電極-皮膚接觸產生)以及高達1.5 V的共模分量(由電極和接地之間的電位產生)。ECG 信號的有用帶寬(取決于應用)范圍為 0.5 Hz 至 50 Hz(對于重癥監護病房的監測應用)——高達 1 kHz(對于后期電位測量(起搏器檢測)。標準臨床心電圖應用的帶寬為 0.05 Hz 至 100 Hz。
心電圖信號可能會被各種噪聲破壞。噪音的主要來源是:
電力線干擾:來自電源的 50–60 Hz 拾音和諧波
電極接觸噪聲:電極與皮膚之間的接觸可變,導致基線漂移
運動偽像:電極-皮膚阻抗變化引起的基線偏移
肌肉收縮:產生肌電圖型信號(EMG)并與ECG信號混合
呼吸,導致基線漂移
從其他電子設備耦合的噪聲,通常是高頻。
為了進行有意義和準確的檢測,必須采取措施過濾掉或丟棄所有這些噪聲源。
典型ECG信號鏈
圖2顯示了典型單通道心電圖儀的框圖。在該鏈中,很明顯,所有濾波都是在模擬域中完成的,而微處理器、微控制器或DSP主要用于通信和其他下游目的。因此,數字內核的強大計算特性并不容易用于處理本質上原始狀態的信號。此外,精密模擬濾波器由于不靈活,以及所需的空間、成本和功耗,對整體設計來說可能成本高昂。
圖2.典型的單通道心電圖儀。
建議的電路
使用ADuC842微轉換器可以簡化信號鏈,該轉換器允許將ADC、濾波器和微處理器組合在一個集成電路中。其他優點是濾波器實施的靈活性和數字域中的隔離。建議的系統設計如圖3所示。
模擬輸入處理
模擬前端采用儀表放大器(IA)和右臂共模反饋運算放大器的典型方法。IA是一款低成本、高精度儀表放大器AD620,具有出色的直流性能:CMR>>100 dB至近1 kHz、50 μV最大失調電壓、低輸入偏置電流(最大值1 nA)和低輸入電壓噪聲(0.28 Hz至0 Hz時為1.10 μV)。
AD620只需要一個外部增益設置電阻,RG.電阻R2和R3將正常增益公式更改為[增益= 1 + 49.4 k/RG+ (49.4 千米/2)/22 千米]。為避免輸出飽和,可用增益受輸出擺幅和IA最大輸入電壓的限制。采用±5 V電源時,AD620的輸出擺幅約為±3.8 V;最大輸入為 ±5 mV,外加高達 ±300 mV 的可變正常模式直流失調,最大增益為 12.45。在這里,增益保守設置為 8 (±1%),使用RG= 8.45 kΩ。
右臂共模反饋電路中使用的運算放大器是OP97,這是一款低功耗、高精度運算放大器,具有極高的共模抑制(最小114 dB)。該電路將共模干擾的反轉版本應用于主體的右腿,目的是消除干擾。運算放大器在共模電壓下具有91 [即R4/(R2 ||R3) = 1 MΩ/11 kΩ],滾降為 1.6 Hz,低通截止頻率約為 160 Hz,以確保穩定性 [f– 3 分貝= 1/(2π × (10 kΩ × 0.1 μF)]。
數字隔離
數字隔離是 PC RS232 接口的核心,在本例中建議用于顯示器。隔離器是ADuM1301,這是一款基于ADI公司的雙向數字隔離器我耦合?技術——一種消除通常與光耦合器相關的設計困難(不確定的傳流比、非線性傳遞函數等)的技術。
與光耦合器相比,它還能夠以更低的功耗實現高數據速率。ADuM1301具有三個獨立的隔離通道,其中兩個用于發送數據,另一個用于接收數據。(ADuM1301的另一個功能(此處不需要)是啟用/禁用輸入/輸出數據的能力。ADuM1301測量側的電源取自ADP3607-5升壓器/穩壓器,后者提供固定的5 V輸出。PC端的電源與電路完全隔離。它可以從 PC 獲取(如此處)或從其他來源獲取。
安全電源
隔離電源由電池提供,不使用時在充電站中充電。為了處理雙極性輸入信號,AD5和OP620需要±97 V雙電源。ADP3607-5升壓/穩壓器和ADP3605逆變器用作穩壓雙電源,采用單節3 V電池提供正負穩壓電壓。
ADP3607是一款穩壓輸出開關電容倍壓器,能夠提供高達50 mA的電流。該器件能夠在低至3 V的輸入電壓下工作,提供穩壓固定為5 V的版本(ADP3607-5),即此處使用的版本。(也可通過外部電阻器在 3V 至 9V 范圍內進行調節。它可以通過由無源元件組成的外部泵級產生更大的正電壓。
ADP3605開關電容電壓逆變器具有穩定的輸出電壓,能夠提供高達120 mA的電流。該器件提供固定在–3 V (ADP3605-3)的調節,或通過外部電阻在–3 V至–6 V范圍內進行調節。(與ADP3607一樣,通過增加一個外部泵級可以實現更大的負電壓。需要–5 V電源,輸入電壓為+5 V,因此R設置為31.6 kΩ (±1%),使用公式:在外= –1.5 R/9.5 kΩ。
兩種電源電壓(±5 V)均由電容式電荷泵產生,即使在故障條件下也不會產生不安全的電壓,因為它們不需要任何電感器。這些器件還具有關斷模式,允許微轉換器在系統不使用時關閉器件的電源。
圖3.建議的心電圖配置。
患者安全
除了數字隔離和安全電源外,串聯電阻Rx1、Rx2和Rx3還為患者提供保護,以符合AAMI(醫療儀器促進協會)的安全電流水平標準(參見參考文獻)。這些標準要求來自電子器件的均方根接地電流或故障電流必須小于50 μA。
信號處理
ADuC842微轉換器非常適合主要信號處理任務。它具有一個快速的12位ADC和其他高性能模擬外設、一個快速的8052微處理器內核、用于代碼的集成62KB閃存以及其他幾個有用的外設,如圖4所示。
圖4.ADuC842原理框圖
用于此設計的微轉換器的關鍵組件是ADC和8052內核。ADC將儀表放大器的模擬輸出轉換為數字信號。為 8052 內核編寫的軟件處理數字化信號,以生成最終 ECG 軌跡的數據。與許多 MicroConverter 設計一樣,該軟件既包括用 C 語言編寫的復雜高級代碼,也包括用匯編代碼編寫的時間敏感例程。在這種情況下,帶通濾波器和陷波濾波器的實現采用C語言,而ADC由匯編代碼控制。匯編代碼與轉換器速度相結合,可以累積多個樣本,從而將ADC的有效分辨率提高到遠遠超過其正常的12位。
圖5很好地說明了微轉換器的有效性。頂部跡線是來自應用于ADC的儀表放大器的信號。中間跟蹤僅顯示使用 C 代碼篩選實現的初始結果,而底部跟蹤顯示使用匯編代碼處理多個轉換后的最終結果。
圖5.示波器跡線。
C 代碼中的篩選器
采集的信號通過微轉換器中的數字濾波進行處理。為此,我們設計了兩個基于500 Hz采樣頻率的二階數字無限脈沖響應(IIR)濾波器。陷波濾波器設計用于抑制50 Hz干擾。選擇的設計程序是極點零點放置方法,陷波頻率為50 Hz,陷波寬度為10 Hz。為此,需要以下傳遞函數:
傳遞函數可以轉換為可編程遞歸算法:
在這個等式中,子索引 k 表示當前值,k-1 表示前一個時刻的值,依此類推。
我們現在需要將這個等式轉換為代碼。C 編碼是這種算術密集型處理的自動選擇,因為在匯編中對其進行編程太耗時了。使用ADuC842直接實現濾波器方程效率低下,因為它不是為浮點計算量身定制的。幸運的是,我們可以縮放系數(例如按 4096)并將陷波代碼實現為:
iNOut = (4096L*iNIn-6627L*iNIn1+4096L*iNIn2+6211L*iNOut1-3598L*iNOut2)/4096;
這實現了二階濾波器。雖然我們可以計算高階濾波器,但在實踐中,簡單地級聯二階濾波器似乎是可行的。
第二個濾波器是巴特沃茲通帶濾波器,具有0.05 Hz的低截止頻率和100 Hz的高截止頻率。傳遞函數和遞歸算法為:
這是通過以下方式在 C 代碼中實現的:
iBOut = (1723L*iBIn-1723L*iBIn2+4745L*iBOut1-650L*iBOut2)/4096;
請注意,只需更改輸入的系數即可縮放輸出。另請注意,為了提高效率(如果信號都是正數),最后通過向右移動 4096 來完成 12 的除法。
圖6所示的實現方案適用于4個帶通濾波器和12個陷波濾波器的級聯。信號在第一和第二帶通濾波器中按4096倍放大。<> 位右移完成 <> 分頻。
圖6.C 代碼的重要組成部分。
請注意 if (iAdc00>24000)iDac-= 1 和 if(iAdc00<8000)iDac += 1,這些行調整 ADuC842 的 DAC 輸出以驅動 AD620 的電平轉換輸入,從而將 AD620 輸出轉換為微轉換器 ADC 輸入的舒適值。 這是可取的,以減少由于電極施加到皮膚的方式略有不同而導致的可變直流偏移的影響。類似的技術用于確保輸出電壓在輸出范圍內居中。
在匯編代碼中處理
匯編代碼的主要功能是定期測量輸入信號,并確保以每秒 500 次所需的速率重復 C 代碼計算。首先,我們將 Timer0 編程為連續運行,并以 1 毫秒的間隔生成中斷。每個中斷重新啟動 Timer0,獲得一個 ADC 轉換結果,并遞增一個變量 c2ms,用于同步 C 代碼。在代碼開發的這個階段,C 代碼的前幾行是:
而(c2ms<2);用于第一階段。
c2ms = 0;
iAdc00 = iAdc0;
最初,c2ms 為 0,C 代碼將在 while(c2ms<2);1 毫秒后,發生 Timer0 中斷,c2ms 遞增到 1。再過 1 毫秒后,c2ms 遞增到 2。現在雖然(c2ms<2);不再滿足,C 代碼通過將計數器 c2ms 重置為 0 并執行過濾器計算來繼續。此后,C 代碼將結果沿變量鏈向下移動,這些變量表示為下一次循環迭代準備的各種延遲結果。循環的最后一部分是printf(...),它將結果發送到PC進行顯示。在 PC 上處理數據(超出本文的范圍)可以像將其導入電子表格進行圖形顯示一樣簡單,也可以像設計人員希望的那樣復雜。該解決方案產生了圖5的中間跡線。
為了改善結果,Timer0中斷率縮短到1/32 ms,并將數據累積在iAdc0中,以使用多個測量而不是單個測量。同時,while 更改為 while(c2ms<64),以便 C 代碼在執行每個濾波器循環之前等待累積 64 個測量值。iAdc0 中的值保存在 iAdc00 中以供進一步處理,然后清除 iAdc0 — 準備累積接下來的 64 次測量。圖 7 顯示了程序集代碼。這種改進的解決方案產生了圖5的下跡線。
圖7.程序集代碼。
獲得
信號增益始終是ECG信號鏈中的一個重要考慮因素。在上述設計中,它取決于許多因素。如前所述,模擬增益設置為8×。接下來,通過累積該信號的64次測量結果,獲得64×的增益。接下來,代碼iBIn = iAdc8>>0;的信號損失為3×,最后,前兩個帶通濾波器方程的縮放增益為4×兩倍。這導致總增益為 G = (8 × 64/8) × 4 × 4 = 1024,這是模擬 ECG 電路的典型值。
圖8.實際測量圖表。
結論
圖8顯示了以埃因托芬導聯線I配置連接的受試者的結果。可以看出,盡管使用的電子硬件很簡單,但仍取得了良好的效果。本文表明,通過簡單的硬件結合對軟件的關注,可以實現顯著的改進。此示例中的改進絕不是最佳水平;專門的設計師應該有可能顯著改善結果。如果要實現具有不同濾波器頻率或其他特殊特性的代碼,則可以進行其他改進。ADuC842的代碼存儲器基于閃存,允許在使用該產品的產品制造后進行此類定制,甚至可以在患者需求發生變化時進行此類定制。最終的結果可能是為潛在的大批量市場提供緊湊、廉價的心電圖。
審核編輯:郭婷
-
濾波器
+關注
關注
161文章
7795瀏覽量
177996 -
存儲器
+關注
關注
38文章
7484瀏覽量
163765 -
計算機
+關注
關注
19文章
7488瀏覽量
87854
發布評論請先 登錄
相關推薦
評論