0

我正在尝试从MAX30101 高灵敏度脉搏血氧计和心率传感器计算心率和外周毛细血管氧饱和度 (SPO2) 。我知道当我处于 HR 模式时,我的样本有 3 个字节,而当我处于 SPO2 模式时,样本有 6 个字节。我不明白获取原始数据后该怎么做。

我知道对于 SpO2,我需要使用比率 R=(ACred/DCred)/(ACir/DCir),然后 SpO2=104-17R(如本数据表所示:https ://pdfserv.maximintegrated.com/ en/an/AN6409.pdf),但我不知道如何获得 AC i DC 组件或如何获得 HR。数据表中没有关于它的任何具体信息。有人可以向我解释一下,或者提供一个例子吗?我只能返回原始数据。

这是我为使用stm32ide读取一个示例而创建的代码的一部分:

void max_readFIFO_one_sample(uint8_t mode)
{
    if (mode= hr)
    {

        ret= HAL_I2C_Master_Transmit(&hi2c1, MAX_ADDRw, 0x05, 1, HAL_MAX_DELAY);
        ret= HAL_I2C_Master_Receive(&hi2c1, MAX_ADDRr, temp, 3, HAL_MAX_DELAY);
    }
    else if (mode == spo2)
    {
        uint8_t temp[6] = {0};
        ret= HAL_I2C_Master_Transmit(&hi2c1, MAX_ADDRw, 0x05, 1, HAL_MAX_DELAY);
        ret= HAL_I2C_Master_Receive(&hi2c1, MAX_ADDRr, temp, 6, HAL_MAX_DELAY);
    }


}
4

1 回答 1

0

您必须使用直流滤波,因为响应的电气特性使其充满噪声。您需要找到一种方法来平滑产生的锯齿状曲线,以便获得更稳定和可用的响应(更少噪音)。您提到的文章描述了一种方法,但还有其他方法,包括仅取平均值。要点:您需要将信号值的范围视为特定时间的特定信号值,以获得有意义的结果。您必须找到一种方法将模拟连续值转换为数字离散值。

于 2020-02-27T17:54:10.113 回答