CN / EN
CN / EN

提问

设计支持

您的项目私密技术问题如需获得一对一支持,请点击下方联系我们。

GH3020心率模块的血氧(spo2)异常问题 GH3020

152***479

2023-10-23 18:10

心率配置图

版本描述

库初始化信息

Gh3x2xDemoInit : Democode Version : GH(M)3X2X_DEMO_v1.5_AC_v0.4(build:Oct 13 2023_17:46:32)

Gh3x2xDemoInit : DrvLib Version : v4.1.0.0 (build:Nov 1 2022_09:44:25)

Gh3x2xDemoInit : Config Version : Gh3x2x_Virtual_Reg_v3.4

[gh3x2x_algo]: version = GX_HARDADT_SOFTCHECK_v0.1
Gh3x2xDemoInit : Algo Version : GX_HARDADT_SOFTCHECK_v0.1

[gh3x2x_algo]: version = GX_HBA_2.2.0.0(Delta)_S_CONF_nc_goodix_dsp_v1.0.3.2
Gh3x2xDemoInit : Algo Version : GX_HBA_2.2.0.0(Delta)_S_CONF_nc_goodix_dsp_v1.0.3.2

[gh3x2x_algo]: version = GX_SPO2_PV_v2.0.1(cardiffA_v2.23_0ae2fc)_nc_goodix_dsp_v1.0.3.2
Gh3x2xDemoInit : Algo Version : GX_SPO2_PV_v2.0.1(cardiffA_v2.23_0ae2fc)_nc_goodix_dsp_v1.0.3.2

[GH3x2xSlotTimeInfo]:CfgIndex[0]:Slot time = 290

[GH3x2xSlotTimeInfo]:CfgIndex[1]:Slot time = 290

[GH3x2xSlotTimeInfo]:CfgIndex[2]:Slot time = 762

[GH3x2xSlotTimeInfo]:CfgIndex[3]:Slot time = 762

[GH3x2xSlotTimeInfo]:CfgIndex[4]:Slot time = 152

[GH3x2xSlotTimeInfo]:CfgIndex[5]:Slot time = 26

[GH3x2xSlotTimeInfo]:CfgIndex[6]:Slot time = 152

Gh3x2xGetConfigVersion : Config Version : 2ca7411d
Gh3x2xDemoInit:init success

[app_hr_adt_enable]cmd:hr adt anble,err_code:0
[Gh3x2xDemoStartSampling] unFuncMode = 0x1

[Gh3x2xSampleRateUpdate]FunctionId = 0x1, slot bit = 0x40,usSampleRateUser = 5

[Gh3x2xSampleRateUpdate]Down sample: FunctionID = 0x1,: SlowestSlotSR = 5, Factor = 0

Current uchSlotEn= 0x40

Current g_unDemoFuncMode= 0x1

[Non-Sync Gsensor]usRefFucntion = 0x1.

[Non-Sync Gsensor]g_fGh3x2xNonSyncGsensorStep = 5.000.

[Non-Sync Gsensor]usRefFucntion = 0x1,usSampleRateMax = 5.

[Non-Sync Gsensor]non-sync gsensor init.


设备佩戴时,驱动库打印的log

[Gh3x2xDemoStartSampling] unFuncMode = 0x43
[Gh3x2xSampleRateUpdate]FunctionId = 0x1, slot bit = 0x40,usSampleRateUser = 5
[Gh3x2xSampleRateUpdate]FunctionId = 0x2, slot bit = 0x2,usSampleRateUser = 25
[Gh3x2xSampleRateUpdate]FunctionId = 0x40, slot bit = 0xC,usSampleRateUser = 25
[Gh3x2xSampleRateUpdate]Down sample: FunctionID = 0x1,: SlowestSlotSR = 5, Factor = 0
[Gh3x2xSampleRateUpdate]Down sample: FunctionID = 0x2,: SlowestSlotSR = 25, Factor = 0
[Gh3x2xSampleRateUpdate]Down sample: FunctionID = 0x40,: SlowestSlotSR = 25, Factor = 0
Current uchSlotEn= 0x4e
Current g_unDemoFuncMode= 0x43
[Non-Sync Gsensor]usRefFucntion = 0x2.
[Non-Sync Gsensor]g_fGh3x2xNonSyncGsensorStep = 1.000.
[Non-Sync Gsensor]usRefFucntion = 0x2,usSampleRateMax = 25.
[Non-Sync Gsensor]non-sync gsensor init.
[gh3x2x_algo]: [goodix_hba_init_func]:params = 0,0,25,4,0,0,0,
[gh3x2x_algo]: [goodix_spo2_init_func]:params = 1,25,-162708,-30749,1035320,1,0,30,15,4,3,0,0,

