使用车辆座椅上的压电传感器无创检测呼吸和心率

关键词: 高级自动碰撞通知;座椅传感器;呼吸频率;心率;心冲击描记术(BCG);压电传感器
这个设计使用专为生产乘用车中的乘员分类而设计的座椅压电传感器在实验室环境中测量乘员的呼吸率 (RR) 和心率 (HR) 的可行性。在碰撞后传递乘员生命体征可以通过将乘员状态的直接测量添加到高级自动碰撞通知 (AACN) 系统来改善应急响应。使用福特野马乘客座椅和座椅传感器从体重从 42 到 91 公斤不等的 11 名参与者收集数据。使用心冲击描记术 (BCG) 方法,通过时域滤波和频域分析处理数据,使用快速傅里叶变换在 1 分钟的滑动窗口中产生 RR 和 HR。使用 Bland-Altman 方法将 30 分钟数据收集和连续 RR 和 HR 信号的静息率与实验室生理仪器进行比较。座椅传感器和参考传感器之间的差异在静息 RR 的每分钟 5 次呼吸内和静息 HR 的每分钟 15 次跳动内。频率分析技术优于峰值检测技术,RR 和 HR 的时间序列比较很有希望。然而,未来的工作对于在实验室环境之外更准确和可靠地实时监测 RR 和 HR 是必要的。频率分析技术优于峰值检测技术,RR 和 HR 的时间序列比较很有希望。然而,未来的工作对于在实验室环境之外更准确和可靠地实时监测 RR 和 HR 是必要的。频率分析技术优于峰值检测技术,RR 和 HR 的时间序列比较很有希望。然而,未来的工作对于在实验室环境之外更准确和可靠地实时监测 RR 和 HR 是必要的。

一、项目背景

-先进的自动碰撞通知 (AACN) 系统在降低车祸中的死亡风险方面具有巨大潜力。然而, AACN系统完全依赖于基于车辆的碰撞严重程度测量,从中只能估计乘员的碰撞响应[ 1、2、3、4]。对乘员的非侵入性生理监测可以证明在提高乘员安全以进行碰撞后应急响应方面非常有价值。在到达事故现场之前,将事故发生后乘员的生命体征传递给第一响应者,有助于为运输和医疗分诊做好适当的准备。伤害预测还可以更好地为急诊室医生治疗即将到来的车祸受害者做好准备。本研究的目的是评估座椅传感器在生产乘用车中的可行性,不仅可以根据重量对乘员进行分类,还可以监测乘员的呼吸率 (RR) 和心率 (HR)。
在评估了一些要求后,我们得出了建议的生理监测技术。首先,对于任何实际应用,该系统必须是低成本的。其次,传感器必须是非侵入式的,并且不需要占用者额外的校准或努力。正如 Weiser 解释的那样,理想情况下,一个无处不在的系统应该消失在背景中,难以区分,并从根本上融入日常生活 [ 5 ]。第三,传感器必须能够对不同体重和静息率的个体进行生理监测。最后,只要车辆在使用中,传感器必须在明暗、白天和黑夜都能工作。
有多种离体传感技术可用于检测 RR 和 HR。过去的一项研究将三个传感系统集成到驾驶员和乘用车座椅中,以检测静止和移动车辆中的生命体征。测量技术包括电容心电图 (ECG) 监测、机械运动分析和感应阻抗监测,这些技术都不需要与人体进行导电接触 [ 6]。对于电容心电图和电感阻抗监测,电极和线圈被集成到汽车座椅的靠背中。最后一种技术使用准压电力传感器来测量通过座椅的小身体运动。通过血液运动的心脏活动的机械方面可以通过称为心冲击描记术 (BCG) [ 7 , 8 ] 的技术来测量。这种技术也可以应用于较大的身体运动,例如呼吸。使用机电薄膜传感器和加速度计的方法已分别在轮椅等移动系统中测试了位移和加速度衍生的 BCG [ 9]。将运动振动与微小的心脏运动分开是一项挑战。然而,振动的自适应消除可能有助于改善 BCG 信号 [ 10 ]。对于机电薄膜,压力传感器的灵敏度也可能取决于静载荷和坐着时的重量分布 [ 11 ]。例如,坐着时体重可能会在双脚、手臂、背部和背部之间转移,这会影响 BCG 信号。可穿戴 BCG 系统也已被探索,并且可能受益于多传感器系统,以将有用信息与正常行走的噪声分开 [ 12 ]。使用各种压力传感器来检测来自呼吸或脉搏的身体运动的轻微波动,这在睡眠跟踪技术中也很常见 [ 13, 14 ]。市场上的其他传感器,例如 Plessey 电位集成电路 (EPIC) 传感器,已经在接触和非接触模式下进行了测试,以测量生物电信号和电场中断引起的运动。这些集成传感器已用于监测呼吸和心率,可能适用于汽车应用 [ 15 ]。还提出了低功率雷达传感器用于非接触式心肺监测 [ 16 ]。最后,可以通过视频图像处理来提取乘员生命体征 [ 17 , 18]。然而,图像处理技术以及所讨论的其他非接触式传感方法将需要在车辆中安装额外的硬件。
相比之下,所提出的技术利用汽车制造商多年来制造并集成到配备先进安全气囊的车辆中的座椅传感器。高级乘客安全气囊系统要求汽车制造商安装乘客感应系统,例如座椅传感器,以对乘客进行分类 [ 19]。这些乘员分类系统可以采用座椅垫下方的压力感应垫或气囊的形式,或者作为集成到座椅轨道中的重量应变计​​。使用 BCG 方法,我们假设车辆座椅传感器可以检测 RR 和 HR,提供一种非侵入性方法来监控碰撞后的乘员并更好地预测伤害严重程度。所提出的解决方案符合我们对普遍存在的生理监测技术的标准,以告知碰撞后响应并补充基于 AACN 车辆的信息,同时利用现有技术。

