睡眠分期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,一经查实,立即删除!

相关文章

self php语法,PHP代码审计之关于PHP_SELF的简单利用

这两天突然看到 https://blog.ripstech.com/2020/sql-injection-impresscms/,想着复现一下,记录一下学习过程。漏洞分析漏洞复现首先我们先下载安装一下这个 cms,然后直接访问:http://127.0.0.1:81/admin.php/modules/system and …

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

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

使用Select.HtmlToPdf 把html内容生成pdf文件

概述.NET的SelectPdf Html到Pdf转换器-社区版是.NET的SelectPdf库中提供的功能强大的html到pdf转换器的免费版本。转换器提供了许多强大的选项(将任何网页转换为pdf,将任何html字符串转换为pdf,html5 / css3 / javascript支持,页眉…

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

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

Abp小试牛刀之 图片上传

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

php 发邮件 500错误,使用PHP发送邮件出现这个错误:The following From address failed:xxxx@163.com...

使用了TP框架!以下是源码:namespace ApiController;use ThinkController;class EmailController extends Controller{public function test(){$msg pmail(493107977qq.com,午夜DJ,封装测试,hello world);echo $msg;}?php>return array(//配置项>配置值TMPL_PARSE_STRIN…

.Net Conf 2020 之回顾

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

php里面电话验证码,PHP的中问验证码

Class code{var $width 160; //图片的宽var $hight 40; //图片的高var $image;var $red 223; //图片的RGB颜色var $green 225; //红var $blue 227 ;//绿var $pix 227 ;//蓝var $pixcolor; //杂色颜色;var $pixred 242; //红var $pixgreen 168;//绿var $pixblue 162; //蓝var…

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

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

在oracle中游标的操作,Oracle中的游标和函数详解

Oracle中的游标和函数详解1.游标游标是一种 PL/SQL 控制结构;可以对 SQL 语句的处理进行显示控制,便于对表的行数据逐条进行处理。 游标并不是一个数据库对象,只是存留在内存中。操作步骤:声明游标打开游标取出结果,此…

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

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

php查询类似abab,ABAB中的正则表达式匹配编号(必须相同) - php

我已经搜索了许多答案来匹配ABAB pattern,这些答案与1212或2323的任意字符匹配,已阅读this too但我发现匹配ABAB模式的模式不起作用,它也匹配4444我试图找出模式来匹配以下主题:232345459898但可能不匹配4444或5555,因…

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

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

oracle asm 配置失败,Oracle ASMLib安装与配置

什么是ORACLE ASMLib?ASMLib 是一个适用于 Oracle 数据库 的自动存储管理(ASM)功能的支持库。ASM简化了数据库和管理,它不再需要 DBA 直接管理可能数千个的 Oracle 数据库文件,而只需管理分配给 Oracle 数据库的磁盘组。ASMLib 令使用 ASM 的…

.NET Core AWS S3云存储

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

oracle数据库查看size,[oracle] 查看oracle数据库表空间使用率,定位数据size较大对象...

1.查看表空间使用情况with ts as (SELECT d.tablespace_name "Name", d.status "Status",TO_CHAR (NVL (a.MAXBYTES / 1024 / 1024 /1024, 0), 99,999,990.90) "Maxsize (G)",TO_CHAR (NVL (a.BYTES / 1024 / 1024 /1024, 0), 99,999,990.90) &q…

如何解决在ASP.NET Core中找不到图像时设置默认图像

背景web上如果图片不存在一般是打xx,这时候一般都是会设置默认的图片代替。现在用中间件的方式实现统一设置, 一次设置,全部作用 。此示例演示如何解决在ASP.NET Core中找不到图像时设置默认图像先决条件Visual Studio 2017或更高版本。启用V…

缩减oracle日志,[20180829]减少日志生成量.txt

[20180829]减少日志生成量.txt--//最近一段时间优化一下生产数据库,主要是问题比我预计要严重,实际上exadata实在太快了,把许多问题都给掩盖了.--//实际上这个问题很早就存在,我实在不想提,基于国内许多应用都可能存在类似问题,还是写一下.SQL ordered by Executions%CPU - CPU…

ACM中算法时间约束

ACM中算法时间约束 一般ACM竞赛C/C的时间限制是一秒,因此可以根据题目数据来推断该题所使用的算法。 算法的时间复杂度在 1 0 7 10^7 107左右合适,最多不能超过 1 0 8 10^8 108, O ( n ) O(n) O(n)的极限就在 1 0 8 10^8 108左右。 问题规…

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

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