- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
测一测你的睡眠质量.doc
测一测你的睡眠质量
我们如何得知自己的睡眠质量?比如夜里翻身几次,有没有梦游?或许大家第一个想到的就是智能手环。常见的智能手环的确都带有睡眠监测功能,但我们对其监测结果深表怀疑,因为手环毕竟是戴在手上的,未必准确。而最可靠的监测位置,应该在人体的中心,即肚子。于是,我们试着用加速度传感器做了一个能监测睡眠质量的小仪器。
● 材料选择
我们选择了Microduino。Microduino是Arduino的兼容开发板,体积很小,一块板子和1元硬币相近。因其具有电子积木的特点,堆叠方便,不需要焊接连线,做产品原型特别方便。制作这个作品大致需要如下材料,分别说明如表1:
当然,SD卡和USB线是不可少的,这里不再赘述。这四个模块可以直接堆叠,高度约2CM,如图1所示。
● 工作原理分析
睡眠监测仪的关键就是负责记录身体的朝向,并将其忠实地记录于SD卡上,以便于特制的数据分析器分析数据。我们先分析一下对身体朝向的定义。
图2至图5的视角是当你将其佩戴在腹部时,从头部往腹部看的视角。
为了更易观察,下页图6、图7的视角发生了变动,请使用原先的相对视角看待它们。
然而事实上,几乎不可能得到如图2至下页图7那样的监测值。实际上往往每次监测都会得到重力加速度的X、Y、Z方向的分量,且均不为零。对此,我们采用了一个非常简单的判断法:取模最长的一个分量对应的方位为此次的方位,如下页图8所示。
此外,我们还可以顺便记录每相邻2次测得数量值的矢量差,这些都是有用的数据,可以用来判断是否入睡以及估算一段时间内的睡眠质量等。
● 算法优化
最简单的方法是周期性地监测重力加速度,不加任何处理地直接原始地记录入SD卡,将一切处理任务全部交付于数据分析器。然而,这种方法一个晚上会产生大量的数据,如果每100ms记录一次,记录8小时,则文件大概为5.5M,明显不是一种好方法。
第一种方法产生的文件之所以大,是因为存在大量的冗余数据。例如,一个人睡觉时一般会在10~15分钟保持同一朝向几乎不移动,而这段时间得到的数据十分接近,却都被记录了。所以应该要剔除相似数据,即设定一个阈值,阈值以内的数据不记录。
然而,我们本来就是为了记录身体的朝向,所以需要记录的其实仅仅是身体朝向改变的事件。因此,数据还可以进一步优化。经过测试,一个晚上记录的文件的大小一般小于3K。
需要注意的是,并不是任何原始数据都是可信的,除了无法预测的数据噪音,更值得关注的还有如下两种情况:①用户根本没有进入睡眠状态。我们无法期待用户在睡着前一瞬间启动产品,因此启动产品的时机都是睡着前的一段时间,而这段时间用户的行为被认为是相对活跃的。此时的数据根本不应当被记入,否则会对数据产生一定的干扰。②用户已经进入睡眠状态,但是身体正在运动。虽然一般情况测得的加速度可直接视为重力加速度,然而当用户转身或者有大幅度的运动时,就不能如此轻率地将测得的加速度用于确定当前用户朝向的数据来源。
第一种情况的解决方法是并不急于记录数据,而是将监测仪分为“监视状态”和“记录状态”。一开始监测仪处于“监视状态”,该状态仅仅将数据写入内存而不写入文件。我们认为,若一段时间内数据变化不大且朝向主要不为站立时,则用户已经进入睡眠状态,随后切入“记录状态”并新建数据文件。在“记录状态”,数据不仅被写入内存,还会经过初步处理写入文件。我们认为,若一段时间内用户几乎一直处于站立状态,则用户已经离开睡眠状态,随后返回“监视状态”并终止数据文件。
第二种情况的解决方法是综合考虑附近的数据。在这种处理方式下,我们可以较轻松地排除个别的突变数据,而不将之错误地作为有效数据进行处理。但如果用户确实发生了朝向改变等大动作,我们也能够正确地认知到这种变化并将其予以考虑。
● 睡眠指数的实现
睡眠好不好,总要弄个指标吧。睡眠质量指数是我们为了增加设备的功能而设计的一个参考指数。一般来说,在相等的一段时间内,身体活动越少,睡眠质量肯定越好。我们通过获取这段时间内任意相邻2次测得加速度的矢量差的模的平方并求和,来衡量身体如何活动。显然,在相等一段时间内,模的平方和越大,身体的活动就越剧烈。
我们每次对朝向相同的一段连续时间计算睡眠质量指数,考虑到这些时间不尽相同,还需要将其除以时间差。这是睡眠质量指数的计算公式:
其中表示这段时间内第次测得的加速度;是这段时间相对于启动仪器的开始时刻;是这段时间相对于启动仪器的结束时刻;是相邻2次测量的周期。
由于一共测量了次,故这段时间内的“平均相邻加速度差的模的平方”的值为,除以100是数据上的需求(防止溢出)。
接着对计算得到的值进行映射。因为原先的值域为,故对其进行一次反正切运算并
文档评论(0)