人体心率血氧测量方案的阐述

啊,其实这个东西之前好几期视频有介绍过了,不过之前大多是使用采用美信的MAX30100/02来使用的,在这个基础上面也完成一些拓展,例如加上了NanoEdge AI做了一些异常检测等等。

本期我们展开的说说人体心率血氧检测的方案。

其实这应该分为两个部分来讨论,一是心率测量,其次是血氧测量。

在常见的单片机心率测量方案中,常使用一对红外对管(我们之前有做过数字心率测量仪)将手指放置于红外对管上,之后对红外对管进行信号调理。

不过相较于复杂繁琐的模拟电路,如今测量心率已经有非常多的集成电路了。

可以测量心率的芯片有很多种类,广泛应用于可穿戴设备、医疗设备以及健身追踪器等。以下是一些常见的心率测量芯片:

  1. Maxim Integrated MAX30100/MAX30102

    • 这些芯片集成了脉搏血氧仪和心率传感器,能够通过光电容积脉搏波描记(PPG)技术测量血氧饱和度和心率。

    • 常用于可穿戴设备,例如智能手表和健身追踪器。

  2. Texas Instruments AFE4400/AFE4404

    • 这是一系列模拟前端(AFE)芯片,专为光学心率监测而设计。

    • 支持PPG信号的采集和处理,常用于医疗级设备。

  3. Analog Devices ADPD4100/ADPD4101

    • 这些多参数光学传感器芯片不仅可以测量心率,还可以监测血氧、呼吸率等多种生理参数。

    • 提供高度集成的解决方案,适用于可穿戴健康监测设备。

  4. ams AG AS7000系列

    • 这些芯片利用PPG技术进行心率监测,同时还可以测量其他生理参数。

    • 具有低功耗特性,非常适合长时间佩戴的设备。

  5. Si114x系列(Silicon Labs)

    • 这些传感器主要用于手指或耳垂的心率检测,通过反射式PPG方法进行测量。

    • 低功耗和小尺寸设计,适合嵌入式应用。

工作原理

这些芯片通常通过光电容积描记法(PPG)来测量心率,即通过发射光和检测反射光来测量血液流动的变化。

以上的芯片无一例外均可以实现心率以及血氧的检测,他们通常通过光电容积描记法来测量心率。

通过芯片发射某一特定波长的光线(通常是660nm的红光)这些光波长能够穿透皮肤和血液。

光线穿过皮肤和血管,部分光线被组织和血液吸收,部分光线被反射或散射。

光检测器(如光电二极管)接收反射回来的光线,测量其强度变化。血液含氧量和血流量的变化会导致反射光强度的变化。

接收到的光信号经过放大和滤波处理,以提取与心跳同步的脉搏波信号。这个信号的波形变化反映了心脏每次跳动时血液量的变化。

如图上所示是一种反射式PPG,通过测量反射光波来获取血液量变化。如此之外还有投射式PPG即光源和光检测器分别置于组织的两侧,常用于指尖或耳垂等部位。光线穿过组织,光检测器接收透过组织的光线。

血氧

血氧(Blood Oxygen)指的是血液中氧的含量,通常以血氧饱和度(SpO2)的形式来表示。血氧饱和度是动脉血液中氧合血红蛋白(氧气与血红蛋白结合后形成的血红蛋白)占总血红蛋白的百分比。它是评估呼吸功能和循环系统健康的重要指标。

血氧芯片通常包含两个不同波长的LED光源:红光(约660 nm)和红外光(约940 nm)。

红光和红外光分别具有不同的吸收特性,红光主要被氧合血红蛋白吸收,红外光主要被未氧合血红蛋白吸收

这里是一张模拟的血氧测量图片,展示了光电容积描记法(PPG)信号及其计算的血氧饱和度(SpO2):

  • 光源发射

    • 血氧芯片中的LED光源依次发射红光和红外光。

  • 光线吸收和散射

    • 当光线穿过皮肤和血管时,一部分光线被氧合血红蛋白和未氧合血红蛋白吸收,另一部分光线被散射和反射。

  • 光检测器接收

    • 光电二极管检测到反射回来的红光和红外光的强度,生成两个不同波长的光电信号。

  • 信号放大和滤波

    • 通过放大和滤波电路,去除干扰和噪声,得到稳定的光电信号。

  • 计算SpO2

    • 芯片内部的算法根据红光和红外光的强度比值,计算出血氧饱和度。

    • 上图:显示了红光(660 nm)和红外光(940 nm)的吸收信号。红光吸收信号的变化幅度较大,而红外光吸收信号的变化幅度较小,这反映了血液中氧合血红蛋白和未氧合血红蛋白的不同吸收特性。

    • 下图:基于红光和红外光吸收信号的比值,计算得到的血氧饱和度(SpO2)。在这个简化模型中,SpO2大约在95%到100%之间波动,显示了随着时间的变化估算的血氧水平。

