睡眠分期matlab代码,非接触式睡眠分期方法与流程

cd2167d2212b6a4cd40f49ba8bcd7021.gif

本发明属于雷达监测技术领域,特别是一种非接触式睡眠分期方法。

背景技术:

传统的呼吸睡眠监护系统主要依靠贴附于人体的接触式传感器、电极进行测量,从而实时获得人体的生命参数信号,这些方法都需要直接或间接地接触人体,这种接触式测量大大制约了其应用范围,并且电极的接触也对生命体特征信息造成一定的影响,影响其检测的准确度,并给生命体特征信息的处理带来压力。

现有的呼吸睡眠监护系统需要电极或传感器接触生命体,无法在较远的距离内探测到生命体的生命信号(呼吸、心率等),对于有睡眠呼吸暂停的病人、刚出生的婴儿、某些有睡眠障碍的人,无法监测他们的睡眠状态以对可能出现的突发状况作出预判。

技术实现要素:

本发明的目的在于提供一种安全性高、准确性强的非接触式睡眠分期方法,以方便医务人员根据病人的实际睡眠情况及时采取治疗措施。

实现本发明目的的技术解决方案为:一种非接触式睡眠分期方法,步骤如下:

步骤1,将雷达回波信号进行滤波,分别得到呼吸信号和心跳信号;

步骤2,根据呼吸信号得到每分钟呼吸次数即RPM、每分钟呼吸次数的方差即RPM Variance,根据心跳信号得到每分钟心跳次数即BPM、每分钟心跳次数的方差即BPM Variance,根据呼吸信号得到体动信号;

步骤3,将步骤2所得的RPM、RPM Variance,BPM、BPM Variance、体动信号分别进行聚类分析;

步骤4,根据声音信号、视频信号、以及步骤3聚类分析所得信号对睡眠状态进行划分,得到睡眠状态的划分结果。

进一步地,步骤1所述将雷达回波信号进行滤波,分别得到呼吸信号和心跳信号,具体如下:

(1.1)运用带通滤波器对雷达回波信号进行滤波,得到呼吸信号;

(1.2)在原始雷达回波信号中,剔除所得呼吸信号,得到心跳信号。

进一步地,步骤2所述根据呼吸信号得到每分钟呼吸次数即RPM、每分钟呼吸次数的方差即RPM Variance,根据心跳信号得到每分钟心跳次数即BPM、每分钟心跳次数的方差即BPM Variance,根据呼吸信号得到体动信号,具体如下:

(2.1)根据呼吸信号得到每分钟呼吸次数即RPM、每分钟呼吸次数的方差即RPM Variance:将呼吸信号的波谷点全部用星号标注出来,求波谷数得到RPM;利用所得的RPM先求出平均值,再对RPM求方差得出RPM Variance;

(2.2)根据心跳信号得到每分钟心跳次数即BPM、每分钟心跳次数的方差即BPM Variance:将心跳信号的波谷点全部用星号标注出来,求波谷数得到BPM;利用所得的BPM先求出平均值,再对BPM求方差得出BPM Variance;

(2.3)根据呼吸信号得到体动信号:首先将高于呼吸信号峰值两倍的数据点储存下来记为Movement,再计算每分钟高于呼吸峰值两倍的数据点个数,记为Movement_count,当Movement_count大于预设的阈值时,认为该分钟内发生了体动,将Movement中幅值最大的信号点储存下来得到体动信号。

进一步地,步骤3所述将步骤2所得的RPM、RPM Variance,BPM、BPM Variance、体动信号分别进行聚类分析,其中聚类分析具体如下:

(3.1)定义信号的数据点集合X={x1,x2...xn},聚类中心的集合C={c1,c2,...,cn},定义阈值ε的范围为10-3≤ε≤10-5;

(3.2)随机初始化聚类中心集合C;

(3.3)计算目标函数值k表示数据分类个数,p≥2表示模糊指数,l表示此次迭代次序,j=1,2,…,k,i=1,2,…,n;

(3.4)计算第i个数据点xi到第j个聚类中心cj的隶属度∪(cj/xi):

(3.5)计算每个数据点的权重w(xi):

(3.6)根据数据点的隶属度∪(cj/xi)和权重w(xi)更新聚类中心cj,公式如下:

(3.7)如果||KHMl+1-KHMl||<ε,则计算停止,输出优化后的信号;否则转回步骤(3.3)。

进一步地,步骤4所述根据声音信号、视频信号、以及步骤3聚类分析所得信号对睡眠状态进行划分,得到睡眠状态的划分结果,具体如下:

(4.1)固定时间内,RPM、BPM小于等于均值、波动不超过预定次数且该段时间内没有体动发生,定义为深度睡眠;

