一种睡眠分期监控方法
技术领域
本发明涉及睡眠分期监控领域,特别是涉及一种睡眠分期监控方法。
背景技术
睡眠是一种重要的生理活动,对于人体的物理和精神方面的自我恢复具有非常关键的作用。近年来,随着社会节奏的加快,人们的工作、生活压力日益加大,睡眠质量下降成为许多人面临的问题,严重影响了身心健康。
因此人们日渐重视对睡眠质量进行评估和分析,而对睡眠质量进行评估和分析的基础和前提就是进行睡眠分期监控。睡眠的阶段具体包括觉醒期、快速眼动期及包括深睡期与浅睡期的非快速眼动期。在个体化差异化下,现有技术的睡眠分期监控结果差异大且不准确。
发明内容
本发明的目的解决现有技术的瓶颈,提供一种睡眠分期监控方法,由以下技术方案实现:
一种睡眠分期监控方法,包括以下步骤:
获取测试者的体征参数,所述体征参数包括体动数据、连续呼吸率、连续心率及心率变异性;
以滑动时间窗的方式遍历所述体动数据得到无体动区域及反映体动频率与体动持续时间的体动数据序列,叠加运用形态滤波对所述体动数据序列进行开运算和闭运算得到的信号获得体动趋势线;
根据所述体动趋势线的波动情况,提取体动信号趋势中符合觉醒期特征的待定区域,结合连续呼吸率及连续心率的数据变化进行判断,从所述待定区域及所述无体动区域中识别出觉醒期;
对所述连续心率的数据进行等距量化及差分量化处理,获得所述连续心率的的差分量化值DI,由所述差分量化值DI确定快速眼动期的起止时间坐标,识别出快速眼动期;
基于所述觉醒期及快速眼动期的识别结果,得到非快速眼动期;
将所述觉醒期、快速眼动期、非快速眼动期整合为完整的睡眠数据。
相较于现有技术,本发明的一种睡眠分期监控方法,以包括连续心率、呼吸率及体动等多维生命体征参数作为识别依据进行睡眠分期监控,实现对觉醒期、快速眼动期、非快速眼动期的精准识别。
作为对上述睡眠分期监控方法的改进,根据所述体动趋势线的波动情况,提取体动信号趋势中符合觉醒期特征的待定区域,结合连续呼吸率及连续心率的数据变化进行判断,从所述待定区域及所述无体动区域中识别出觉醒期,包括以下步骤:
识别所述体动趋势线的波峰区域,判断对所述波峰区域的峰值是否超过对应的阈值,并据此提取体动信号趋势中特征为体动持续时间长的大体动密集区域和特征为体动持续时间短但一段时间内体动频繁的小体动密集区域;将所述大体动密集区域直接识别为觉醒期;
由所述连续呼吸率获得的呼吸率方差、呼吸率能量及对呼吸原始信号动态时间规整,通过形态滤波得到三组连续呼吸率参数的趋势线,判断所述连续呼吸率参数的趋势线在所述小体动密集区域内是否存在波峰,若有两组或三组连续呼吸率参数的趋势线在小体动密集区域内存在波峰,则将所述小体动密集区域识别为觉醒期,否则识别为非觉醒期;
由所述心率变异性,基于窦性R-R间期的识别,计算出低频与高频能量比、变异系数及相邻两个R-R间期差值>50ms的百分数,通过形态滤波得到三组心率变异性参数的趋势线;判断在所述无体动区域内的所述心率变异性参数的趋势线数值是否超过对应的阈值,若有两组或三组心率变异性参数的趋势线数值超过对应的阈值,则将所述无体动区域识别为觉醒期,否则识别为非觉醒期。
通过引入呼吸率方差、呼吸率能量及对呼吸原始信号动态时间规整三组连续呼吸率参数及低频与高频能量比、变异系数及相邻两个R-R间期差值>50ms的百分数三组心率变异性参数进行判断识别,能够在深度结合本案睡眠分期监控方法的基础之上,有效针对觉醒期的呼吸与心率变异性的特点,依靠体动数据实现对觉醒期的准确识别。
进一步的,由所述差分量化值DI确定快速眼动期的起止时间坐标,识别出快速眼动期,可包括以下步骤:
如果DI(x)=1并且DI(x-1)=0,记录该点为起始坐标(Opos(y));如果DI(x)=1并且DI(x+1)=0时,记录该点为结束坐标(Epos(y));如果DI(x)=1且x=1,记录该点坐标为起始坐标(Opos(y));如果DI(x)=1且x为最大值,记录该点坐标为结束坐标(Epos(y));其中,变量x表示所述连续心率的数据在差分量化处理过程的运算次数;
记[Opos(y),Epos(y)]为1个记录段,对记录段进行条件判定,将符合条件的相邻两个记录段合并成一个记录段,并且标记为1个快速眼动期的时间段;
完成对单个的快速眼动期的时间段识别后,根据时间间隔对各个快速眼动期的时间段进行合并处理,完成快速眼动期的识别。
通过以上步骤,本案能够将信号特征上零碎的快速眼动期的片段还原成完整的快速眼动期。
进一步的,基于所述觉醒期及快速眼动期的识别结果,得到非快速眼动期,可包括以下步骤:
将所述觉醒期及快速眼动期以外的区域识别为非快速眼动期;在所述非快速眼动期内根据所述连续心率的方差、呼吸率的方差,结合所述体动趋势线的波动情况,提取所述非快速眼动期内心率平缓且处于较低值、呼吸稳定、无体动的区域并识别为深睡期,将所述深睡区以外的所述非快速眼动期的区域识别为浅睡期。
通过以上步骤,将连续心率的方差、呼吸率的方差引入所述非快速眼动期的具体判断识别中,能够在深度结合本案睡眠分期监控方法的基础之上,有效针对深睡期的呼吸与心率的特点,依靠体动数据实现对深睡期的准确识别,进一步对所述非快速眼动期进行细致的识别。
在一种实施例中,将所述觉醒期、快速眼动期、非快速眼动期整合为完整的睡眠数据,可包括以下步骤:
提取所述觉醒期与快速眼动期的重叠部分;
对所述重叠部分的体征参数进行加权计算,根据加权计算的结果将重叠部分重新识别为觉醒期或快速眼动期;
将所述深睡期、浅睡期及调整后的觉醒期、快速眼动期整合为完整的睡眠数据。
由于本案对所述觉醒期与快速眼动期的识别为平行识别,而所述觉醒期与快速眼动期的信号特征具有一定的相似度,对两个睡眠周期的识别结果可能存在重叠的部分;对所述重叠部分的体征参数进行加权计算,能够更细致地将二者进行区分识别,提高睡眠分期监控的准确性。
进一步的,对所述重叠部分的体征参数进行加权计算,根据加权计算的结果将重叠部分重新识别为觉醒期或快速眼动期,包括以下步骤:
获取各项体征参数在快速眼动期和觉醒期的大数据分布情况p0(a)与p1(a),其中a表示当前体征参数;
根据p0(a)与p1(a)计算出各项体征参数对于快速眼动期和觉醒期的识别的信息熵H0(a):
H0(a)=p0(a)log_2[1/p1(a)]+p1(a)log_2[1/p0(a)]
以C=1/H0(a)作为该所述体征参数判断快速眼动期和觉醒期的决策树的权重因子;
将所述重叠部分的各项体征参数进行编码code:当所述体征参数对应的p0(a)-p1(a)>0时,则code为1,否则code为-1
对所述重叠部分的各项体征参数进行加权计算:
Result=sum(C*code)
若Result>0,则将所述重叠部分识别为快速眼动期,若Result<0,则将所述重叠部分识别为觉醒期。
通过以上步骤,以信息熵模型的方式进行加权计算并对所述觉醒期与快速眼动期的重叠部分进行判断,能够更加准确细致地实现对睡眠识别结果的修正与优化,提升高睡眠分期监控的准确性。
进一步的,利用测试对象的个性化数据的训练模型,提高将重叠部分重新识别为觉醒期或快速眼动期的准确度。
通过以上改进,当个体化数据量不断增加,本案对个体的体征参数的特征有利区间的清晰度会不断增强,通过训练模型,对个体化睡眠分期监控的修正准确度会进一步提高。
本发明还提供一种睡眠分期监控***,包括:
体征参数采集处理模块,用于获取测试者的体征参数,所述体征参数包括体动数据、连续呼吸率、连续心率及心率变异性;
觉醒期识别模块,用于以滑动时间窗的方式遍历所述体动数据得到无体动区域及反映体动频率与体动持续时间的体动数据序列,叠加运用形态滤波对所述体动数据序列进行开运算和闭运算得到的信号获得体动趋势线;根据所述体动趋势线的波动情况,提取体动信号趋势中符合觉醒期特征的待定区域,结合连续呼吸率及连续心率的数据变化进行判断,从所述待定区域及所述无体动区域中识别出觉醒期;
快速眼动期识别模块,用于对所述连续心率的数据进行等距量化及差分量化处理,获得所述连续心率的的差分量化值DI,由所述差分量化值DI确定快速眼动期的起止时间坐标,从而识别出快速眼动期;
非快速眼动期识别模块,用于基于所述觉醒期及快速眼动期的识别结果,得到非快速眼动期;
睡眠数据整合模块,用于将所述觉醒期、快速眼动期、非快速眼动期整合为完整的睡眠数据。
本发明还提供一种储存介质,其上储存有计算机程序,所述计算机程序被处理器执行时实现前述睡眠分期监控方法的步骤。
本发明还提供一种计算机设备,其特征在于:包括储存介质、处理器以及储存在所述储存介质中并可被所述处理器执行的计算机程序,所述计算机程序被处理器执行时实现前述的睡眠分期监控方法的步骤。
附图说明
图1是本发明实施例的睡眠分期监控方法的流程图;
图2是本发明实施例的步骤S103的流程图;
图3是本发明实施例的步骤S104识别出快速眼动期的流程图;
图4是本发明实施例的步骤S105的流程图;
图5是本发明实施例的步骤S106的流程图;
图6是本发明实施例的步骤S1062的流程图;
图7是本发明的睡眠分期监控***示意图。
具体实施方式
请参阅图1,一种睡眠分期监控方法,包括以下步骤:
S101,获取测试者的体征参数,所述体征参数包括体动数据、连续呼吸率、连续心率及心率变异性;
S102,以滑动时间窗的方式遍历所述体动数据得到无体动区域及反映体动频率与体动持续时间的体动数据序列,叠加运用形态滤波对所述体动数据序列进行开运算和闭运算得到的信号获得体动趋势线;
S103,根据所述体动趋势线的波动情况,提取体动信号趋势中符合觉醒期特征的待定区域,结合连续呼吸率及连续心率的数据变化进行判断,从所述待定区域及所述无体动区域中识别出觉醒期;
S104,对所述连续心率的数据进行等距量化及差分量化处理,获得所述连续心率的的差分量化值DI,由所述差分量化值DI确定快速眼动期的起止时间坐标,识别出快速眼动期;
S105,基于所述觉醒期及快速眼动期的识别结果,得到非快速眼动期;
S106,将所述觉醒期、快速眼动期、非快速眼动期整合为完整的睡眠数据。
相较于现有技术,本发明的一种睡眠分期监控方法,以包括连续心率、呼吸率及体动等多维生命体征参数作为识别依据进行睡眠分期监控,实现对觉醒期、快速眼动期、非快速眼动期的精准识别。
其中,获取测试者的体征参数的环节上,本实施例可利用放置于卧床枕头正下方的被动传感装置,收集体震信号,可以实现针对心冲击图、心搏间期、呼吸、体动等时间域混叠信号的采集。在静息或睡眠过程中,人体产生的体震信号是包含:心博、呼吸、及其他身体机械运动的综合信号。基于作用力与反作用力原理,当这些机械运动发生时会使与人体接触的支撑物体的受力状态发生变化。在睡眠或静息时,枕头为头部支撑物,接收经脊椎轴和身体组织传导的体震信号。借助带通滤波、限波、形态滤波、小波变换及盲信号分离等多维信号处理方法,实现上述信号在时间、频率维度上的精准、有效分离,最终获得所述体征信号。以这种方式获得所述体征信号,其中涉及的采集设备更加简单可靠,用户体验更好,大幅减少了采集过程对测试者睡眠的影响,保证了监控效果准确度。
在一种可选的实施例中,请参阅图2,步骤S103可包括以下步骤:
S1031,识别所述体动趋势线的波峰区域,判断对所述波峰区域的峰值是否超过对应的阈值,并据此提取体动信号趋势中特征为体动持续时间长的大体动密集区域和特征为体动持续时间短但一段时间内体动频繁的小体动密集区域;将所述大体动密集区域直接识别为觉醒期;
S1032,由所述连续呼吸率获得的呼吸率方差、呼吸率能量及对呼吸原始信号动态时间规整,通过形态滤波得到三组连续呼吸率参数的趋势线,判断所述连续呼吸率参数的趋势线在所述小体动密集区域内是否存在波峰,若有两组或三组连续呼吸率参数的趋势线在小体动密集区域内存在波峰,则将所述小体动密集区域识别为觉醒期,否则识别为非觉醒期;
S1033,由所述心率变异性,基于窦性R-R间期的识别,计算出低频与高频能量比、变异系数及相邻两个R-R间期差值>50ms的百分数,通过形态滤波得到三组心率变异性参数的趋势线;判断在所述无体动区域内的所述心率变异性参数的趋势线数值是否超过对应的阈值,若有两组或三组心率变异性参数的趋势线数值超过对应的阈值,则将所述无体动区域识别为觉醒期,否则识别为非觉醒期。
通过引入呼吸率方差、呼吸率能量及对呼吸原始信号动态时间规整三组连续呼吸率参数及低频与高频能量比、变异系数及相邻两个R-R间期差值>50ms的百分数三组心率变异性参数进行判断识别,能够在深度结合本案睡眠分期监控方法的基础之上,有效针对觉醒期的呼吸与心率变异性的特点,依靠体动数据实现对觉醒期的准确识别。
由于伴随着有体动行为的觉醒期W分为三种情况:W1:体动持续时间短但一段时间内体动频繁;W2:体动持续时间长;W3:W1与W2并存;觉醒期W还包括无体动行为的W4,所以在步骤S102中,涉及对体动的持续时间长短及频率进行转化,作为一种可选的实施例,具体的:
对测试者的体动行为,每1s记录一次,每次记录生成一个体动标志;通过建立长度为10s的滑动时间窗,统计每个10s时间窗内的体动标志个数,体动标志个数为0,则定义为无体动区域;体动标志个数超过5,定义为大体动,否则定义为小体动;以滑动时间窗的方式遍历所述体动数据,得到一组记录大体动与小体动的序列record_10s;
基于序列record_10s建立长度为2min的滑动时间窗,统计每个2min时间窗内的大体动与小体动个数之和得到序列record_2min-1,统计每个2min时间窗内的大体动的个数得到序列record_2min-2;
运用形态滤波对record_2min-1分别进行开运算和闭运算,得到record_2min-1保留波峰值与保留波谷值的两路信号并叠加后得到record_2min-1的趋势线line_1;
运用形态滤波对record_2min-2分别进行开运算和闭运算,得到record_2min-2保留波峰值与保留波谷值的两路信号并叠加后得到record_2min-2的趋势线line_2;
得到趋势线line_1、趋势线line_2后,在所述步骤S103中,作为一种可选的实施例,具体的:
识别出line_1数值上升的峰,判断峰值是否超过阈值α,若超过则记所述line_1数值上升的峰所在区域为体动密集区域,若不存在超过阈值α的line_1数值上升的峰则该夜睡眠无觉醒期;
在所述体动密集区域内对line_2进行识别,若识别到line_2数值上升的峰,则所述体动密集区域被记为觉醒期(W2、W3);
若没有识别到line_2数值上升的峰,则所述体动密集区域被记为小体动密集区域,根据人体在觉醒期会出现呼吸紊乱,造成呼吸信号剧烈波动的特点,利用连续呼吸率对所述小体动密集区域进行判断识别;由所述连续呼吸率获得的呼吸率方差、呼吸率能量及对呼吸原始信号动态时间规整,通过形态滤波得到三组连续呼吸率参数的趋势线,其中,
在呼吸率方差上,对连续呼吸率信号建立滑动时间窗,对时间窗内的数据求方差,遍历整夜的数据,记录出呼吸方差序列,再运用形态滤波得出趋势线
在呼吸率能量上,首先呼吸率信号进行上下包络提取,得出上包络Breath_S与下包络Breath_X结合上下包络取一个固定时间窗求能量:
∫(Breath_S-Breath_X)^2
然后建立滑动时间窗遍历整夜数据,记录出一组呼吸能量数据,再次运用形态滤波得出趋势线。
在呼吸原始信号动态时间规整上,以有10个峰的标准的呼吸信号波形为模板,利用该模板对原始信号为对象进行动态时间规整,记录下最终的动态时间规整结果值,遍历整夜数据记录出一组数据,再次运用形态滤波得出趋势。
判断所述连续呼吸率参数的趋势线在所述小体动密集区域内是否存在波峰,若有两组或三组连续呼吸率参数的趋势线在小体动密集区域内存在波峰,则将所述小体动密集区域识别为觉醒期(W1),否则识别为非觉醒期,以此对所述小体动密集区域进行逐一识别。
而对于无体动区域,在根据人体在觉醒期心率变化的特点,由所述心率变异性,基于窦性R-R间期的识别,计算出低频与高频能量比、变异系数及相邻两个R-R间期差值>50ms的百分数,通过形态滤波得到三组心率变异性参数的趋势线;其中,
低频与高频能量比(LF/HF)代表交感-迷走神经张力的平衡状态,通常认为,HF是监测心脏迷走神经调制活动水平的定量标准,LF随着交感神经活动的增强而增加,LF/HF则可以作为评价心脏迷走-交感神经均衡性的定量指标;其中高频带(HF):0.15~0.4Hz,反映副交感神经的张力;低频带(LF):0.04~0.09Hz,反映交感和副交感神经的共同作用,但以前者为主;
相邻两个R-R间期差值>50ms的百分数(PNN50)指24h内相邻两个窦性R-R间期差值>50ms的个数所占的百分率,正常值为1%~12%,<0.75%为异常;
变异系数(Coefficient of Variance,CV):标准差系数,即为标准差与均值的比率,它是一个相对变异系数;为了消除R-R间期在个体化上的差异,不直接采用标准差来表征数据的变异程度,而采用CV值。
通过判断在所述无体动区域内的所述心率变异性参数的趋势线数值是否超过对应的阈值,若有两组或三组心率变异性参数的趋势线数值超过对应的阈值,则将所述无体动区域识别为觉醒期(W4),否则识别为非觉醒期,以此对所述无体动区域进行逐一识别。
在一种可选的实施例中,请参阅图3,由所述差分量化值DI确定快速眼动期的起止时间坐标,识别出快速眼动期,可包括以下步骤:
S1044,如果DI(x)=1并且DI(x-1)=0,记录该点为起始坐标(Opos(y));如果DI(x)=1并且DI(x+1)=0时,记录该点为结束坐标(Epos(y));如果DI(x)=1且x=1,记录该点坐标为起始坐标(Opos(y));如果DI(x)=1且x为最大值,记录该点坐标为结束坐标(Epos(y));其中,变量x表示所述连续心率的数据在差分量化处理过程的运算次数;
S1045,记[Opos(y),Epos(y)]为1个记录段,对记录段进行条件判定,将符合条件的相邻两个记录段合并成一个记录段,并且标记为1个快速眼动期的时间段;
S1046,完成对单个的快速眼动期的时间段识别后,根据时间间隔对各个快速眼动期的时间段进行合并处理,完成快速眼动期的识别。
通过以上步骤,本案能够将信号特征上零碎的快速眼动期的片段还原成完整的快速眼动期。
而由于体征参数在采集过程中,可能由于测试者脱离监控环境而造成数据缺失,因此,在步骤S104中可根据实际需要先对连续心率的数据进行如下预处理:
遍历整份数据,找到数据缺失的数据段,并且定位缺失数据段起始地址跟结束地址;舍弃缺失段起始地址之前以及缺失段结束地址之后60s内数据,并将舍去的数据段也当作缺失数据段处理,如果出现如下特殊情况则做特殊处理:两段相邻的缺失段的间隔小于120s,则将位于该间隔内的数据全部舍弃,将两个缺失段合并成一个缺失段;根据缺失段之前的数据以及缺失段之后的数据进行线性插值补全。
在步骤S104中,作为一种可选的实施例,具体的:
在对心率等距量化处理上:
对所述连续心率的数据进行经验模态分解,对从最低频开始的5层分解信号进行叠加,得到心率经过分解后的趋势HR_Trend,记HR_Trend中最低频部分为Trend0,对Trend0的最大值与最小值相减得到Value:
Value=max(Trend0)-min(Trend0)
对HR_Trend进行量化处理,当Value<阈值时,取HR_Trend的全部数据中的众数作为基线Line;当Value>=阈值,取HR_Trend的前65%数据中的众数作为基线Line1,取HR_Trend后65%的数据中的众数作为基线Line2;
以1作为一个最小的量化单位,以基线Line为基准,将HR_Trend之中所有小于等于基线Line的数据值量化成值为0的第0阶,HR_Trend中位于[Line,Line+1]区间内的所有值量化成第1阶(值为1)……以此类推,量化到HR_Trend的最大值为止,由此得到量化趋势Trend;
遍历Trend,找到所有上升沿以及下降沿的位置;以位置位于为首位的上升/下降沿作为开始向后遍历,当遇到下降/上升沿之时,记录位于上一次记录之后共有几个上升/下降沿以及该记录点位置,记录点记录方式为:上升沿+跳变沿个数或者下降沿-跳变沿个数;从首位开始的记录时,在遇到与之前相反的跳变沿之后,直接按照记录方式记录跳变沿个数;在结尾部分的记录时,直接按照记录点记录方式在最后一个跳变沿以及最后跳变沿之前的上一个记录点之间的跳变沿个数作为最后一个记录点;
从第一个记录点开始,按照两个记录点为一组的方式,计算两个记录点之间的绝对值之和:
Record(i)=|记录点(2*i-1)|+|记录点(2*i)|
根据Record的值对Trend进行处理:若Record(i)<=4,将Trend位于[记录点位置(2*i-2),记录点位置(2*i)]区间内的所有值置为坐标位于(记录点位置(2*i-2)-1)的量化值;
在对心率进行差分量化上:
创建时间长度为180s的时间窗,将Trend分为n个的时间窗,每个时间窗相交叠50%向前滑动,计算时间窗内心率趋势的平均值,即第i个时间窗Trend的平均值为Ra(i),对相邻时间窗内的平均值进行差分处理:
Rb(x)=Ra(i+1)-Ra(i)
如果Rb(x)>0,则将差分量化值(DI(x))置1,同时将差分量化符号值(Sign(x))置1;如果Rb(x)<0,则将差分量化值(DI(x))置1,同时将差分量化符号值(Sign(x))置-1;如果Rb(x)=0,则将差分量化值(DI(x))置0,同时将差分量化符号值(Sign(x))置0;
单个的快速眼动期的时间段识别:
遍历DI,根据DI的数值确定心率的变化情况并确定快速眼动期期的起止坐标:如果DI(x)=1并且DI(x-1)=0,记录该点为起始坐标(Opos(y));如果DI(x)=1并且DI(x+1)=0时,记录该点为结束坐标(Epos(y));如果DI(x)=1但是x=1,直接记录该点坐标为起始坐标(Opos(y));如果DI(x)=1但是x为最后一个坐标,直接记录该店坐标为结束坐标(Epos(y));
将相邻的两个记录段(即[Opos(y),Epos(y)]为1个记录段),进行长度len计算:
len=Epos(y+1)–Opos(y))
求DI数值为1的时间段在此时间区域的占比P:
P=[Epos(y+1)-Opos(y+1)+Epos(y)-Opos(y)]/len*100%
对记录段进行条件判定:若两个记录段同时符合P>=阈值、两个记录段之间隔间时间小于或等于15分钟、Len>=15分钟、Opos(y)的坐标落在Trend前3%的坐标以外的条件,则将这两个记录段合并成一个记录段,并且标记为1个快速眼动期的时间段;
而由于快速眼动期的心率特征是呈剧烈波动上升的特点,但在对连续心率进行量化处理时,若心率剧烈下降也会引起快速眼动期的误判,因此,在一个可选实施例中,可对快速眼动期的识别结果进行消误,具体的:
在快速眼动期期时间段内遍历差分量化符号Sign,找出心率连续下降的区间,即出现连续的Sign(x)<0的区间,并将该区间标记为-1;同理找出心率连续上升的区间,并将该区间标记为1;
遍历标记区间,以相邻的两个标记区间为一个单位,对相邻两区间进行判断选择处理方式:
a)该单位为(1,1),不做处理,向后滑动一个标记区间。
b)该单位为(1,-1),回到sign(x)定位该心率上升区间的结束时间坐标以及该心率下降区间的起始时间坐标,计算其差(下降区间的起始时间坐标-上升区间的结束时间坐标):若该时间间隔>=20分钟,说明该部分存在误判的可能,则将该单位修改成(99,-1);若该时间间隔<20分钟,不做处理,向后滑动一个标记区间。
c)该单位为(-1,1),向前回溯一个标记区间,根据前一个标记区间值进行处理:若前一个标记区间值为(1,-1),根据b)情况进行处理;前一个标记区间值为(-1,-1),,则将该(-1,-1)单位修改为(-1,99);前一个标记区间值为(99,-1),则将该(99,-1)单位修改为(99,99);
以相邻的两个标记区间为一个单位,重新遍历标记单位,寻找单位值为(-1,-1),(99,-1)的单位,将这些单位的值同意修改成(99,99);
将标记为99的区间提出来,则将该段心率下降时间段区间从标记的快速眼动期的时间段中舍去。
完成对单个的快速眼动期的时间段识别后,根据时间间隔对各个快速眼动期的时间段进行合并处理,具体的:
提取所有单个快速眼动期时间段的起始跟结束时间坐标,把前一个快速眼动期时间段的起始时间点与后一个快速眼动期时间段的结束时间点做差,即:
Zlen=Epos(x+1)-Opos(x)
将前一个快速眼动期时间段的结束坐标同后一个的快速眼动期时间段的结束坐标做差,得到两个快速眼动期之间的间隔时间:
Interval=Opos(x+1)-Epos(x)
对上述值进行判断:若Zlen<=60分钟且Interval<=18分钟,将两个快速眼动期时间段合并成一个快速眼动期模糊期,同时x向后移动一个单位,同时将该快速眼动期模糊期暂时当作单个快速眼动期时间段同后一个快速眼动期时间段进行处理;以此类推重复判断;否则,则直接将x往后移动一个单位。
关于快速眼动期模糊期的修正:
若合并后得到的快速眼动期模糊期的原始数据满足需要分段处理的条件,则需要将快速眼动期模糊期再进行一次处理:定义由基线Line1后续处理出来的快速眼动期模糊期为快速眼动期1,由基线Line2后续处理出来的快速眼动期模糊期为快速眼动期2;
对于快速眼动期1跟快速眼动期2重叠部分的快速眼动期模糊期,取并集;
对于快速眼动期1跟快速眼动期2没有重叠部分,则以快速眼动期1为主体,取其快速眼动期2对于快速眼动期1的补集,同时重新进行一次快速眼动期模糊期合并。
再次基于快速眼动期心率剧烈波动且上升的原则,对快速眼动期模糊期区间进行二次修正:将原始心率信号按照一个快速眼动期区间的数据为一个独立单位,在每一个独立单位内,建立300s的时间窗,按照交叠50%的方式对于原始心率求方差。
然后对快速眼动期模糊期进行时间长度识别,识别并记录出时间长度大于15分钟的快速眼动期模糊期。
进一步地,在时间长度大于15分钟的快速眼动期模糊期基于300s时间窗求出的方差值分别进行从起始到终止的遍历,当方差值大于1.2时,停止遍历并将该快速眼动期模糊期已被遍历的时间窗去除;之后再进行一次反方向,即从终止到起始的放向遍历,进行同样的处理。
在一种可选的实施例中,请参阅图4,在步骤S105中,可包括以下步骤:
S1051,将所述觉醒期及快速眼动期以外的区域识别为非快速眼动期;
S1052,在所述非快速眼动期内根据所述连续心率的方差、呼吸率的方差,结合所述体动趋势线的波动情况,提取所述非快速眼动期内心率平缓且处于较低值、呼吸稳定、无体动的区域并识别为深睡期,将所述深睡区以外的所述非快速眼动期的区域识别为浅睡期。
通过以上步骤,将连续心率的方差、呼吸率的方差引入所述非快速眼动期的具体判断识别中,能够在深度结合本案睡眠分期监控方法的基础之上,有效针对深睡期的呼吸与心率的特点,依靠体动数据实现对深睡期的准确识别,进一步对所述非快速眼动期进行细致的识别。
对于以上步骤,作为一种可选的实施例中,具体的,通过设置滑动时间窗,计算时间窗内连续心率的方差,在非快速眼动期中识别出心率平缓的区域S,依据遍历所述体动数据获得的区分结果,在S中识别出无体动区域S_1;
设置滑动时间窗,计算时间窗内连续呼吸率的方差,遍历单个S从起始到终止的连续呼吸率的方差值,当遍历到大于阈值的方差值时,停止遍历并提取S已被遍历的时间窗;进行一次反方向的遍历,当遍历到大于阈值的方差值时,停止遍历并提取S已被反方向遍历的时间窗,将S在两个方向提取到的时间窗组成得到序列Ⅰ;对序列Ⅰ进行前后差分处理,得到序列Ⅱ;
对序列Ⅱ从起始到终止的遍历,当遍历到的当前数值相比上一个数值具有数量级的差距时,停止遍历并提取序列Ⅱ已被遍历的时间窗;进行一次反方向的遍历,当遍历到的当前数值相比上一个数值具有数量级的差距时,停止遍历并提取序列Ⅱ已被反方向遍历的时间窗,将序列Ⅱ在两个方向提取到的时间窗组成区域S_2;
将S_1与S_2的交集区域识别为深睡区,则所述深睡区以外的非快速眼动期为浅睡区。
在一种可选的实施例中,请参阅图5,在步骤106中,可包括以下步骤:
S1061,提取所述觉醒期与快速眼动期的重叠部分;
S1062,对所述重叠部分的体征参数进行加权计算,根据加权计算的结果将重叠部分重新识别为觉醒期或快速眼动期;
S1063,将所述深睡期、浅睡期及调整后的觉醒期、快速眼动期整合为完整的睡眠数据。
由于本案对所述觉醒期与快速眼动期的识别为平行识别,而所述觉醒期与快速眼动期的信号特征具有一定的相似度,对两个睡眠周期的识别结果可能存在重叠的部分;对所述重叠部分的体征参数进行加权计算,能够更细致地将二者进行区分识别,提高睡眠分期监控的准确性。
进一步的,请参阅图6,在步骤S1062中,包括以下步骤:
S1062a,获取各项体征参数在快速眼动期和觉醒期的大数据分布情况p0(a)与p1(a),其中a表示当前体征参数;
根据p0(a)与p1(a)计算出各项体征参数对于快速眼动期和觉醒期的识别的信息熵H0(a):
H0(a)=p0(a)log_2[1/p1(a)]+p1(a)log_2[1/p0(a)]
以C=1/H0(a)作为该所述体征参数判断快速眼动期和觉醒期的决策树的权重因子;
S1062b,将所述重叠部分的各项体征参数进行编码code:当所述体征参数对应的p0(a)-p1(a)>0时,则code为1,否则code为-1;
S1062c,对所述重叠部分的各项体征参数进行加权计算:
Result=sum(C*code)
若Result>0,则将所述重叠部分识别为快速眼动期,若Result<0,则将所述重叠部分识别为觉醒期。
其中,参与到加权计算的体征参数为单数,可包括平均心率、平均呼吸率、连续心率方差、连续呼吸率方差、(LF/HF)、PNN50以及CV七个参数。
通过以上步骤,以信息熵模型的方式进行加权计算并对所述觉醒期与快速眼动期的重叠部分进行判断,能够更加准确细致地实现对睡眠识别结果的修正与优化,提升高睡眠分期监控的准确性。
进一步的,利用测试对象的个性化数据的训练模型,提高将重叠部分重新识别为觉醒期或快速眼动期的准确度。
通过以上改进,当个体化数据量不断增加,本案对个体的体征参数的特征有利区间的清晰度会不断增强,通过训练模型,对个体化睡眠分期监控的修正准确度会进一步提高。
本发明提供的一种与本发明实施例所述的睡眠分期监控方法对应的睡眠分期监控***,请参阅图7,包括:
体征参数采集处理模块1,用于获取测试者的体征参数,所述体征参数包括体动数据、连续呼吸率、连续心率及心率变异性;
觉醒期识别模块2,用于以滑动时间窗的方式遍历所述体动数据得到无体动区域及反映体动频率与体动持续时间的体动数据序列,叠加运用形态滤波对所述体动数据序列进行开运算和闭运算得到的信号获得体动趋势线;根据所述体动趋势线的波动情况,提取体动信号趋势中符合觉醒期特征的待定区域,结合连续呼吸率及连续心率的数据变化进行判断,从所述待定区域及所述无体动区域中识别出觉醒期;
快速眼动期识别模块3,用于对所述连续心率的数据进行等距量化及差分量化处理,获得所述连续心率的的差分量化值DI,由所述差分量化值DI确定快速眼动期的起止时间坐标,从而识别出快速眼动期;
非快速眼动期识别模块4,用于基于所述觉醒期及快速眼动期的识别结果,得到非快速眼动期;
睡眠数据整合模块5,用于将所述觉醒期、快速眼动期、非快速眼动期整合为完整的睡眠数据。
本发明提供的一种储存介质,其上储存有计算机程序,所述计算机程序被处理器执行时实现本发明实施例所述的睡眠分期监控方法的步骤。
本发明提供的一种计算机设备,其特征在于:包括储存介质、处理器以及储存在所述储存介质中并可被所述处理器执行的计算机程序,所述计算机程序被处理器执行时实现本发明实施例所述的睡眠分期监控方法的步骤。
本发明并不局限于上述实施方式,如果对本发明的各种改动或变形不脱离本发明的精神和范围,倘若这些改动和变形属于本发明的权利要求和等同技术范围之内,则本发明也意图包括这些改动和变形。