請想像在未來幾十年後的世界,您的孫執輩可能已經不知道「醫院」這個名詞了,因為屆時所有的健康資訊都將透過感測器遠端記錄和監測。再想像一下這個情境:您的家中配備了不同的感測器來測量空氣品質、溫度、雜訊、光照和氣壓,系統將會根據您的個人健康資訊,自動調整相關環境參數以最佳化您的居家環境。

心率(heart rate;HR)監測是許多現有穿戴式裝置和臨床設備的關鍵特性。這些裝置一般測量光電容積脈搏波(PPG)訊號,為了獲得該訊號,必須利用LED照射人體皮膚,然後用光電二極體測量血流引起的反射光強度變化。PPG訊號形態與動脈血壓(ABP)波形相似,這使得該訊號成為受科學界歡迎的非侵入式心率監測工具。PPG訊號的週期性與心臟節律相對應。因此,可以根據PPG訊號估算心率。然而,受到血液灌流不良、環境光線以及最重要的動作假影(MA)等影響,心率估算性能會降低。

業界已經提出許多訊號處理技術來消除動作假影雜訊,例如ADI的動作抑制和頻率追蹤演算法,透過使用一個靠近PPG感測器放置的三軸加速度感測器加以實現。在沒有任何動作產生時,最好能有一個隨選(on-demand)演算法,為追蹤演算法提供快速且更精確的心率估算。本文調整「多個訊號分類」(multiple signal classification;MUSIC)頻率估計演算法,以ADI醫療健康手錶平台為例,根據手腕上的PPG訊號實現高精度隨選心率估算。如圖1所示。

醫療健康手錶提供的PPG訊號

當LED發光時,血液和組織吸收不同量的光子,導致光電檢測器感測到不同的結果。光電檢測器測量血液脈動的變化並輸出一個電流,該電流隨後經放大和濾波以供進一步分析。

圖2a顯示一個由交流(ac)和直流(dc)分量組成的一般PPG訊號。PPG波形的dc分量檢測組織、骨骼和肌肉反射的光訊號,以及動脈和靜脈血液的平均血容量。ac分量則表示心動週期的收縮期和舒張期之間發生的血容量變化,ac分量的基頻取決於心率。圖2b是來自ADI ADPD107手錶的PPG訊號。ADI多感知手錶的目標在於測量人體手腕上的多項生命徵象,支援PPG、心電圖(ECG)、膚電活動(EDA)、加速度(ACC)以及溫度感測器。本文關注的重點是PPG和ACC感測器。

20180814_ADI_TA31P1 圖1:利用腕上PPG訊號的MUSIC-based隨選心率估計演算法

現在讓我們仔細看看PPG和ABP波形的相似之處。ABP波形是由於左心室射出血液造成的。主壓力沿全身血管網路流動並到達多個部位,導致因動脈阻力和順應性顯著變化而引起反射。第一個部位是胸主動脈和腹主動脈之間的接合處,其所引發的第一次反射通常稱為收縮晚期波。第二個反射部位是腹主動脈和髂總動脈之間的接合處。主波被再次反射回來,產生一個很小的下降,稱為重搏切跡,這可以在第一次和第二次反射之間觀察到。還有其他較小的反射,將會在PPG訊號中平滑化。本文的重點是心率估計,其僅取決於PPG訊號的週期性,而且此演算法並不考慮PPG的確切形態。

20180814_ADI_TA31P2a 圖2a:含ac和dc部份的典型PPG訊號

20180814_ADI_TA31P2b 圖2b:醫療健康手錶擷取到的PPG訊號

PPG訊號預處理

PPG訊號易受周邊組織的不良血液灌流和移動假影的影響是眾所周知的。為了將這些因素的影響降至最小,以免干擾隨後的PPG分析和心率估計,則必須有一個預處理階段。這需要一個帶通濾波器來移除PPG訊號的高頻成份(如電源)和低頻成份(如毛細血管密度和靜脈血容量的變化、溫度變化等等)。圖3a顯示濾波之後的PPG訊號。使用一組訊號品質指標來找到適於隨選演算法的PPG訊號第一個視窗。

第一次檢查涉及ACC資料和PPG訊號,以確定是否能檢測到一段無動作的資料,接著衡量其他訊號品質指標。如果三個方向上存在高於ACC資料絕對值的特定閾值動作,則隨選演算法將會拒絕根據這樣的資料視窗進行估計。下一個訊號品質檢查是基於資料段特徵的某種自相關。圖3b顯示經濾波的PPG訊號之自相關例子。可接受訊號段的自相關表現如下特性:具有至少一個局部峰值,而且對應於最高可能心率的峰值不超過某一數量;局部峰值從高到低遞減,間隔時間遞增;以及其他一些特性。僅計算與有意義的心率(位於30bpm到220bpm範圍內)相對應的間隔時間之自相關。