(4.2)固定时间内,RPM、BPM大于等于均值,并且RPM Variance、BPM Variance大于峰值的一半,该段时间定义为REM睡眠;剩下的状态定义为浅度睡眠;

(4.3)根据声音信号、视频信号,检验雷达检测到的体动处是否真实发生了体动。

进一步地,步骤(2.1)所述将呼吸信号的波谷点全部用星号标注出来,求波谷数得到RPM,其中波谷检测RPM时,将相邻的波谷时间小于平均呼吸周期一半的波谷舍去。

进一步地,步骤(2.2)所述将心跳信号的波谷点全部用星号标注出来,求波谷数得到BPM,其中波谷检测BPM时,将相邻的波谷时间小于平均心跳周期一半的波谷舍去。

本发明与现有技术相比,其显著优点在于:(1)融合雷达技术、生物医学工程技术于一体,不需要任何电极或传感器接触生命体,可在较远的距离内探测到生命体的生命信号;(2)对于有睡眠呼吸暂停的病人、刚出生的婴儿、某些有睡眠障碍的人,能够监测他们的睡眠状态以对突发状况作出预判;(3)具有高安全性、高准确性、小型化和智能化的优点,方便医务人员实时、连续掌握病人的状况,及时采取治疗措施。

附图说明

图1为本发明非接触式睡眠分期方法的流程图。

图2为本发明中呼吸波形图。

图3为本发明的心跳波形图。

图4为本发明的RPM的波形图。

图5为本发明的RPM Variance的波形图。

图6为本发明的BPM的波形图。

图7为本发明的BPM Variance的波形图。

图8为本发明的体动信号波形图。

图9为本发明的睡眠状态分期图。

图10为本发明的RPM、BPM、RPM Variance、BPM Variance、体动信号、睡眠状态分期图。

具体实施方式

下面结合附图对本发明作进一步详细描述。

本发明基于连续波生物雷达的非接触生命体特征信息监测系统融合雷达技术、生物医学工程技术于一体,不需要任何电极或传感器接触生命体,可在较远的距离内探测到生命体的生命信号(呼吸、心率等),对于有睡眠呼吸暂停的病人、刚出生的婴儿、某些有睡眠障碍的人,监测自己的睡眠状态有利于了解自己的身体状况,对可能出现的突发状况作出预判。

一种非接触式睡眠分期方法,步骤如下:

步骤1,将雷达回波信号进行滤波,分别得到呼吸信号和心跳信号;具体如下:

(1.1)运用带通滤波器对雷达回波信号进行滤波,得到呼吸信号,如图1所示。

(1.2)在原始雷达回波信号中,剔除所得呼吸信号,得到心跳信号,如图2所示。

步骤2,根据呼吸信号得到每分钟呼吸次数即RPM、每分钟呼吸次数的方差即RPM Variance,根据心跳信号得到每分钟心跳次数即BPM、每分钟心跳次数的方差即BPM Variance,根据呼吸信号得到体动信号,具体如下:

(2.1)根据呼吸信号得到每分钟呼吸次数即RPM、每分钟呼吸次数的方差即RPM Variance:将呼吸信号的波谷点全部用星号标注出来,求波谷数得到RPM;利用所得的RPM先求出平均值,再对RPM求方差得出RPM Variance;

步骤(2.1)所述将呼吸信号的波谷点全部用星号标注出来,求波谷数得到RPM,其中波谷检测RPM时,将相邻的波谷时间小于平均呼吸周期一半的波谷舍去。

(2.2)根据心跳信号得到每分钟心跳次数即BPM、每分钟心跳次数的方差即BPM Variance:将心跳信号的波谷点全部用星号标注出来,求波谷数得到BPM;利用所得的BPM先求出平均值,再对BPM求方差得出BPM Variance;

步骤(2.2)所述将心跳信号的波谷点全部用星号标注出来,求波谷数得到BPM,其中波谷检测BPM时,将相邻的波谷时间小于平均心跳周期一半的波谷舍去。

(2.3)根据呼吸信号得到体动信号:首先将高于呼吸信号峰值两倍的数据点储存下来记为Movement,再计算每分钟高于呼吸峰值两倍的数据点个数,记为Movement_count,当Movement_count大于预设的阈值时,认为该分钟内发生了体动,将Movement中幅值最大的信号点储存下来得到体动信号。

步骤3,将步骤2所得的RPM、RPM Variance,BPM、BPM Variance、体动信号分别进行聚类分析,其中聚类分析具体如下:

(3.1)定义信号的数据点集合X={x1,x2...xn},聚类中心的集合C={c1,c2,...,cn},定义阈值ε的范围为10-3≤ε≤10-5;

(3.2)随机初始化聚类中心集合C;

(3.3)计算目标函数值k表示数据分类个数,p≥2表示模糊指数,l表示此次迭代次序,j=1,2,…,k,i=1,2,…,n;

