高 翔李 敏*苏将豪陈杨建谢丽君张加宏
(1.南京信息工程大学电子与信息工程学院,江苏 南京 210044;2.南京信息工程大学,江苏省大气环境与装备技术协同创新中心,江苏 南京 210044)
人类最重要的休息方式是睡眠,睡眠是生活的重要组成部分。睡眠质量的好差无论是在人类的身体方面还是在精神方面都有着极其重要的作用[1]。人体夜间体动和翻身的信息是睡眠质量评价的重要指标,这些信息可以判断人们夜间睡眠情况[2]。频繁的体动对睡眠质量伤害很大,因为它通常伴随着觉醒事件的发生进而导致睡眠质量的降低。目前尽管非接触式的监测方式给受检测者带来了无创性的体验[3],但是仍然存在不足:视频图像类监测方法易受到外部环境光的干扰,研究成果尚不成熟[4];多导睡眠图[5]作为专用医疗设备,其成本高、操作复杂,且检测结果须经专业人士解析,同时它容易对用户的睡眠造成心理干扰,进而可能造成监测结果的偏差。相比较而言,PVDF 压电电缆传感器成本低,准确性高,更有利于大规模推广。
在睡眠分期方面,传统的睡眠分期方法基本上是对脑电信号进行分析。研究人员已采用复杂度[6]、熵值[7]、奇异谱分析[8]等方法来区分不同的睡眠时相。基于非脑电的自动睡眠分期也已有研究,但其分期的分辨率较低,普遍只将非快速眼动(Non-Rapid Eye Movement,NREM)分为浅睡眠和深睡眠[9]。也有研究发现心率变异(Heart Rate Variability,HRV)信号在患者不同的睡眠阶段展示出不一样的时域和频域特征[10]。但在目前阶段研究发现的HRV 信号与睡眠结构的规律不尽相同,使用HRV 来计算睡眠分期还有待探索。相较而言,根据心率和体动数据设计算法实现睡眠分期更加可行。
本文设计的基于PVDF 压电电缆传感器的睡眠质量检测系统通过体动信号结合心率信息对人体睡眠进行了分期,实现了对睡眠过程中觉醒期、眼动期、浅睡眠和深睡眠的识别,具有睡眠质量分析功能,上位机能够直观地为用户显示检测结果,方便用户的查询与使用。
本文设计的基于PVDF 压电电缆的睡眠质量检测系统硬件电路整体框图如图1 所示,主要包含以下部分:电源模块、传感器模块、信号调理模块、微处理器模块以及通信模块。其中电源模块分为基准电压源、模拟电源和数字电源,它们分别为传感器模块、信号调理模块以及微处理器模块进行供电。
图1 基于PVDF 压电电缆的心冲击信号检测系统硬件框图
微处理器模块包括STM32 及其外围电路部分。为减少对信号的干扰,选用了9 V 的电源适配器作为外部电源输入,通过电源芯片降压后得到5 V 和3.3 V 的电压,满足了电路模块中不同的电压要求。传感器模块主要是将PVDF 压电电缆传感器嵌入在普通床垫的内部,通过检测床垫表面的体震变化情况来采集人体的心冲击信号(Ballistocardiogram,BCG)信号[11]。本文在设计用于床垫检测的压电电缆传感器时采用了S 形的结构,S 形结构不仅增大了床垫与人体的接触面积,而且节省了材料,同时S 形结构设计使床垫的受力情况更加均匀,输出的信号灵敏度更高。信号调理电路主要实现对PVDF 压电电缆输出信号进行放大整形处理,使其大小满足ADC 的电压采集范围。微处理器以STM32F4 处理器为核心通过内置的ADC 采集BCG 信号,并利用信号调理电路对信号进行整形放大后由STM32 进行软件滤波,接着通过提取算法从原始的BCG 信号中解析人在睡眠过程中的心率以及体动等信息[12],并将结果实时显示在检测设备的LCD 屏上。远程终端含有手机终端和电脑上位机终端两个部分。手机终端主要是依靠蓝牙与下位机(检测终端)上面的蓝牙模块实时通信[13],方便用户通过手机实时检测生理数据,同时检测终端将采集到的信号发送到电脑上位机,用户能够借助上位机查看长时间的生理数据分析结果,还能够对上位机中的数据选择保存与管理功能,另外上位机能够将数据以网络为载体发送到服务器端,实现对生理信号的一个长时期的分析与检测,分析的结果还可以通过串口由上位机发送到下位机。
信号调理模块由信号调理电路构成,信号调理电路是硬件设计电路中比较重要的部分,信号采集的好坏直接影响后面心率提取的结果以及一系列的算法设计,本文设计的信号调理电路主要包括放大和整形电路。PVDF 压电电缆传感器表面接收到的BCG 信号转化的电荷信号是十分微弱的,转换得到的往往是毫伏级别的电压信号。因此,我们在设计电路的时候要考虑对信号进行调理再送给ADC 进行采样。本文通过在芯片的外围搭建电路将实际电压转换成满足ADC 采集范围的电压。综上所述,最终选用TLV2254 芯片作为信号调理电路的核心芯片,并通过其外围电路共同实现对信号的放大和整形处理。TLV2254 是TI 公司生产的一种低噪声的运算放大器,内部有四个运算放大单元,具有较高的输入阻抗,适合于高阻抗源的小信号调节。高精度的信号调理电路如图2 所示。
图2 高精度信号调理电路原理图
本电路将TLV2254 的第一级运放单元以及分立电容组成高输入阻抗、高增益的电荷放大器。电荷放大器的输出电压Uo和传感器的压电常数d以及电荷放大电路中的电容Cf有关。为了保证输出电压Uo在合适的范围内,电荷放大电路中的电容Cf不能过大,根据经验我们选择了200 pF 的电容。另外为了减小零漂,反馈电阻的值必须足够大,因此我们选择了阻值为100 MΩ 的电阻。在实际的检测中,压电床垫通过屏蔽线与TLV2254 连接,连接端口采用PJ343A 耳机接口,能够对干扰起到一定的屏蔽作用。第一级运放通过与压电传感器之间的连接线引入了50 Hz 的正弦交流信号,压电传感器采集的BCG 信号被叠加在该交流信号中并传到第二级运放的输入端。由于BCG 信号的频率一般在0.1 Hz~25 Hz 之间,因此叠加后的信号变成了一个幅值和周期都发生变化的信号,为了满足ADC 的电压采集范围,我们通过引入直流分量对电压进行抬升,具体做法为:将第三级运放设计成电压跟随器,将1.65 V 的参考电压引入到第二级运放的输入端,利用第二级电压比较器的作用,最终将经过电压抬升叠加后的混合信号波形整形为占空比不同的矩形波波形通过PC0 引脚传输给ADC 芯片。为了减少干扰,第四级运放设计成电压跟随器。经过信号调理电路之后输出的电压区间为2 V~3 V,符合ADC 的电压检测要求。
在信号调理电路部分,为了满足ADC 的检测电压范围,本文加入了1.65 V 的直流电压,STM32 接收到ADC 传送的信号后,为了减少芯片的计算量,需要去除掉直流分量部分。另外经过信号调理电路后的BCG 信号中含有50 Hz 的工频噪声以及其他的噪声干扰,这对后面进行心率、体动信息的提取以及其他相关研究造成了干扰。为了获得单一的心冲击信号,借助STM32 内嵌设计了FIR 数字带通滤波器对ADC 采集的信号进一步进行软件滤波处理。利用STM32 设计数字滤波器的流程如图3 所示。
图3 数字滤波器设计流程图
设计好的带通滤波器能够有效滤除噪声干扰和叠加在信号中的直流分量部分,这为后面离床和体动算法设计与实现减轻了一定的压力。
离床事件在整个睡眠过程中很常见,对于老年人来说,如果能够有效的检测夜间离床时间及时长可以避免很多意外事件的发生。当压电床垫上面没有人时,通过检测系统ADC 采样输出的数字信号的整体幅度的绝对值大小一般不超过500。而床垫上面有人时候,大小在1 000 以上。所以通过设定幅度阈值判定是否有离床事件的发生。本文的离床检测算法设计流程图如图4 所示,算法的执行过程为:首先,获取滤波后的最新5 000 个数据,接着,利用函数arm_min_f32 求出数组中的数据绝对值的平均值A0,然后,利用函数arm_str_f32 得到数组的标准偏差A1,如果同时满足条件:A0<1 000 且A1<100时,则判断此时处于离床状态;否则当A0>1 000 且A1>500 时,表明此时处于有人在床状态。
图4 离床检测算法执行流程图
在一个睡眠过程中,各式各样的肢体动作都是不可避免的事件。包括轻微的肢体动作,也包括较大幅度的例如翻身等肢体动作,当出现较轻微的体动时,此类动作的持续时间较短,信号幅值没有较大的波动,普遍2 s 之内动作就已结束;而夜间的侧身、翻身、腿部舒展等较大幅度的体动事件持续时间一般在5 s 以上,且BCG 波形会出现明显的幅值变化。因此,对于体动信号的判断,只需要对BCG 信号波峰的峰值大小做判断即可,本文的体动信号检测算法设计流程图如图5 所示,算法的执行过程为:首先,获取滤波后的最新5 000 个数据,接着,利用函数arm_min_f32 求出数组中的数据绝对值的平均值A0,然后,利用函数arm_str_f32 得到数组的标准偏差A1,如果同时满足条件:A0>2 000 且A1>1 000时,则判断处于较大体动状态;否则,当2 000>A0>1 000 且A1>500 时,表明此时处于较小体动状态。
图5 体动检测算法执行流程图
系统的现场测试图如图6 所示,该系统是由心率监测设备、电脑端以及手机终端组成。其中心率检测设备由智能床垫、下位机构成;电脑端主要负责和下位机串口的通信功能,包括接收下位机发送的BCG 数据进行相应的处理和界面显示以及发送信号处理结果给下位机;手机终端主要通过蓝牙模块实时接收下位机的生理信号数据。
图6 系统现场测试图
当压电床垫上面无人时,通过检测系统ADC 采样输出的数字信号的整体幅度如图7(a)所示,图中横坐标表示采样点,纵坐标表示AD 采集信号电压转换的幅值,幅值的绝对值大小为430 左右。当床垫上面有人时候,PVDF 压电电缆传感器采集、经过信号调理电路处理,再由ADC 模数转换后的原始信号如图7(b)所示,整体幅值大小在3 000 左右。当出现较轻微的体动时,此时的经过信号调理电路处理后的BCG 波形如图7(c)所示,信号幅值没有较大的波动。当出现夜间的侧身、翻身、腿部舒展等较大幅度的体动事件时,此时经过信号调理电路处理后的BCG 波形如图7(d)所示,波形幅值变化明显。
图7 不同状态下的BCG 信号采集与处理过程
有效地对体动信号进行体动时间和次数记录后,下面继续对用户的睡眠质量进行了评估。选取测试者来开展睡眠质量评估实验,测试者躺在本文设计的智能压电床垫上,模拟睡眠时的真实状态,监测时间约为9 h,从夜晚10 点到次日早上7 点。根据相关实验调查以及研究,规定当1 min 的体动次数超过或者等于3 次,用户处于觉醒期,当1 min 翻身的次数小于3 次,认为用户处于浅睡眠期。根据大量的研究资料发现,心率的变化趋势和睡眠状态存在一定的关系,因此当进入浅睡眠后,可以结合心率来对睡眠进一步地划分,具体做法为:假设一个人入睡前的正常平均心率为70 次/min,我们将平均心率值的80%作为一个边界值对睡眠进行划分:(1)56 次/min <心率<60 次/min,为深睡期;(2)66 次/min <心率<76 次/min,为快速眼动期[14]。根据记录的睡眠分期情况来评定用户睡眠质量,一般正常成年人整晚的睡眠中快速眼动期(REM)占据总睡眠的20%~50%,浅睡眠约为55%~60%,深睡眠约为20%左右[15],随着年龄的增长,深睡眠期的占比会越来越少,睡眠质量也会有所降低[16]。图8(a)为记录过程,图中横坐标代表时间,纵坐标中的0~4 这几个数字则对应睡眠阶段的觉醒期、眼动期、浅睡眠和深睡眠阶段,从上面的睡眠分期图中,可以直观地看到测试者在不同时间段的睡眠情况并根据睡眠分期记录得到睡眠各期占睡眠总时间的比例图,如图8(b)所示。
图8 睡眠分期及各期所占睡眠总时间的比例图
本文基于QT 平台采用C++语言在Windows10操作系统中完成了上位机软件的开发。为了验证上位机软件部分的功能性,选取了几名志愿者进行了实验验证。首先我们搭建好实验环境,然后采用本文设计的睡眠质量检测系统对志愿者进行检测,检测结果如图9 所示。当用户进入主界面后,选择主界面中的睡眠质量报告按钮,后台启动睡眠质量检测分析功能,并将结果反馈给系统,会给出以下界面效果展示图。
图9 睡眠质量报告测试图
在睡眠报告界面中,用户可以选择查看不同日期的睡眠质量报告,方便用户对自己的身体状况的变化简单了解。另外该界面直观地给出用户睡眠时间的记录、睡眠分期结果以及睡眠质量分析评分和简要说明,理解简单,方便使用。
本文设计的基于PVDF 压电电缆的非接触式睡眠质量检测系统,该系统提供了睡眠监测、睡眠质量分析等服务,可以满足正常人睡眠监测的需要。系统建立了一种基于HRV 的多参数睡眠分期方法,利用心率和体动信号自动推算出睡眠分期,分为四个睡眠阶段:觉醒期、浅睡眠期、深睡眠期和快速眼动期。系统采用基于QT 的人机交互界面设计,最后对上位机中的整体功能进行了实验测试,结果表明本文研制的基于PVDF 压电电缆的睡眠质量检测系统能够通过串口模块与蓝牙模块实现上位机和下位机的实时通信功能。系统在整个监测过程中对睡眠几乎无任何干扰,操作简单,能较好描述睡眠状况,且价格低廉,分析结果可以满足对普通人的日常睡眠监测。