2,器件和路线

本研究中使用的座椅传感器取自福特 Mustang 前排乘客座椅,并连接到 cDAQ-9172 数据采集系统(National Instruments,Austin,TX,USA)。该传感器由一个充满液体的气囊组成,该气囊连接到一个固态压力传感器。使用 Neulog 呼吸监测带记录器传感器和 Neulog 心率和脉搏记录器传感器(Neulog,Rochester,NY,USA)收集基准呼吸和脉搏测量值。所有数据均以 10 Hz 采样。10 Hz 的奈奎斯特频率足以满足 5 Hz 的最大信号频率,即每分钟 300 次跳动。研究中使用的座椅和座椅传感器如图1所示. 该协议已获得弗吉尼亚理工大学机构审查委员会 (IRB) #17-018 的批准。数据样本来自 11 名参与者,3 名男性和 8 名女性。所有参与者均超过 18 岁。自我报告的体重范围为 42 至 91 公斤,如表 1所示。每个参与者坐在座位上 30 分钟,同时收集座位传感器数据和参考数据。在数据收集过程中,座椅传感器被放置在座椅的泡沫垫下方,就像在车辆中一样。在这里插入图片描述
在这里插入图片描述
2.1。呼吸频率 (RR)
为了提取 RR,来自座椅传感器的原始电压输出信号首先使用截止频率为 0.16 Hz 和 0.66 Hz 的四阶巴特沃斯带通滤波器进行滤波。截止频率来自呼吸频率的生理界限,成人的正常静息 RR 范围为每分钟 10 至 40 次呼吸 (brpm)。使用 RR 的上限,我们的目标是座椅传感器 RR 和 Neulog RR 之间的差异不超过 10%。这为 RR 定义了 4-brpm 的目标差异。
接下来,探索了两种方法来使用过滤后的呼吸数据计算随时间变化的 brpm。在每个参与者 30 分钟的数据收集过程中,数据在 1 分钟的滑动窗口内进行处理。第一种技术是计算模拟信号中的峰值并转换为 brpm。峰值检测在 MATLAB 中进行。只有峰值突出至少为 1 分钟窗口信号的平均峰值突出的 90% 的峰被包括在计数中。这种阈值策略有助于客观地忽略过滤信号中的微小波动。第二种技术是使用快速傅里叶变换 (FFT) 量化压力信号的频率内容,并根据呼吸过滤数据的最高振幅频率计算 RR。以 100 Hz 采样的示例数据如图 2所示说明数据处理中涉及的步骤。来自 Neulog 呼吸带的参考呼吸信号(以任意标准化单位表示)以红色覆盖在过滤的座椅传感器数据上以进行比较。对于图 2中使用峰值检测技术的示例数据,座椅传感器和 Neulog 传感器的 RR 分别为 11 brpm 和 12 brpm。使用频率分析,两种测量设备的速率均为 13 brpm。

