龐 宇, 陳亞軍, 汪立宇
(重慶郵電大學光電工程學院,重慶 400065)
在臨床上,心電信號(electrocardiogram, ECG)是診斷心血管疾病的重要依據。然而,人體運動中的心電信號是很不穩定的,隨機性強,包含許多干擾信號,并且會降低心電信號的質量[1]。根據心電信號的頻譜圖,心電信號90%的能量成分頻率集中在0.25~35 Hz,因此,消除心電信號的噪聲干擾對心血管疾病的分析和診斷具有重大意義[2-3]。
由于運動中的心電信號頻率與運動偽跡干擾頻率類似,很難有效分離,為此,通常采用自適應濾波處理心電信號中的運動偽跡干擾。例如,文獻[4]用一種前饋組合自適應濾波器,消除心電信號中的運動噪聲。文獻[5]使用級聯自適應濾波消除動態心電信號的運動噪聲。
自適應濾波算法是目前廣泛使用的一種方法,是近年來在維納濾波、Kalman濾波等線性濾波基礎上發展起來的一種最佳濾波方法。自適應濾波算法通過參考量調整濾波器系數,依據參考量和噪聲信號的相關性去除干擾量,而自適應算法研究表明,皮膚電極阻抗和加速度信號與ECG中運動偽跡干擾密切相關。因此,利用ADX345輸出加速度信號作為自適應濾波器的噪聲參考信號。研究了最小均方(least mean squares, LMS)與改進的歸一化最小均方(normalized least mean squares, NLMS)算法在消除ECG中的運動偽跡干擾的濾波效果。
系統的導聯電極模塊與檢測裝置是分立的,使用緊身背心作為穿戴載體,將導電硅膠電機鑲嵌在可穿戴背心中,便于重復使用。
檢測裝置采用單導聯(Lead 1)方式采集ECG,電路使用TI公司的ADS1292R芯片,其含有兩路差分導聯心電采集通道;一路呼吸阻抗調制驅動通道和ECG右腿驅動模塊。ADS1292R芯片不僅集成了具備-105 dB共模抑制比的心電模擬前端電路,還擁有24位高分辨率的ADC,其每秒采樣次數的范圍為125 SPS~8 k SPS,能夠高精度地采集ECG,并量化成數字信號,通過SPI接口將心電數據發送到單片機作進一步算法處理。主控芯片采用STM32L151、STM32L系列產品基于超低功耗的ARM Cortex-M4處理器內核。加速度傳感器采用ADX345,通過IIC總線接口傳輸三軸加速度數據。藍牙模塊采用以nRF52832為核心的射頻系統收發模塊,支持藍牙5.0協議高速通信功能。系統硬件框圖如圖1所示。

圖1 硬件框圖Fig.1 Hardware block diagram
圖1中包括導聯電極模塊、心電信號采集模塊、加速度模塊、藍牙模塊、主控模塊以及電源管理模塊。電源管理模塊采用TLV70033DCK提供3.3 V電壓,主控使用STM32L151組成的最小系統,SPI、I2C接口分別獲取心電信號采集模塊、加速度模塊的數據,并通過異步串行通信(UART)將數據傳輸至藍牙透傳模塊,并且在終端(手機APP,上位機)實時顯示[6]。
三軸加速度電路如圖2所示,其CS引腳由10 kΩ電阻拉高后配置ADXL345的輸出方式為I2C,其電源電壓為3.3 V。將其固定在胸部,加速度隨人體的運動而改變。將采集到的三軸加速度數值通過I2C傳輸數據給主控處理,可通過軟件設置關斷芯片。

圖2 加速度電路Fig.2 Acceleration circuit
為了實現檢測裝置的低功耗和小型化,裝置的充電芯片采用BQ21040,如圖3(a)所示,考慮到充電時裝置不會采集心電信號,并且出于功耗和節能考慮,裝置通過Q2導通與截止來控制系統是否工作,裝置在充電時使其停止輸出3.3 V工作電壓,只保留充電芯片處于工作狀態,系統在正常使用時,Q2導通,使其輸出3.3 V電壓供給各個芯片電源電壓,如圖3(b)所示。

圖3 電源電路Fig.3 Power circuit
1960年,Widrow與Hoff教授在總結前人研究的基礎之上,首次提出了以LMS誤差為判斷標準的自適應算法[7]。LMS算法的準則是使均方誤差達到最小,即期望信號與濾波器實際輸出之差的平方的期望值E[e2(k)]達到最小,并且依據這個準則來修改權系數向量W(k)。LMS算法框圖如圖4[8]所示。

