醫院常用的脈搏血氧飽和度偵測儀器的原理及介紹將在本文揭露。使用實驗模組MAX30100搭配arduino。

SpO2 & SaO2

所謂的SpO2及SaO2是什麼呢?

  • SpO2:脈搏血氧飽和度,透過脈搏血氧儀測得。
  • SaO2:動脈血氧飽和度,須透過抽血量測。

臨床上將SpO2及SaO2視為相同(SpO2數值通常略高),但當血紅素異常時,數值判讀就會存在誤差。

下圖為攜氧血球、缺氧血球、碳量高血球、含鐵量高血球等不同血球對不同光波長之光線之吸光係數曲線圖。

SpO2,SaO2 vs light


脈搏血氧儀

傳感器設備放置在使用者身體厚度較薄的位置,例如耳垂或指尖,將兩個波長的光穿透身體部位到達光電探測器,進而測量不同波長的吸光度,由吸光度變化計算血氧濃度。

血氧儀常見在消費性電子產品上像智慧手環、智慧手錶,這種電子產品使用的血氧儀是使用反射式模組,而醫院中夾著手指量測的血氧儀則為穿透式血氧儀。

pulse oximeter probe
穿透式脈搏血氧儀

diode design
Diode set


原理

介紹SpO2計算所運用之定理。

比爾-朗伯定理(Beer-Lambert’s Law)

Wiki:比爾朗伯定理維基百科

Beer’s Law

被穿透物濃度影響光吸收率

Lambert’s Law

光行進距離影響光吸收率

beerLambert's law

Hb, HbO2對光吸收率

HbHbO2光吸收率

通常使用600~700nm(紅光)作為light source 1;
900~1000nm(紅外光)作為light source 2。

HbHbO2光吸收率比較

<結論>

600~700nm:

光吸收率 Hb > HbO2

900~1000nm:

光吸收率 HbO2 > Hb


AC/DC Components

ACandDC
ACDC光強度比較

上圖可以看見,當無脈搏時,光線穿透後之強度為最強,因為光線經過的血液量最少,而當有脈搏時,光強度逐漸降至最小值,直到脈搏血液最多時光線穿透量最少。

而以上光線強度隨著脈搏起伏變動部分以AC稱之,而光線最大值(脈搏最小)則以DC稱之。

(之所以AC/DC稱之即表現像電流交流/直流電。)


SpO2簡易公式

SpO2簡易公式

光(紅光/紅外光)吸收率R=(AC紅光/DC紅光)/(AC紅外光/DC紅外光)。
業界常有簡易算法為上圖右方公式。

事實上根據不同傳感器或是不同LED光源,其導出公式均會有所差異,所以實作時必須依照實驗值校正出一張K表,如下圖:

SpO2K表

根據實驗calibration得出的K表就是血氧儀顯示SpO2數值之依據。


MAX30100 Module with Arduino

下方簡單介紹使用MAX30100 R/IR LED and 光感器模組搭配arduino使用。MAX30100為光源及傳感器在同一側之模組設計,所以是一反射式脈搏血氧儀。

MAX30100 data sheet

原廠 MAX30100 data sheet

接線

注意:我們需要在SCL/SDA兩PIN接上上拉電阻(PULL HIGH),如下三圖。

MAX30100_0

MAX30100_1

MAX30100_2

程式碼

MAX30100-arduino on Github

其中計算SpO2、心跳等需使用到一些演算法,有機會再做介紹。

最後修改日期: 2021-03-31

留言

黃偉庭 

Hi 你好 請問有接下來的文章嗎 想知道計算SpO2 = C + BR + AR^2的 A、B、C是如何求得的

    作者

    係數關係到裝置使用的Light(Source)強度定義範圍,使用不同的光強度導出的係數就會不同。 這部分需要透過實驗,並規範Light(Source) 的intensity。

    作者

    係數的實驗方式可以參考此篇文章: https://www.maximintegrated.com/en/design/technical-documents/app-notes/6/6845.html 中的”Why is Calibration Required?”小節。 裡面有提到calibration求值的方法。

請問血氧演算法為什麼需要扣除55或60?

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。