在这里插入图片描述
图 2. 100 Hz 下 1 分钟数据采集的样本呼吸率数据处理和测量。( a ) 座椅传感器的原始电压输出;( b ) 过滤后的呼吸信号以蓝色显示,来自 Neulog 呼吸带的模拟基准数据以红色显示。信号被归一化,每个峰值(用星号表示)代表一次呼吸;( c ) 座椅传感器和基准数据的功率谱,显示了构成归一化信号的 FFT 频率分量。
2.2. 心率 (HR)
使用截止频率为 0.83 Hz 和 2.5 Hz 的四阶巴特沃斯带通滤波器过滤原始数据以进行 HR 计算。对于心率高于每分钟 50 次 (bpm) 且低于 150 bpm 的成年人,截止频率就足够了。0.83 Hz 的较低截止频率也用于从模拟数据中去除呼吸信号。使用 HR 的上限,我们的目标是座椅传感器 HR 和 Neulog HR 之间的差异不超过 10%。这为 HR 定义了 15-bpm 的目标差异。
与呼吸率一样,HR 以两种方式计算,以与使用 1 分钟滑动窗口的参考测量值进行比较。如图 3所示,通过对峰值进行计数和对滤波后的座椅传感器信号进行快速傅里叶变换频率分析来计算心率。对于 FFT 分析,最高幅度频率决定了 HR。来自 Neulog 脉冲传感器的参考脉冲信号(以任意标准化单位表示)以红色覆盖在过滤的座椅传感器数据上以进行比较。对于图 3中的示例,峰值检测方法计算的座椅传感器为 91 bpm,Neulog 传感器为 83 bpm。两种测量设备的频率分析结果均为 84 bpm。二次谐波见图 3c,大约 2.8 Hz,最有可能来自血容量脉冲 (BVP) 信号中的二次上行冲程。这个较小幅度的上行冲程代表了来自心脏的初始压力波和来自身体的反射压力波的相互作用 [ 20 ]。“反射”波在图3b 中的模拟信号中可见。
在这里插入图片描述
图 3. 以 100 Hz 采集 1 分钟数据的样本心率数据处理和测量。( a ) 座椅传感器的原始电压输出;( b ) 过滤后的脉冲信号显示为蓝色,来自 Neulog 脉冲监视器的模拟基准数据显示为红色。信号被归一化,每个峰值(用星号表示)代表一次呼吸;( c ) 座椅传感器和基准数据的功率谱,显示了构成归一化信号的 FFT 频率分量。
为 11 名参与者中的每一个收集数据 30 分钟。每一秒,前 60 s 的模拟数据,如图 2a和图 3所示的原始数据a,使用峰值检测和 FFT 频率分析技术进行处理,以产生该时间点的 RR 和 HR。每秒的数据点提供了高时间分辨率,1 分钟的滑动窗口为 FFT 频率分析提供了足够的时间。来自座椅传感器的呼吸和心率时间过程与参考测量值进行了比较。在本研究中,参考 RR 是使用相应技术(峰值检测或频率分析)从 Neulog 模拟信号计算得出的,而参考 HR 直接从 Neulog 设备以 bpm 输出。Neulog 设备无法以 brpm 输出 RR。参与者在 30 分钟的数据收集过程中坐着放松,因此,30 分钟内的平均 RR 和 HR 被认为是参与者的静息率。Bland-Altman 图用于比较两种测量设备的静息 RR 和静息 HR。Bland-Altman 图显示了设备间记录差异之间的关系,是连续变量测量比较的常用方法 [21、22 ]。_ 如过去一项比较 Jawbone 和 Fitbit 健身追踪设备的研究所示,Bland-Altman 图通常显示设备之间的平均值差异 [ 23 ]。在 R 中运行简单的线性回归模型,根据参考 Neulog 静息率对座椅传感器静息率进行回归,以计算 RMSE 和 R 2值。
还在每个单独的时间点比较了两种设备的 RR 和 HR 测量值,以在更高分辨率的时间评估座椅传感器的性能。为了评估在乘员体重和静息 RR 和 HR 范围内测量的可靠性,使用 Bland-Altman 样式图对数据进行可视化。理想情况下,座椅传感器读数和参考读数之间的差异不仅很小,而且与体重和静息率无关。将测量差异(从座椅传感器值中减去的 Neulog 值)与参与者体重和静息率作图。使用所有参与者和时间点的汇总差异,计算 RR 和 HR 两种方法的差异的平均值和标准偏差 (SD),峰值检测 (Peaks) 和频率分析 (FFT)。使用 95% 置信区间 (CI) 计算差异的一致性水平。与使用静息率的模型相比,还使用 ​​RR 和 HR 时间序列数据创建了简单的线性回归模型来计算 RMSE 和 R2个值。

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
好的,以下是使用ADS1292连接心率传感器检测心率的代码: ```c #include <SPI.h> //ADS1292R Registers #define ADS1292_STATUS 0x00 #define ADS1292_CONTROL 0x01 #define ADS1292_CONFIG1 0x02 #define ADS1292_CONFIG2 0x03 #define ADS1292_LOFF 0x04 #define ADS1292_CH1SET 0x05 #define ADS1292_CH2SET 0x06 #define ADS1292_RLD_SENS 0x07 #define ADS1292_LOFF_SENS 0x08 #define ADS1292_LOFF_STAT 0x09 //ADS1292R Command Definition #define ADS1292_WAKEUP 0x02 #define ADS1292_STANDBY 0x04 #define ADS1292_RESET 0x06 #define ADS1292_START 0x08 #define ADS1292_STOP 0x0A #define ADS1292_RDATAC 0x10 #define ADS1292_SDATAC 0x11 #define ADS1292_RDATA 0x12 const int DRDY = 2; //ADS1292 DRDY pin const int CS = 10; //ADS1292 CS pin const int RST = 9; //ADS1292 RST pin void ADS1292_Init() { pinMode(DRDY, INPUT); pinMode(CS, OUTPUT); pinMode(RST, OUTPUT); digitalWrite(CS, HIGH); //disable ADS1292 digitalWrite(RST, HIGH); //reset ADS1292 delay(100); digitalWrite(RST, LOW); delay(100); digitalWrite(RST, HIGH); delay(100); SPI.begin(); SPI.setClockDivider(SPI_CLOCK_DIV2); //set SPI clock to 8MHz SPI.setDataMode(SPI_MODE1); //set SPI data mode to MODE1 SPI.setBitOrder(MSBFIRST); //set SPI bit order to MSBFIRST ADS1292_SPI_Command(ADS1292_RESET); //reset ADS1292 delay(100); ADS1292_SPI_Command(ADS1292_SDATAC); //stop continuous data mode delay(100); ADS1292_SPI_Command(ADS1292_START); //start ADS1292 delay(100); } void ADS1292_SPI_Command(unsigned char data) { digitalWrite(CS, LOW); delay(1); SPI.transfer(data); delay(1); digitalWrite(CS, HIGH); delay(1); } unsigned char ADS1292_SPI_Read() { unsigned char data; digitalWrite(CS, LOW); delay(1); data = SPI.transfer(0x00); delay(1); digitalWrite(CS, HIGH); delay(1); return data; } void ADS1292_SPI_Read_Data(unsigned char* data, int len) { digitalWrite(CS, LOW); delay(1); for (int i = 0; i < len; i++) { data[i] = SPI.transfer(0x00); delay(1); } digitalWrite(CS, HIGH); delay(1); } int ADS1292_Read_Data() { int ecg_data = 0; unsigned char data[3]; while (digitalRead(DRDY) == HIGH); //wait for DRDY to go LOW ADS1292_SPI_Read_Data(data, 3); //read 3 bytes of ECG data ecg_data = ((data[0] << 16) | (data[1] << 8) | data[2]) >> 8; //convert 24-bit data to 16-bit data return ecg_data; } void setup() { Serial.begin(9600); ADS1292_Init(); } void loop() { int ecg_data = ADS1292_Read_Data(); Serial.println(ecg_data); delay(2); } ``` 这段代码使用Arduino与ADS1292R连接,获取心率传感器的数据,并通过串口输出。需要注意的是,此处只是获取了ECG数据,并未进行心率计算。如果需要计算心率,需要进一步处理ECG数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr Robot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值