圖4 LMS算法框圖Fig.4 LMS algorithm block diagram
圖4中,理想原始心電信號s(k)和噪聲信號n(k)不具有相關性或者相關性很小,而參考信號(加速度信號)X(k)和噪聲信號n(k)有明確的相關性。在濾波處理過程中,利用參考信號更新最佳濾波系數,使y(k)成為n(k)的最佳估計,這個時候e(k)將逼近s(k),且E[e2(k)]為最小。如果參考信號與MA干擾信號相關性越高,則濾波效果越好。LMS算法的數學表述形式如下:
e(k)=d(k)-y(k)
(1)
y(k)=WT(k)X(k)
(2)
W(k+1)=W(k)+2μe(k)X(k)
(3)
式中:μ是自適應濾波器的步長,它與濾波器的收斂速度和算法的穩定性有關。式(1)是誤差估計,式(2)是濾波器的輸出。為了使式(3)收斂,μ要滿足0<μ<2/trR。其中,R為輸入信號的自相關矩陣,trR是矩陣R的跡。可以看出LMS算法的重點在于權值系數更新過程。
當人體處于運動狀態時,原始心電信號和參考信號的幅度變化較大,由于各個參考信號的量綱和數量級不一致,這種變化不易被LMS算法感知。而歸一化最小均方(NLMS)算法是一種能夠適應參考信號幅值變化的變步長算法[9],具有收斂速度快的優勢。NLMS算法可以看作是對LMS算法針對權值更新系數的改進與優化。與 LMS 算法相比,NLMS采用了可變的步長因子,使其瞬時輸出誤差達到最小化[10]。X(k)經過歸一化以后,則為NLMS算法,其濾波系數迭代公式為
W(k+1)=W(k)+
(4)
式(4)中:參數μ為控制失調的固定收斂因子。可以看到,LMS算法中的步長為一個給定的常數,NLMS算法中的步長為一個隨時間變化的量,可把NLMS看作是變步長參數的LMS。NLMS是采用變步長的方法來縮短自適應收斂過程[11],無論對于不相關數據還是相關數據NLMS都要比LMS算法呈現更快的收斂速度,但是,這種改進也會使權值系數的運算量增加[12]。
如果μ大,則LMS算法的梯度噪聲會放大,假設μ小時,可以減少這種噪聲并且具有小的失調,但是收斂速率會變慢,為了使算法快速收斂,則μ值應該盡可能大,而μ增大,就會引起梯度噪聲和失調量增加,所以μ是LMS算法很難準確把握的一個參數。
為了減少運算量,可以通過優化NLMS算法的μ與輸入量之間的關系;而LMS算法收斂速率較慢,則可以結合迭代次數優化μ,以此來改善算法收斂速度[13]。在NLMS算法的基礎上,對數據進行分段處理,在某一迭代次數范圍內選擇一個固定的μ。譬如,在迭代次數ki~ki+L范圍內取μ為1/k,對于這段數據就是LMS算法。假設把數據分成更多段,直至一次迭代作為一段時[14],則步長可以近似為μ≈1/k。在自適應過程開始階段,迭代次數k較小,從而整個μ較大,其收斂速度很快[15];隨著自適應過程的進行,迭代次數k逐漸增大,則μ逐漸減小并趨于穩定,于是,保持權值系數W(k)穩定在最優權值系數附近,失調量較小。其權值更新公式為
W(k+1)=W(k)+1/δke(k)X(k)
(5)
式(5)中:δ為與X(k)相關的系數,μ(k)=1/δk,步長因子μ(k)隨著參考噪聲X(k)的增大而減小。
可以看出,改進的NLMS算法優化了步長因子并且運算量不會大幅增加,采用改進的NLMS算法明顯優于傳統LMS和NLMS算法,并且使用變步長的方法實現了自適應過程開始時快速收斂,而進入穩定狀態后會有一個小的失調量,從而解決了LMS算法的收斂速度和失調量之間的矛盾。
根據上文所述方法,在實際應用中制作的心電信號檢測裝置樣品如圖5所示,使用標準游標卡尺測量樣機大小為39.00 mm×20.00 mm。
為了驗證改進NLMS算法的濾波效果,將整個系統固定在鑲嵌有采集電極的背心上,并讓受試者穿上正常行走。加速度信號如圖6所示,采集到含有運動噪聲的ECG信號如圖7(a)所示。
由圖7(b)、圖7(c)可知,人體運動狀態時的心電信號通過改進的NLMS算法較好地消除除了運動偽跡噪聲,信噪比得到了很大提高。

圖5 檢測裝置樣品圖Fig.5 Test device sample

g為重力加速度圖6 原始加速度波形Fig.6 Raw acceleration waveform

圖7 經過兩種算法處理后的波形對比Fig.7 Comparison of waveforms processed by two algorithms
圖8所示為兩種算法平方誤差曲線,可以看出,改進的變步長LMS算法收斂更快更好。

圖8 兩種算法的平方誤差曲線對比Fig.8 Compare the squared error curves of the two algorithms
設計的心電信號監測裝置能夠在作業活動中實時監測心電信號波形。在心電信號運動偽跡干擾的處理上,對比了LMS算法和改進的NLMS算法在處理運動偽跡噪聲的效果,發現在NLMS算法基礎上對數據進行分段處理,并且改進優化步長因子,實現了良好的濾波效果。算法對于消除心電信號中的運動偽跡干擾具有廣闊應用前景。