當有足夠的資料段連續通過品質檢查時,演算法的第二階段就會使用基於MUSIC的演算法算出準確的心率。

20180814_ADI_TA31P3 圖3a:經過帶通濾波的圖1b中PPG訊號

20180814_ADI_TA31P3b 圖3b:圖2a中訊號圖的自相關MUSIC-Based演算法用於隨選心率估計

MUSIC是一種基於子空間的方法,使用諧波訊號模型,可以高精度地估算頻率。對於受到雜訊破壞的PPG訊號,傅立葉轉換(FT)可能表現不佳,因為我們需要的是高解析度心率估計演算法。此外,FT將時域雜訊均勻分佈到整個頻域中,限制了估算的確定性。使用FT很難在較大峰值附近觀察到較小峰值。因此,在本研究中,我們使用MUSIC-Based演算法進行心率的頻率估計。MUSIC背後的關鍵理念是雜訊子空間與訊號子空間正交,所以雜訊子空間的零點會指示訊號頻率。

以下步驟是這種心率估計演算法的總結:

  • 從資料中移除平均和線性趨勢
  • 計算資料的協方差矩陣
  • 對協方差矩陣應用奇異值分解(SVD)
  • 計算訊號子空間階數
  • 形成訊號或雜訊子空間的虛擬頻譜
  • 找出MUSIC虛擬頻譜的峰值作為心率估計值

MUSIC必須應用SVD分解,而且必須在整個頻率範圍內搜尋頻譜峰值。首先從一些數學等式來看,以便讓上述步驟更清楚。假設經濾波的PPG訊號有一個長度為m的視窗,表示為xm且m≤L (其中L為給定視窗中經濾波PPG訊號的總樣本數)。那麼,第一步是形成樣本協方差矩陣,如下所示:

20180814_ADI_TA31F1

然後對樣本協方差矩陣應用SVD,如下所示:

20180814_ADI_TA31F2

其中,U為協方差矩陣的左特徵向量,Λ為特徵值的對角矩陣,V為右特徵向量。下標s和n分別代表訊號和雜訊子空間。正如之前提到的,使用訊號已經通過訊號品質檢查階段的先驗知識,對基於MUSIC的演算法進行修改以用於心率估計,因此預處理步驟之後,訊號中唯一存在的頻率成份是心率頻率。接下來形成訊號和雜訊子空間,假設模型階數只包含一個單音,如下所示:

20180814_ADI_TA31F3 Us = U(1: p, :); Un = U(p + 1: end, :)

其中p = 2為模型數。僅考慮有意義心率限值內的頻率。這會大幅度地減少計算量,使嵌入式演算法的即時實現成為可能。搜尋頻率向量定義為:

20180814_ADI_TA31F4

其中,k為心率目標頻率範圍內的頻點,L為xm (t)中資料的視窗長度。然後,下面的虛擬頻譜(psesudospectrum)使用雜訊子空間特徵向量找出MUSIC的峰值,如下所示。

20180814_ADI_TA31F5

這裡使用虛擬頻譜)一詞,是因為它顯示研究訊號中存在正弦分量,但它不是一個真正的功率譜密度。圖4顯示基於MUSIC的演算法處理5秒資料視窗得到的示例結果,在1.96Hz處出現一個很陡的峰值,換算為心率是117.6 bpm。

20180814_ADI_TA31P4 圖4:使用PPG資料的MUSIC估計示例

基於MUSIC的隨選心率估計演算法結果

我們已經在包含1,289個測試案例(data1)的資料集上測試了該演算法的性能,而在資料開始時,測試物件被要求靜止。表1給出了基於MUSIC演算法的結果,並指示估計的心率是否在參考(ECG)的2bpm和5bpm精度範圍內,以及估計時間的第50個百分位數(中位數)和第75個百分位數。表1中的第二行顯示一個包含298個測試案例(data2)的資料集,存在週期性運動(如步行、慢跑、跑步)時的演算法性能。如果任一資料經運動檢測後被視為不可靠而遭到拒絕,或是不受運動影響而精確估算得到心率,則認為該演算法是成功的。在記憶體使用方面,假設緩衝大小為500 (即100Hz時為5秒),對於目標頻率範圍(30bpm至220bpm),所需的總記憶體約為3.4kB,每次調用花費2.83週期。

20180814_ADI_TA31T1 表1:MUSIC-Based隨選心率估計演算法的性能數值