(3.4)计算第i个数据点xi到第j个聚类中心cj的隶属度∪(cj/xi):

(3.5)计算每个数据点的权重w(xi):

(3.6)根据数据点的隶属度∪(cj/xi)和权重w(xi)更新聚类中心cj,公式如下:

(3.7)如果||KHMl+1-KHMl||<ε,则计算停止,输出优化后的信号;否则转回步骤(3.3)。

步骤4,根据声音信号、视频信号、以及步骤3聚类分析所得信号对睡眠状态进行划分,得到睡眠状态的划分结果,具体如下:

(4.1)固定时间内,RPM、BPM小于等于均值、波动不超过预定次数且该段时间内没有体动发生,定义为深度睡眠;

(4.2)固定时间内,RPM、BPM大于等于均值,并且RPM Variance、BPM Variance大于峰值的一半,该段时间定义为REM睡眠;剩下的状态定义为浅度睡眠;

(4.3)根据声音信号、视频信号,检验雷达检测到的体动处是否真实发生了体动。

经过步骤(2.1),将呼吸信号的波谷点全部用星号标注出来,相邻的谷值时间差小于1.67s的谷值舍去,求波谷数得到RPM,得出图4,利用所得的RPM,先求出平均值,再对RPM求方差得出RPM Variance,得出图5。

经过步骤(2.2),将心跳信号的波谷点全部用星号标注出来,相邻的谷值时间差小于0.5s的谷值舍去,求波谷数得到BPM,如图6所示利用所得的BPM,先求出平均值,再对BPM求方差得出BPM Variance,如图7所示。

经过步骤(2.3),将高于呼吸峰值两倍的数据点储存下了记为Movement,再计算每分钟高于呼吸峰值两倍的数据点个数,记为Movement_count,当Movement_count大于一个阈值时,认为这分钟发生了体动,将Movement中幅值最大的信号点储存下来,得到体动信号,如图8所示。

经过步骤(4.1),在RPM、BPM小于等于均值,在一段时间内RPM、BPM波动不超过3次且这段时间内没有体动发生,得出深度睡眠期。

经过步骤(4.2),在RPM、BPM大于等于均值,而且RPM Variance、BPM Variance大于峰值的一半,得出睡眠的REM期,剩下的状态定义为浅度睡眠期。

经过步骤(4.3),利用视频和音频信号对体动信号进行检验,得到图9,睡眠状态分期图。图10为本发明的RPM、BPM、RPM Variance、BPM Variance、体动信号、睡眠状态分期图。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306136.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

叮咚!你有一份来自明源云的圣诞邀约

请查收,来自明源云的圣诞邀约~

java先进先出 循环队列,JavaScript队列、优先队列与循环队列

队列是一种遵从先进先出(FIFO)原则的有序集合队列在尾部添加新元素,从顶部移除元素队列的理解队列在我们生活中最常见的场景就是排队了队列这个名字也已经很通俗易懂了和栈很像,这不过队列是先入先出的数据结构队列的前面是队头队列的后面是队尾出队从队…

Abp小试牛刀之 图片上传

图片上传是很常见的功能,里面有些固定的操作也可以沉淀下来。本文记录使用Abp vNext做图片上传的姿势。目标上传图片----->预览图片----->确定保存支持集群部署实现思路:1. 上传图片要使用WebAPI特定媒体类型:multipart/form-data;2. 因…

.Net Conf 2020 之回顾

Intro上周 .NET Conf 在苏州成功举办了第二届活动,一年一度的 .NET 盛会又来了,今年大会依然有许多从外地过来参加的开发者们,也有很多讲师也是从外地赶过来为我们分享。虽然今年是疫情的一年,并没有影响 .NET Conf 参会者们的热情…

如何使用 C# 在异步代码中处理异常

异常处理是一种处理运行时错误的技术,而 异步编程 允许我们在处理资源密集型的业务逻辑时不需要在 Main 方法或者在 执行线程 中被阻塞,值得注意的是,异步方法和同步方法的异常处理机制是不一样的,本篇我们就来讨论下如何在异步方…

对 Redis 中的有序集合SortedSet的理解

本篇说一下Redis中的 有序集合类型,曾几何时,我们想把所有数据存到内存中的 数据结构 中,但为了多机器共享内存,不得不将这块内存包装成wcf单独部署,同时还要考虑怎么序列化,烦心事太多太多。。。后来才知道…

代码质量在「内卷时代」的重要性

这里是Z哥的个人公众号每周五11:45 按时送达当然了,也会时不时加个餐~我的第「173」篇原创敬上大家好,我是Z哥。提到代码质量,不知道你的脑海中浮现出的第一个词是什么?规范?可读性?…

.NET Core AWS S3云存储