问题

血氧容易被睡眠期间翻身动作干扰导致血氧值失真。

分析

问题似乎出在翻身动作影响了原始的(红光、红外光)光信号,见下面分析。

以下是一台设备在晚上睡眠期间血氧、3轴加速度、心率的曲线图,红框部分为血氧异常时段,如下图所示:

对于上图,可以看看右边红框时段的血氧频谱图以及心率ppg频谱图。

在上图中,ppg[4]是红光通道,ppg[5]是红外通道,频谱图中绿色曲线为心率值,紫色曲线为血氧值。在产生动作后,原始信号相比正常时段较为微弱。直到相邻的第二动作发生,红光、红外光信号得到恢复,血氧值也开始正常。再看这个时段的心率ppg原始(4通道)信号频谱图。

观察心率ppg[0]通道,在第一个动作产生后,这个通道的反射光几乎没有了,在等到第二个较大幅度的动作产生后,这个通道的反射光就正常了,这与血氧频4)的结果是一致的。

结合心率ppg以及血氧的原始信号来看,血氧异常时段,是翻身动作导致影响了原始反射光信号,进而导致血氧值异常。

已经尝试的解决方案

1. 更换心率配置文件,新的配置文件由供应商提供,结果表明与之前配置无异或者看不出显著区别。

2. 将4PD合并到一个数据通道。结果通道输出的数据完全是杂波,无法使用,得出的血氧值是错误的,下面是心率配置图。

需要原厂确认的解决方案

1、是否能提供血氧置信度?我们的供应商说是提供不了,但我们想找原厂确认。

2、血氧是否能使用4PD+4数据通道?供应商的说法是客户的血氧应用都是单通道,目前没有人尝试使用4通道计算血氧,不知道事实是否如此?

3、4PD+1数据通道接收血氧反射光这种方案是否一定不可行?

4、其他可尝试方案???还是说这种现象是无法避免的?还请原厂给与解答。

0收藏

0赞成

158***837

汇顶员工
2023-10-27 16:48

1、是否能提供血氧置信度?我们的供应商说是提供不了,但我们想找原厂确认。

---是不带置信度的。

2、血氧是否能使用4PD+4数据通道?供应商的说法是客户的血氧应用都是单通道,目前没有人尝试使用4通道计算血氧,不知道事实是否如此?

---当前血氧算法是单通道的, 因为血氧是需要校准的,不同的通道得到的校准曲线是有差异的。

当前比较好的做法是将4路数据采集出来,选择最好的一路数据进行使用。

3、4PD+1数据通道接收血氧反射光这种方案是否一定不可行?

---按你的配置方法相当于将4PD并联成一个PD,相当于一个面积更大的PD,这种方式不一定是最好的;血氧是由红灯、红外数据进行计算的,当有其他位置的PD信号差时,并联方式采集的数据也会受到影响,建议选择一路PD即可。

4、其他可尝试方案???还是说这种现象是无法避免的?还请原厂给与解答。

---因为血氧是需要校准的,建议可以进行一次校准;

---其次也会存在信号很好的伪低氧情况,这跟R值的离散性有更大关系,数据选择上可以选择一路R值离散性较好的PD。

1条评论

1赞成

0收藏

您的评论

登录后可回答问题,请 注册

我们时刻倾听您的声音
联系销售

扫描关注公众号

打开微信,使用“扫一扫”即可关注