




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
盐城师范学院毕业设计盐 城 师 范 学 院毕业设计手机睡眠监测系统的实现与设计学生姓名 学 院 信息工程学院 专 业 计算机科学与技术 班 级 12(2) 学 号 指导教师 2016年5月16日手机睡眠监测系统的实现与设计摘 要当下人们对身体健康、绿色生活日益重视,监测身体健康方面的需求市场也会随之增加。随着现今移动智能手机的普及,利用智能手机监测身体健康成为研究热点。当前的睡眠监测过程多在医院里进行,它们通常采用多导睡眠图(PSG)进行测试。这会耗费大量的时间与金钱,也给人们造成许多不便。本文基于智能手机实现睡眠监测,其目标是通过监测人们的睡眠过程分析其睡眠质量。首先,根据匹兹堡睡眠质量指数(Pittsburgh sleep quality index, PSQI)确定影响人们睡眠质量的主要因素,分别是声音、温度和光照。其中,声音又是最为关键的因素。其次,系统通过手机内置设备采样上述三种因素的信号值并对采样数据进行处理。对于声音信号,本文提出基于流数据的分贝值算法。该算法可以对采样数据边录音边处理,减少了冗余数据;对于温度系统,本文提出基于温度值的敏感度算法,解决了手机内嵌传感器的不稳定性而导致的监测值的差异,增加了系统的稳定性;针对光照信号,本文提出基于光照值的区间幅度算法,能够有效地将监测值进行区分,避免了使用手机来存储大量监测值。通过监测周围同学、老师以及亲人睡眠时的数据,验证了该系统的准确性。该系统打破了传统上时间与空间的约束。更为重要的是,它采用非接触式方式进行监测,方便用户使用。 【关键词】 Android系统;睡眠监测;传感器全套设计加扣 3012250582The Design and Realization of the Sleep Monitoring System Based on Mobile phoneAbstractNowadays, people pay more attention to health and green living. And the needs of the healthy market is increasing. With the popularity of smart phones, using smartphones to monitor the health become a hot topic. People choose the hospital to monitor their sleep by PSG. It will spend a lot of time and money, but also caused a lot of inconvenience to people. This paper use phone to monitor the sleep, and its goal is to analyze the quality of sleep by doing this. First, determining the main factors according to the Pittsburgh Sleep Quality Index (PSQI) which affect peoples quality of sleep, and they are sound, temperature and light. The sound is the most critical factor among them. Then system collect and handle three kinds of data which mentioned in the above paper by equipment embedded in the phone. For sound signal, the system put forward the decibel value algorithm based on the data stream. The algorithm can handle sampling data when record data, so it reduced redundant data. For temperature system, the system proposed sensitivity algorithm to handle out the problem that different result may appeared because of the unstable sensor. For light signal, the system proposed amplitude value algorithm and it can effectively differentiate between monitoring values without large data stored. This paper verified the accuracy of the system by monitoring students, teachers, relatives and so on who around us. The system breaks the traditional constraints of time and space and reduce the consumption of time and money. More importantly, it uses a non-contact manner to monitor which is user-friendly. Key words Android system, sleep monitoring, Sensor目 录1 绪论11.1引言11.2研究背景31.3论文主要工作和结构32 ANDROID系统的概述42.1 Android平台42.2手机传感器53 系统设计63.1系统背景63.2睡眠影响因素93.2.1匹兹堡睡眠质量指数93.2.2三个关键因素113.3概要设计133.3.1移动客户端143.3.2 PC服务器端143.4功能设计143.5算法思想143.5.1基于流数据的分贝值算法143.5.2基于温度值的敏感度算法153.5.3基于光照值的区间幅度算法164 系统实现164.1算法实现164.1.1声音采样164.1.2温度采样194.1.3光照采样214.2系统配置要求224.3系统界面224.4系统测试245 总结与展望25参考文献26致 谢281 绪论1.1引言身体健康是现代人们生活关心的话题,因此大量与之有关的手机应用也随之出现,典型的有心跳社交、心电仪、体检宝测血压心率等等,如图1-1、1-2、1-3所示。这些应用可以立即将结果反馈给用户,但对于睡眠这种需要长时间监测的应用却较少。一般来说,人们每天大约三分之一的时间用于睡眠,这对睡眠质量提出了较高的要求。因此需要能够方便快捷地监控自己的睡眠过程。目前,只有在医院才能有效地进行睡眠监测,这不但耗费大量的时间、金钱,也给受监测者造成许多不便1。为此,本文开发了基于智能手机的睡眠监测系统,采用非接触式的监测方法,利用手机中内置的元件,有效地解决了上述问题。 图1-1身体健康移动应用图 图1-2身体健康移动应用图图1-3身体健康移动应用图1.2研究背景随着社会的进步与发展,人民生活水平的提高,人们对监测身体健康和绿色生活要求越来越高。另一方面,智能手机以其便携,多变的特点成为人民生活中不可缺少的一部分。因此,本文基于智能手机开发了一个非接触式睡眠监测系统。身体健康是生活中不可缺少的一个话题。人们从很多方面注重身体健康,例如饮食健康、科学锻炼等等。智能手机市场上关于这一类的移动应用有很多。本文选择监测身体健康中的睡眠过程作为研究的主题。在现实生活中,如果人们要监测睡眠过程,医院会是他们的第一选择。一般医院会选择多导睡眠图(PSG,具体见3.1)进行监测。PSG需要使用到大量的传感器,并且采用接触式的方式进行监测。PSG测试是一个昂贵、耗时以及高劳动密集的过程,它需要训练有素的技术人员将参与者与各种传感器相连1。如果不采用PSG,也可以在家中采用便携式记录系统,但其本质同PSG一样,仍然需要大量的传感器和相对专业的技术人员协助2。上述两种方案都采用的是直接接触的方式来监测睡眠过程。为此,我们提出了一个设想:是否可以结合人们普遍使用的智能手机,采用非接触式的方法来监测整个睡眠过程?经过调查研究,我们发现影响人们睡眠的主要因素是环境因素。因此,获取环境因素是本系统前期最重要的工作。本文方案,首先是以匹兹堡睡眠质量指数(PSQI,具体见3.2)作为研究的理论依据,分析影响睡眠质量的具体因素:声音、温度和光照;然后,利用手机里内嵌的传感器获取参与者睡眠期间的环境因素。本系统根据智能手机的软件开发与设计规范,设计实现了基于智能手机的睡眠监测系统。系统以匹兹堡睡眠质量指数为理论基础将其分为移动客户端和PC服务器端,移动客户端模块主要实现了实时获取睡眠过程中的音频数据流以及周围环境的温度值和光照值,并通过相关算法做相应的处理3,及时显示人们睡眠的情况。PC服务器端模块能够接收移动客户端的监测数据,利用这些数据分析用户睡眠过程中的情况,分析结果可以及时的显示给用户。同时,随着采样数据的增加,分析准确度会逐步提高。1.3论文主要工作和结构第一章, 绪论。本章节阐述了睡眠监测系统的必要性、系统的实现步骤以及论文的结构。第一章, Android系统的概述。本章节介绍各种移动平台以及选择平台依据,同时阐述利用手机获取系统所需参数的方式。第二章, 系统设计。本章节主要介绍系统的研究背景,阐述手机睡眠监测系统的意义,并且概述系统的概要设计及其算法。第三章, 系统实现。本章节主要讲述系统是实现方法、安装配置要求、系统界面以及实验。第四章, 总结与展望。2 Android系统的概述现在主流的智能手机平台有iOS和Android,本节简单介绍一下Android平台及其内嵌的传感器。2.1 Android平台Android的系统内核是基于Linux的。由于其开源特性,使得它有很大的开放性。同时,它能够实现与Google应用实现无缝结合。Android系统的体系结构如图2-1所示:图2-1 Android系统的体系结构2.2手机传感器一般来说,市场上的Android手机都内嵌了不同类型的传感器,这些传感器能够测量当前手机的运动方向、速度以及周围环境因素等等,并且它们的精度和准确度也满足大多数应用的要求。例如,当前一款流行的游戏叫Temple Run(如图2-2所示),就是利用重力传感器来判断用户的操作指令。若使用者将手机右倾,则游戏人物也随之向右倾斜,反之亦然。另外,在没有网络的情况下,一些手机可以预报周围环境,如温度、湿度等,这也是归功于内嵌的温度传感器和湿度传感器。关于旅行方面的应用更需要更广泛的应用手机中内置的传感器了。如通过磁场传感器和加速度传感器获得一个指南针方位。 图2-2 手机传感器应用示意图智能手机中嵌入的传感器大致可分为以下三类:1) 位移传感器这些传感器测量沿三个轴线测量加速度和旋转,包括三轴加速度、重力传感器、线性加速度传感器、陀螺仪以及矢量传感器(利用正负表示)等。2) 环境传感器这些传感器被用于测量各种环境参数,如设备周围空气温度、压力,光照强度以及湿度,包括气压传感器、光照传感器、温度以及湿度传感器等。3) 位置传感器这些传感器被用于测量手机的物理位置,包括方向传感器和磁力(磁场)传感器等。影响环境的因素有很多,根据本系统的目标以及匹兹堡睡眠质量指数(具体见3.2)可知:温度和光照两个环境因素对睡眠质量有着重要的影响。因此本系统需要利用手机内嵌的温度、光照传感器获取这些值。我们将采集的原始温度和光照数据汇总,然后通过分析计算推测出环境数据对睡眠的影响。值得注意的是,系统中TYPE _TEMPERATURE类型常量代表温度传感器,数值单位为摄氏度。随着Android系统的逐步升级,大部分的智能手机中已经用TYPE_AMBIENT_TEMPERATURE取代TYPE _TEMPERATURE。当前,虽然作为主流版本的Android5.0采用的是前者,但考虑到兼容性问题,本系统仍然采用后者。对光照传感器来说,所采用的标志均为TYPE_LIGHT。本系统在应用程序中通过调用Activity中getDefaultSensor方法传递指定的传感器类型常量,并且以此判断在该手机上是否存在指定类型的传感器。具体过程见4.1算法实现。3 系统设计3.1系统背景当前,智能化已经成为人们日常生活中不可或缺的一部分。科技进步给人们带来很大的便利,人们可以用智能手机来监测身体状况,可以监测血压、心率或者记录运动情况等,但对于睡眠质量这种需要长时间监测的应用程序几乎没有。目前,人们只有在医院里才能对自己的睡眠过程进行监测,所采用的监测方式为多导睡眠图(Polysomnography,PSG),如图3-1、3-2。PSG主要研究睡眠和梦境以及其他睡眠过程中有可能出现的症状,它需要参与者待在睡眠实验室一整晚,并且需要训练有素的技术人员监控参与者的睡眠过程。为了做到这一点,技术人员为参与者戴上包含许多传感器的产品,其中,包括一个测试呼吸运动的胸部和腹部带、一个鼻压传感器、一个打鼾麦克风、一个测量血氧饱和度的脉搏血氧仪、绑在腿上用于检测运动的运动传感器以及5个用来测量脑部运动的脑电传感器。通过电线连接这些传感器,技术人员会在参与者的睡眠期间实时监控来自传感器的生命数据流。图3-1 安装大量传感器的患者图3-2安装大量传感器的患者显然,PSG测试是一个昂贵、耗时并且需要高劳动密集型的过程,需要大量的传感器和专业的技术人员,并且采用的是接触式的方法进行监测的。因此,在很大程度来说,利用PSG方式监测睡眠质量不便利。经过实际调研发现,人们认为接触式的方式会让人感觉不舒适,更加倾向于采用非接触式的方式监测睡眠质量4。因此,本文设计了一款非接触的睡眠监测系统。我们根据匹兹堡睡眠质量指数(PSQI)得到了影响睡眠质量的主要因素,分别是声音、温度和光照。其中,声音又是最为关键的因素。在进行监测的过程中,本系统采用了基于流数据的分贝值算法将大量的音频数据流转换为分贝值,根据这些值进行睡眠质量推测;本系统考虑到温度对于睡眠质量的影响,利用智能手机内嵌的温度传感器将受监测者睡眠过程中的温度变化记录下来5,通过基于温度值的敏感度算法将结果进行睡眠质量的辅助预测;对于光照因素,本系统同样采用手机传感器进行数据采集,通过采用基于光照值的区间幅度算法监测光照对于睡眠质量的影响。相较于PSG,利用手机进行睡眠监测的优势有:1) 采用非接触的方式。PSG需要大量的传感器并且将其与参与者相连接,这是一种侵入式的监测方法,但大多数人更加愿意选择非侵入式的方式进行监测,因为这个不会让他们觉得有事物对其进行约束而不舒服。2) 方便简单。根据上述所说,PSG的注意事项很多,而手机睡眠监测系统并没有那么多的要求。3) 打破时间与空间的约束。PSG并不是能够在任何地方都可以实现的,而手机睡眠监测系统却不相同,可以被随身携带。4) 价格便宜。PSG需要医院大量设备和医生、护士的协作,且仅能完成一次睡眠监测,而手机睡眠监测系统却无这些要求。相较于PSG测试,手机睡眠监测系统也有其缺点:1) 精度不高。PSG通过不同的传感器或者部位的生物电获取生物信号,通过前置进行放大并且能够获得不同的电讯号,将这些电讯号记录成不同的图形,便利于分析处理。而本系统主要是根据录音的数据流作为分析的基础,环境因素有着极大的干扰,手机传感器只能获取部分作为分析的参考依据。这也就导致手机睡眠监测系统分析的准确度没有PSG高,也没有其详细。2) 受硬件约束。手机睡眠监测系统主要是利用手机录音系统,每一个商家生产的硬件也是不同的。而且我们要利用到手机内嵌的传感器。正常手机传感器有11个,但并不是每个手机都拥有全部的传感器。这也会导致我们利用传感器判断睡眠的准确度降低。3) 需要长期来提高准确度。例如,本系统的理论依据是匹兹堡睡眠质量指数(PSQI),而PSQI评定时间要长达一个月。本系统在有无线网络时将平时收集的数据传到服务器端,PC服务器利用这些大量的数据进行算法分析,获得处理后的结果数据将作为下一次分析该参与者睡眠的主要依据6。而PSG测试本身是一个短期过程,并不需要那么长的时间就可以得到准确地数据。3.2睡眠影响因素3.2.1匹兹堡睡眠质量指数匹兹堡睡眠质量指数(Pittsburgh sleep quality index, PSQI)是美国匹兹堡大学精神科医生Buysse博士等人于1989年编制的。该量表适用于睡眠障碍患者、精神障碍患者评价睡眠质量,同时也适用于一般人睡眠质量的评估。它的具体评估方式是让参与者对一系列自评和他评的条目打分,每个条目按03分进行统计计算。分值越大,表明参与者的睡眠质量越不好。PSQI与多导睡眠图PSG测试的结果之间有着较高的相关性,因此本文使用该指数进行睡眠质量评估。PSQI通过量表不仅适用于评估一般人睡眠行为、习惯,也适用于综合评估临床病患者睡眠质量。表3-1、3-2为PSQI量表统计问题以及计算的规则:表3-1 PSQI量表问题(1)问题名称选择1、近1个月,晚上上床睡觉时间通常是_点钟2、近1个月,从上床到入睡通常需要_分钟。3、近1个月,通常早上_点起床。4、近1个月,每夜通常实际睡眠时间_小时对下列问题请选择一个最适合您的答案。5、近一个月,您有没有因下列情况影响睡眠而烦恼a.入睡困难(30分钟内不能入睡)无1次周12次周3次周b.夜间易醒或早醒无1次周12次周3次周c.夜间去厕所无1次周12次周3次周d.呼吸不畅无1次周12次周3次周e.咳嗽或鼾声高无1次周12次周3次周f.感觉冷无1次周12次周3次周g.感觉热无1次周12次周3次周h.做噩梦无1次周12次周3次周i.疼痛不适 无1次周12次周3次周j.其他影响睡眠的事情(经常性的翻身,灯光亮度太强等)无1次周12次周3次周如果有,请说明:表3-1 PSQI量表问题(2)问题名称选择6、近1个月,总的来说,您认为自己的睡眠质量很好较好较差很差7、近1个月,您用催眠药物的情况无1次周12次周3次周8、近1个月,您感到困倦吗?无1次周12次周3次周9、近1个月,您感到做事的精力不足吗 很好较好较差很差表3-2 PSQI量表计算(1)名称计分规则a睡眠质量根据条目6的应答计分“较好”计1分,“较差”计2分,“很差”计3分。b入睡时间 条目2的计分为“15分”计0分,“1630分”计1分,“3160”计2分,“60分”计3分。 条目5a的计分为“无”计0分,“7小时”计0分,“67”计1分,“56”计2分,“ 85%计0分,7584% 计1分,6574%计2分, 65% 计3分。e睡眠障碍根据条目5b至5j的计分为“无”计0分,“1周/次”计1分,“12周/次”计2分,“3周/次”计3分。累加条目5b至5j的计分,若累加分为“0”则成分E计0分,“19”计1分,“1018”计2分,“1927”计3分。f催眠药物根据条目7的应答计分,“无”计0分,“1周/次”计1分,“12周/次”计2分,“3周/次”计3分。表3-2 PSQI量表计算(2)名称计分规则g日间功能障碍 根据条目8的应答计分,“无”计0分,“1周/次”计1分,“12周/次”计2分,“3周/次”计3分。 根据条目9的应答计分,“没有”计0分,“偶尔有”计1分,“有时有”计2分,“经常有”计3分。 累加条目8和9的得分,若累加分为“0”则成分G计0分,“12”计1分,“34”计2分,“56”计3分。PSQI 总分成分a + 成分b + 成分c + 成分d + 成分e + 成分f + 成分g注:累积各成份得分为PSQI总分,总分范围为02l,得分越高,表示睡眠质量越差。被试者完成试问需要510分钟。根据上述量表问题以及计算规则,本文发现呼吸不畅、咳嗽、打鼾以及翻身等这些都可以被用来推测睡眠质量,因为这些动作都伴随着声音。当然,该量表还加入了温度和光照对睡眠质量的影响。因此,本文发现声音、温度和光照对睡眠质量起主要影响。其中,声音又是其中的关键因素。根据上述量表,我们发现一个明确的评估时间更加有助于鉴别参与者是否属于暂时性还是持续性的睡眠障碍。为实现更加精准的睡眠质量评估,本系统需要对参与者进行长期评估,评估持续时间一般为1个月。3.2.2三个关键因素本文参考了PSQI量表的一些参数,将这些参数作为影响人们睡眠质量的重要因素,基于这些参数进行数据分析处理,从而推断出用户的睡眠质量。根据匹兹堡睡眠质量指数,我们发现声音、温度和光照对睡眠质量起主要影响。其中,声音又是其中的关键因素。针对这个特点,系统首先以环境声音做主线10,与此同时同步记录受监测者环境的温度和光照。下面对这三种因素进行具体分析。(1)声音根据PSQI,睡觉质量与环境声音高度相关,例如半夜翻身、睡眠说梦话和打鼾等。相关医学统计以及实验结果显示,夜间的平均噪音强度大概范围是40120dB,同时这也是最常见的环境噪音。相对于没有噪音的正常环境下,大多数人的表现是深度睡眠阶段会减少、浅度睡眠阶段会增加,但实际睡眠总量并没有显著地改变。换句话说,人们生活在这种环境下并不会影响其睡眠总量。深度睡眠阶段减少或者浅度睡眠阶段增加的量与噪声的增加呈现出一种较为明显的线性关系。对于噪音的峰值大于80dB时,人们不仅会明显增加睡眠觉醒次数,而且其总睡眠质量也会降低。这证明了噪音不但影响人们的睡眠质量,也可能影响到睡眠的数量。我们通过研究多导睡眠图发现,在15dB的噪音下,年轻人和老年人都会减少深度睡眠阶段量和增加浅度睡眠阶段量。然而,对于老年人来说,即使噪声量如此小,他们的睡眠质量也会受到较大的影响,导致其减少更多的深度睡眠阶段量,同时增加了浅度睡眠阶段量。另外,在不同的睡眠环境中,参加者在实验中比家中会敏感10dB。一般情况下,大多数人生活在20200Hz的低频率环境噪音下。在这一环境中,人们会有较长的深度睡眠阶段,第二天早晨会明显疲乏减少,而且其糖皮质激素会减弱。根据上述研究,本系统将分贝的区间划分成四个,015dB、15dB40dB、4080dB和80dB及其以上。其中,第一个区间属于极其安静的环境,周围并没有什么噪音。第二区间属于可能有鼾声或者说梦话的情况下,也就是说有轻声细语的范围。第三个区间可能是居住路边等情况,这种情况可能会导致人们半夜经常觉醒。第四个区间只能够说明睡眠环境很糟糕,人们睡眠质量很差。系统通过得到的分贝值计算出这四个区间的百分比,从而判断该用户的睡眠情况。从而给出重要的建议。(2)温度在影响睡眠质量的因素中,环境温度是对其同样有较大影响7。根据实验发现,人们对低温环境比高温环境更加敏感。相对应地,环境温度的升高则会引起人们睡眠总量的增加,而这一状况可以持续很多天。如图3-3温度、觉醒次数以及年龄的关系图所示,横坐标为温度,纵坐标为觉醒次数。从该图可以了解到老年人对温度更为敏感,曲线的抖动比较大。而且温度过高或过低时,老年人觉醒的次数会大幅度增加。而温度因素对于年轻人有影响,单影响不是跟大,曲线抖动较小。图3-3 环境温度、睡眠觉醒次数与年龄的关系图经过实验证明,大多数人的睡眠中最适宜的环境温度为2328之间。当温度大于28时,人们睡眠觉醒的次数明显会随着环境温度的升高而逐渐增加。当温度低于23并且随着其降低时,人们也会增加觉醒的次数。在温度变化波动很大的情况下,温度因素的影响更为明显。同时,对于不同年龄段的人在同一温度下觉醒的次数也是不同的,老年人更加敏感。(3)光照光照对于睡眠的调节具有重要的作用,本系统将光照分为三个等级:黑暗或弱光、中等强度光照以及高强度光照。手机传感器所采集的光照强度单位Lux,黑暗或弱光所对应的光照强度范围是0100Lux;中等强度光照所对应的范围是1002000Lux;高强度光照所对应的范围是2000Lux以上。经过实验验证,在第一种情况下,人们的睡眠质量会提高并且能够减少半夜觉醒的次数。在第二种情况下,对于一开始的睡眠会有影响,半夜也容易经常觉醒;但若是光照强度保持不变并且持续时间较长的话(这里是指持续好多天,以适应这种光照的情况),这个将对人们的睡眠影响不大。在第三种情况下,会导致人们体温升高并且极大地影响到睡眠。强光暴露下,对当晚的睡眠具有瓦解作用9。如果在强光暴露下,将双眼遮盖住,能够完全消除强光暴露后引起的体温升高以及对睡眠瓦解的作用。因此,需要根据长期记录下的光照强度判断最近是否浮动,来推测当前受监测者的睡眠情况。3.3概要设计本系统主要分为两大模块移动客户端和PC服务器端。系统的流程图如图3-3所示。图3-3 手机睡眠监测系统的简单流程图3.3.1移动客户端本系统以匹兹堡睡眠质量指数作为理论依据,确定影响睡眠质量的因素:声音、温度和光照。对声音信号来说,本文提出基于流数据的分贝值算法。在获取声音数据流的过程中,为了保证声音采样的准确性和处理的实时性,本系统对采样数据进行边录音边处理,减少了冗余数据。对温度信号,本文提出基于温度值的敏感度算法以识别睡眠过程温度变化的抖动情况。对光照信号,本文提出了基于光照值的区间幅度算法来感知睡眠环境中光照强度的变化区间8。本系统设定每晚9点自动开启,此时虽然开始采样,但数据并未立即处理。而是对受监测者是否处于睡眠状态进行判断。由相关医学资料和相关实验可知9,音频数据小于200并且持续2s时,表明受监测者处于睡眠状态。本系统也采用这一判定标准。如果受监测者没有开始睡眠,则系统仅仅进行信号的采样(未记录),直到判断出受监测者处于睡眠状态,才开始记录,同时进行数据处理。当受监测者醒来时,点击结束按钮,系统将处理后的结果将以饼状图形式动态显示,方便受监测者查看其睡眠质量的相关数据。3.3.2 PC服务器端根据匹兹堡睡眠质量指数,本文发现监测的时间越久,睡眠质量预测的准确度越高。因此,移动客户端会在有无线网络的情况下,自动发送当天记录下的数据文件到PC服务器11。PC服务器会将这些文件进行分析处理,作为判断下一次受监测者睡眠质量的依据。由于将长期的睡眠数据进行分析处理,可以准确地推测出受监测者的睡眠质量12。 3.4功能设计本系统包括两大功能模块,第一个模块为移动手机客户端,第二个模块为PC服务器端。其中,移动手机客户端也分为两个模块,一是显示用户睡眠情况的模块,二是采样和分析处理模块,如图3-4所示。3.5算法思想3.5.1基于流数据的分贝值算法分贝是度量两个相同单位之数比例单位,主要是用于度量声音的强度,其中声音的强度单位为dB,具体公式如下: LP=20log10(PrmsPtrf)dB (3-1)在公式3-1中,其中数值“20”的单位为微帕,代表人类能够听到的最小声压。然而,上述公式并不适用于Android系统。一般对于Android设备来说,传感器提供的物理量是场的幅值,因此本文采用如下公式: LdB=10log10(A12A02) (3-2)其中,公式中A0值为预设的周围环境噪音的振幅。在本文中,将系统的A0设定为1,即Android手机的麦克风所能够获得到最小的声音振幅。公式中A1值计算方法为:首先采样音频数据流,然后写入到相应的存储文件,之后读取其中的振幅并存入数组当中,最后从数组中取得最大振幅或者取得数组中的平均振幅(用平方和求平均值或用绝对值和求平均)。 LdB=20log10(A1A0) (3-3)根据上述公式,所得到的结果是一个相对值(相对环境噪声)。实验中,如果受监测者不对着手机麦克风发出声音,则系统计算出的分贝值是0。本系统考虑到实际环境中噪声的差异,对于不同环境的取值不会是相同的,为了采用声压值为20微帕时对应的振幅值作为校准参考值,因此本文进一步对公式3-2进行变换,得到公式3-3,使之与公式3-1与相同的系数。睡眠质量显示采样处理手机睡眠监测系统移动客户端PC服务器端图3-4 手机睡眠监测系统功能模块3.5.2基于温度值的敏感度算法针对温度值的变化对睡眠质量的影响,本文根据实际观测实验,提出基于温度敏感度算法。其主要思想是将温度变化划分三个区间:温度变化平稳、温度稍有变化、温度大幅度变化。温度变化平缓的计算规则为前后温度变化不超过1,并且一段区间中最大值与最小值的差小于2;温度稍有变化的计算规则为前后温度变化超过1,并且一段区间中最大值与最小值的差小于2;其余的情况都属于温度大幅度变化。此外,本系统发现在相同条件下,每次手机传感器获取的温度值虽然并不相同,但相差不大,相差的区间大约为0.10.3 13。3.5.3基于光照值的区间幅度算法针对光照的变化对睡眠质量的影响,本文提出基于光照值的区间幅度算法。根据上文显示人们睡眠对于光照强度敏感度,可以将光照值划分为3种,分别是0100Lux的黑暗或者弱光、1002000Lux的中等光强以及高于2000Lux的高等光强14。因此,本系统将所获得的光照强度划分到这三个区间,并且计算不同区间在整个晚上的比例。根据大量的实验以及相关资料得出15:当第三种区间的比例高于0.91%时,说明受监测者半夜受到强光光照的影响,半夜经常性地醒来并且休息不好,严重影响了受监测者的睡眠时间。当第二区间的比例大于9.83%且第三区间小于0.91%时,受监测者半夜虽然不会习惯性的醒来,但会睡眠比较浅,第二天精神状态并不是很好,影响了受监测者的睡眠质量。4 系统实现根据匹兹堡睡眠质量指数,利用上述三种算法实时采样这三类样本,可以有效分析人们的睡眠质量。4.1算法实现4.1.1声音采样本系统记录音频流,主要采用两种方式,分别是MediaRecorder和AudioRecord。为了更加准确地评估所采样的数据,我们分别对比了这两种方式。(1)MediaRecorder使用MediaRecorder的优点是系统一旦初始化,能够方便的获得振幅。如果直接利用android.media.MediaRecorder的无参数方法-getMaxAmplitude,能够直接获得录音时间内音源数据的最大振幅,但仅仅只获取最大值可能会受到极端数据16的影响,会使得系统计算出的分贝值波动幅度较大。getMaxAmplitude取得音频数据中最大的值(绝对值)并且返回该值,其值域为-32768, 32767,单位是帕斯卡。它与声压值之间呈线性函数的关系。当getMaxAmplitude返回的数值为最大值32767时,系统所计算出的最大分贝值是90.3dB。换句话来说,当公式中A0的振幅值取1时,系统计算出0 dB 到90.3 dB的正常值域。需要注意的是,系统在第一次调用getMaxAmplitude方法时取得的返回值为0。此时,若将0代入到公式3-1当中,得到的分贝值将是负无穷大。这意味着需要系统对这种特殊情况及时做出判断并处理。利用android.media.MediaRecorder方法的代码如下所示:/* 1.创建录音时写入的文件 */ int msource=” MediaRecorder.AudioSource.MIC”; /从麦克风源进行录音int mform=” MediaRecorder.OutputFormat.DEFAULT”; /设置输出格式int menco=” MediaRecorder.AudioEncoder.DEFAULT”;/ 设置编码格式myFile = File.createTempFile(tempName, .amr, myDir); /创建临时文件mrecor = new MediaRecorder(); /初始化对象/* 2.设置录音来源为MIC */ mrecor.setAudioSource (msource); /初始化录音方式mrecor.setOutputFormat(mform); /初始化输出格式mrecor.setAudioEncoder(menco); /初始化编码格式mrecor.setOutputFile(myFile.getAbsolutePath(); /获取输出文件mrecor.prepare(); /准备录音mrecor.start(); /开始录音btn_stop.setEnabled(true); /设置按钮是否可以点击isStop = false; /创建停止标志在Android设备中要获得麦克风数据,首先要获得在AndroidManifest.xml的对应权限:在permission 中添加权限RECORD_AUDIO。上述方法虽然取得振幅值是非常方便的,但是需要对每个数据实时计算,以提高准确度,这会导致计算误差非常大。同时,如果对于开始数值为0时处理不当,系统在根据所获得最大的振幅计算出的分贝值波动幅度会非常大,将严重影响监测准确度。(2)AudioRecord相较于上一种方式,使用该方式的对象初始化步骤更为简单便利,因为MediaRecorder在录制一个完整的音频文件时需要写入到指定的文件,会造成数据量过大。该方法能够在录音的同时直接获得到当前录音的具体音源数值。本系统通过正在录制的一段音源数据利用read(short audioData, int offsetInBytes, int sizeInBytes)方法将缓冲区的读取到的数值直接传到短整型数值audioData数组中,系统可以对audioData进行之间的数据处理,例如根据短整型数据求平方和、绝对值的平均值。这样不仅可以避免极端值影响整个系统分析处理,而且能够计算出更加稳定的结果。系统在求得audioData数组的平均值之后,在利用平方和计算时代入基于流数据的分贝值算法中公式3-2。而当利用绝对值时,则代入公式3-3中,利用AudioRecord可以实现边录音取音频边对音频数据进行处理并写入文件中。该方法与第一个方法的区别不单单是因为极端值16的影响,也考虑到整个系统的效率,因为第一类必须是录一整段音才能够处理,而且不能得带全部数据。而第二个类的方法可以一边录音一边处理,大大地减少时间的消耗。综上所述,本系统采用AudioRecord方法。利用android.media.AudioRecord类的部分代码如下所示:private boolean isRecording = false;/是否正在录音private int RateInHz = 44100; /定义一个采样率private int Config = AudioFormat.CHANNEL_IN_STEREO; /播放声道private int Format = AudioFormat.ENCODING_PCM_16BIT; /播放音频的标准private int buffSize ; /定义缓存大小private FileOutputStream out;/定义文件流输出对象private String Path = Environment.getExternalStorageDirectory().getAbsolutePath()+ /Android/Record.txt;/文件存放路径private Button cancel;/取消按钮private String TAG = RecorferActivity;/创建一个标志private Button start;/开始按钮private List list;/音频数组private Button btn;/创建一个按钮int msource=MediaRecorder.AudioSource.MIC;/从麦克风录音/主要代码如下out = new FileOutputStream(new File(Path);BufferedOutputStream mbos = new BufferedOutputStream(out); /字符输出流DataOutputStream mdos = new DataOutputStream(mbos); /输出流buffSize = AudioRecord.getMinBufferSize(RateInHz, Config,Format);/获得最小字符大小AudioRecord recor = new AudioRecord(msource, RateInHz, Config, Format, buffSize);/获得Record对象short buffer = new shortbuffSize;recor.startRecording();/开始录音isRecording = true;/设定标识符,正在录音while (isRecording) int bufferResult = record.read(buffer, 0, bufferSize);for (int i = 0; i bufferResult; i+) dos.writeShort(bufferi);System.out.println(开始执行频率的判断!);Log.i(TAG, 频率值: + buffi);4.1.2温度采样由于本系统使用智能手机内嵌的温度传感器,因此。需要对此传感器进行注册、注销,同时将传感器所获取的值记录到文件当中,部分代码如下所示:/注册:/从系统中获取传感器管理者manager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);/获取温度传感器temperature = manager.getDefaultSensor(Sensor.TYPE_TEMPERATURE);RecorderActivity.this.tempListener = new TempListener();/执行传感器注册事件/这里的tempListener方法是自定义的方法/ SENSOR_DELAY_NORMAL,它所使用的时间延迟是200,000毫秒/ SENSOR_DELAY_GAME(20,000毫秒延迟)、SENSOR_DELAY_UI(60,000毫秒延迟)、或者是SENSOR_DELAY_FASTEST(0毫秒延迟) manager.registerListener(RecorderActivity.this.tempListener, temperature,SensorManager.SENSOR_DELAY_NORMAL);/注销:/在ondestory中注销manager.unregisterListener(tempListener);/注销传感器监听事件监听:/温度传感器监听事件private class TempListener implements SensorEventListener /当准确率发生
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗质量年终工作总结
- 2026届四川省德阳市中学江县九年级化学第一学期期末考试试题含解析
- 区药事质控年度工作总结
- 江苏省南京溧水区2026届九上化学期中质量检测试题含解析
- 字节跳动新人培训体系概览
- 北京十二中学2026届九年级化学第一学期期中教学质量检测模拟试题含解析
- 中医刮痧疗法培训
- 学校教师培训成果汇报
- 金孔雀舞动教学
- 2026届甘肃泾川县英语九上期末预测试题含解析
- 2025年吉林省的劳动合同书范本
- 关于医院“十五五”发展规划(2026-2030)
- 青少年软件编程(Scratch)三级考试题库(变量 克隆 画笔)
- 注浆加固技术课件
- 国家开放大学《现代汉语专题》章节自测参考答案
- 锅炉煮炉方案
- (中职)工业机器人应用编程(FANUC) 初级 项目六 任务三 码垛程序编制电子课件
- 电子小报社团教案
- 信访人的权利、义务和禁止行为告知书
- 数学人教A版(2019)必修第一册1.3集合的基本运算(共17张ppt)
- 北京理工大学应用光学课件(大全)李林
评论
0/150
提交评论