【导读】最近有需要用到AWS S3云存储上传附件,这里对利用.NET或.NET Core在调用SDK APi需要注意的一点小问题做个记录,或许能对后续有用到的童鞋提供一点帮助Amazon Simple Storage Service (Amazon S3) 是一种对象存储服务,提供行业领先的可…

MiniProfiler,一个.NET简单但有效的微型分析器

背景MVC MiniProfiler是Stack Overflow团队设计的一款对ASP.NET MVC的性能分析的小程序。可以对一个页面本身,及该页面通过直接引用、Ajax、Iframe形式访问的其它页面进行监控,监控内容包括数据库内容,并可以显示数据库访问的SQL(支持EF、EF …

龙芯.NET正式发布 稳步推进生态建设

2020年12月19日,2020中国. NET开发者大会于苏州开幕。此次大会上,龙芯发布了龙芯.NET 3。龙芯.NET 3基于.NET Core 3.1,支持该版本具备的所有主要功能,包括GC、AOT等。CoreCLR、CoreFX、ASP.NET Core等库的测试通过情况与x64/arm6…

有温度的技术,改善上亿人的生活

06有温度的技术,改善上亿人的生活鱼小皮哥,现在的 APP 真是越来越难用了,功能多、操作复杂、广告更多。唉,可不是么,而且人们的生活已经离不开 APP 了!老百鱼小皮我爷爷最近的视力下降的很快,用…

Linux链接文件包括,Linux操作系统——系统各目录有什么作用、以及文件链接过程...

三、 Linux 系统目录结构/bin — 用来贮存用户命令。目录 /usr/bin 也被用来贮存用户命令。/sbin — 许多系统命令(例如 shutdown)的贮存位置。目录 /usr/sbin 中也包括了许多系统命令。/root — 根用户(超级用户)的主目录。/mnt — 该目录中通常包括系统引导后被挂载的文件系统…

刚转Java?那准备转回.NET5吧!

再过几天就2021年了,回首今年最大的变化就是.NET5的发布,终结了.NET Framework和.NET Core两个分支。虽然因为新冠疫情原因,原定于.NET5的部分功能被推迟到.NET6了,但.NET5是一个非常非常重要的版本,会载入史册的一个版…

在 xunit 测试项目中使用依赖注入

在 xunit 测试项目中使用依赖注入Intro之前写过几篇 xunit 依赖注入的文章,今天这篇文章将结合我在 .NET Conf 上的分享,更加系统的分享一下在测试中的应用案例。之所以想分享这个话题是因为我觉得在我们开发过程中测试是非常重要的一部分,高…

利用 C# 中的 FileSystemWatcher 制作一个文件夹监控小工具

利用 C# 中的 FileSystemWatcher 制作一个文件夹监控小工具独立观察员 2020 年 12 月 26 日前一段看到微信公众号 “码农读书” 上发了一篇文章《如何使用 C# 中的 FileSystemWatcher》(翻译自:https://www.infoworld.com/article/3185447/how-to-work-w…

u盘安全删除 linux,为什么要安全删除U盘

原标题:为什么要安全删除U盘移除闪存设备时会对电脑造成危害吗?我们为什么要安全的移除它们?历史上,操作系统将磁盘作为信任对象不需要突然改变状态。当读写文件时,操作系统不希望文件在读写的过程中突然消失。如果文件…

如何在 C# 中使用 投影(Projection)

投影(Projection) 是一种可以将查询结果进行 塑性 的一种操作,你可以使用 投影 将一个 object 转成仅包含你需要属性的新对象,这篇文章中,我们就一起看看如何使用 投影 功能。C# 中的投影 LINQ 集成查询中有两个支持投影的扩展方法&#xff0…

Linux语言写的高通滤波,高通滤波器c语言实现

描述高通滤波器,又称低截止滤波器、低阻滤波器,允许高于某一截频的频率通过,而大大衰减较低频率的一种滤波器。它去掉了信号中不必要的低频成分或者说去掉了低频干扰。高通滤波器是一种让某一频率以上的信号分量通过,而对该频率以…

在 WSL Ubuntu 上使用 .NET 进行跨平台开发新手入门

翻译自 haydenb 2020年6月3日的文章《Getting started with cross-platform development using .NET on Ubuntu on WSL》 [1].NET 是一个开源软件框架,用于在 Linux、Windows 和 macOS 上构建跨平台应用程序。WSL 上的 Ubuntu [2]允许您同时为 Ubuntu 和 Windows 构…

明源云·天际,地产⾏业的Salesforce Lightning Platform

源宝导读:2020年11月6日,明源云在CIO峰会上正式对外发布了“天际开放平台”,这是明源云凝聚其20多年行业经验打造的一款企业级PaaS平台。本文将介绍我们对企业级PaaS平台的行业思考,以及为加速泛地产生态链数字化转型而做的技术创…