在這個什么都要和“智能”串聯的年代,除了我們司空見款的手機外也就是一些智能手表和手環之類的穿戴設備了。這些智能穿戴設備集成了很多的傳感器,由于脈搏或者心率是生命體征的重要參數之一,所以心率率測量可算是高端入門產品必備的一個技能,正好最近有機會好好研究心率測量的技術,所以趁熱打鐵總結一下光學測量心率的相關知識。
在網上搜集了很多資料,目前心率測量有以下幾種傳感器技術(僅供參考)
1. 心電ECG
2. 光電容積脈搏波描記法PPG
3. 生物阻抗 bioimpedance
4. 攝像頭Camera RGB 、wifi等技術
在上述的幾種方法中,最被人們熟悉的應該就是心電圖。在醫療領域,通常使用心電圖(ECG)測量生理電信號來實現心率和心臟活動的檢測。但是由于測量ECG信號,常常要在身體多個部位連接傳感器電極,在胸部和四肢之間最多可以連接10個電極。ECG信號雖然精準并且信息豐富,但是考慮到穿戴設備的便攜性和功能簡單所以并沒有在穿戴設備上廣泛采用ECG技術。目前情況ECG還是在一些專業領域里面使用例如醫院、體育等方面的研究。
第二種光電容積脈搏波描記法,這個名字讀起來實在是高端,其實說簡單點就是利用光測量脈搏的一種技術。這種技術目前被廣泛應用,本文也是主要介紹這種技術。
第三種生物阻抗傳感器測量方法,目前市場上看到的好像只有Jawbone 的UP3了, 對于此技術網上的資料特別的少。不過通過親身體驗試戴JawboneUP3,感覺這種技術應該比光學測心率的技術難度大但是應該更精準更可靠。最后的Camera RGB和wifi都是是MIT研究出來的新技術,看起來都非常高端,MIT威武啊。其中一個是通過我們手機的攝像頭就能檢測出人體的體征變化,這個技術非常有意思并且也很高端,感興趣的可以看視頻介紹。另一個則是通過我們家里的wifi信號就能測,也甚是高端。當然這兩種還沒有看到上市的產品所以就不多說了。
光電容積脈搏波描記法PPG
光學心率傳感器,如果帶過上述那些智能手表或者智能手環的朋友來說也不算稀奇的事情。就拿AppleWatch來說,測量心率時底部的表盤會發出綠色的燈光,并且測量的時候手腕最好保持不動否側會影響測量結果。接下來將詳細介紹光學心率測量的原理。
如下兩張圖是光學心率傳感器。圖a是LED沒有發光的時候中間是一個光敏二極管,圖b是傳感器的LED發光的時候。
圖a 圖b
那么為什么通過LED燈發光就能測量心率呢?
當LED光射向皮膚,透過皮膚組織反射回的光被光敏傳感器接受并轉換成電信號再經過AD轉換成數字信號,簡化過程:光--> 電 --> 數字信號
為什么大多數傳感器都是采用的綠光呢?
我們先看看光譜的特點,從紫外線到紅外線的波長是越來越長的。
之所以選擇綠光作為光源是考慮到一下·幾個特點:
1. 皮膚的黑色素會吸收大量波長較短的波
2. 皮膚上的水份也會吸收大量的UV和IR部分的光
3. 進入皮膚組織的綠光(500nm)-- 黃光(600nm)大部分會被紅細胞吸收
4. 紅光和接近IR的光相比其他波長的光更容易穿過皮膚組織
5. 血液要比其他組織吸收更多的光
6. 相比紅光,綠(綠-黃)光能被氧合血紅蛋白和脫氧血紅蛋白吸收
總體來說,綠光-- 紅光能作為測量光源。早起多數采用紅光為光源,隨著進一步的研究和對比,綠光作為光源得到的信號更好,信噪比也比其他光源好些,所以現在大部分穿戴設備采用綠光為光源。但是考慮到皮膚情況的不用(膚色、汗水),高端產品會根據情況自動使用換綠光、紅光和IR多種光源。
雖然知道了上面的幾個特點,但是還不足以弄清楚為什么通過光照就能測出心率、血氧等參數呢?
下圖就解釋了核心原理
當光照透過皮膚組織然后再反射到光敏傳感器時光照有一定的衰減的。像肌肉、骨骼、靜脈和其他連接組織等等對光的吸收是基本不變的(前提是測量部位沒有大幅度的運動),但是血液不同,由于動脈里有血液的流動,那么對光的吸收自然也有所變化。當我們把光轉換成電信號時,正是由于動脈對光的吸收有變化而其他組織對光的吸收基本不變,得到的信號就可以分為直流DC信號和交流AC信號。提取其中的AC信號,就能反應出血液流動的特點。我們把這種技術叫做光電容積脈搏波描記法PPG。
下圖是PPG信號和ECG信號的對比
實際測量手指的PPG信號如下:
所以,只要測得到的PPG信號比較理想算出心率也不算什么難事。但是事實總是殘酷的,由于測量部位的移動、自然光、日光燈等等其他的干擾,最終測到的信號可能是下面的這種,所以要通過很多方法進行濾波處理
對于PPG信號的處理,目前我知道的有兩種方法。一種是時域分析,即算出一定時間內PPG信號的波峰個數,另一種是通過對PPG信號進行FFT變換得到頻域的特點。
時域方法:
通過對原始的{PPG信號進行濾波處理,得到一定時間內的波峰個數,然后既可算出心率值
假設連續采樣5秒的時間,在5s內的波峰個數為N,那么心率就是N*12 (這個相信大家都懂,就跟把脈一樣~)
頻域分析:
上面分析過,我們把血液流動對光吸收轉變成了AC信號,如果對于進行FFT變換,那么就能看到頻域的特點。如下圖就是對PPG信號的FFT轉變
上圖中的頻域圖,0Hz的信號很強,這部分是骨骼、肌肉等組織的DC信號,在1Hz附近有個相對比較突出的信號就是血液流動轉變的AC信號。假設測得到的頻率f = 1.2Hz
那么心率HeartRate HR = f x60 = 1.2 x 60 = 72
最后再簡單提一下血氧的測量,相比心率血氧測量難度較大而且精度不算太高。測量血氧的原理圖下圖所示
由于血液中含有的氧合血紅蛋白HbO2和血紅蛋白Hb存在一定的比例,簡單說也就是含氧量吧。上面的圖表示了氧合血紅蛋白HbO2和血紅蛋白Hb對波長600~1000nm的光吸收特性,從圖中可以看出上600~800nm間Hb的吸收系數更高,800~1000之間HbO2的吸收系數更高。所以可以利用紅光(600~800nm)和接近IR(800~1000nm)的光分別檢測HbO2和Hb的PPG信號,然后通過程序處理算出相應的比值,這樣就得到了血氧值。
但是由于光源不同,直接利用紅光和接近IR的光進行信號對比是不可靠的,因為紅光和IR透過皮膚組織也會產生不同的吸收。下圖是紅光和IR透過皮膚的原始信號示意圖
上面分析說過,DC部分是光透過皮膚組織轉換成的直流信號,AC是血液流動產生轉換成的交流信號。由于皮膚組織對紅光和IR的吸收程度不同,DC部分自然也就不一樣。為了能共“公平對待”兩種光源的PPG信號,所以需要對原始信號處理一下。下圖示意了處理后的信號(DC部分相等)
通過一定的比例計算,公平對待Red和IR的PPG信號。這樣計算出來的Hb和HbO2比例才可靠。