这也就是目前常见的血氧芯片的工作原理了。

<think>嗯,用户问的是如何通过PPG信号测量血氧饱和度,我需要根据提供的引用内容来回答。首先,我得回顾一下PPG的基本原理。PPG是通过光电容积描记法来检测血液容积变化,对吧?然后血氧饱和度的计算主要利用不同波长的光吸收特性不同。 根据引用2,用的是660nm红光和940nm的近红外光。这两种波长的光在含氧血红蛋白和脱氧血红蛋白的吸收系数不同。所以,可能需要计算这两种光透过后的信号强度比值R,再根据R和血氧饱和度之间的经验公式来得出结果。不过引用3提到低血氧时误差会变大,可能因为固定波长的消光系数变化,所以需要考虑波长的选择。 接下来,步骤应该包括信号采集、处理、计算R值、然后通过校准曲线得到SpO2。信号处理部分,引用1提到了时域分析和频域分析,但血氧可能更依赖时域的AC/DC成分。需要提取红光和红外光的交流成分和直流成分,计算它们的比值。 另外,引用3指出在低血氧时传统双波长可能不准,可能需要其他波长组合。不过用户的问题可能更关注常规方法。所以回答时要先讲常规的双波长方法,再提到可能的优化或存在的误差问题。 实现的话,可能需要硬件部分有LED光源和光电传感器,软件部分处理信号,滤波去噪,然后计算R值,代入公式。还要注意运动伪迹和环境光的干扰,这也是实际应用中的挑战。 最后,用户可能需要了解具体的数学公式,比如R=(AC_red/DC_red)/(AC_ir/DC_ir),然后SpO2 = a - b*R之类的经验公式,引用中的内容应该支持这些步骤。同时要提到实验校准的重要性,因为不同设备可能需要不同的参数。</think>### 通过PPG信号测量血氧饱和度的方法及实现 #### 1. **基本原理** 血氧饱和度(SpO₂)的测量基于含氧血红蛋白(HbO₂)和脱氧血红蛋白(Hb)对不同波长光的吸收特性差异。通常使用**660nm红光**和**940nm近红外光**作为光源,通过检测透射或反射光强度变化来计算SpO₂[^2]。 #### 2. **实现步骤** **(1) 信号采集** - **硬件设计**:使用红光(660nm)和近红外光(940nm)LED交替照射皮肤,通过光电传感器(如光电二极管)捕获透射或反射的PPG信号。 - **信号分离**:通过分时复用或频率调制技术区分两种波长的信号[^2]。 **(2) 信号处理** - **滤波去噪**:对原始PPG信号进行带通滤波(如0.5-5Hz),消除基线漂移和高频噪声[^1]。 - **分离交流(AC)和直流(DC)成分**: - **AC成分**:反映心脏搏动引起的血液容积脉动。 - **DC成分**:反映组织、骨骼等静态吸收[^1]。 **(3) 计算参数R** - 通过红光和近红外光的AC/DC比值计算参数$R$: $$ R = \frac{(AC_{\text{red}} / DC_{\text{red}})}{(AC_{\text{IR}} / DC_{\text{IR}})} $$ 其中,$\text{red}$表示红光,$\text{IR}$表示近红外光[^2]。 **(4) 血氧饱和度计算** - 通过经验公式将$R$转换为SpO₂: $$ SpO_2 = a - b \cdot R $$ 其中$a$和$b$为校准系数,需通过实验标定[^3]。 #### 3. **误差与优化** - **低血氧误差**:传统双波长(660nm/940nm)在SpO₂<80%时误差增大,可采用735nm/890nm组合优化。 - **运动伪迹**:需结合加速度计数据或自适应滤波消除干扰。 - **个体差异**:需针对肤色、组织厚度进行校准。 #### 4. **代码实现示例(信号处理部分)** ```python import numpy as np def calculate_spo2(red_signal, ir_signal): # 计算AC成分(峰峰值) ac_red = np.max(red_signal) - np.min(red_signal) ac_ir = np.max(ir_signal) - np.min(ir_signal) # 计算DC成分(均值) dc_red = np.mean(red_signal) dc_ir = np.mean(ir_signal) # 计算R值 R = (ac_red / dc_red) / (ac_ir / dc_ir) # 经验公式(需实际校准) a = 110 # 示例参数 b = 25 # 示例参数 spo2 = a - b * R return np.clip(spo2, 90, 100) # 限制在合理范围 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值