文献标识码: A
DOI:10.16157/j.issn.0258-7998.166939
中文引用格式: 王皓,陈少勇,王佳权,等. 非接触式睡眠状态识别算法硬件化实现[J].电子技术应用,2017,43(8):62-65.
英文引用格式: Wang Hao,Chen Shaoyong,Wang Jiaquan,et al. Hardware implementation of unobtrusive sleep state discrimination algorithm[J].Application of Electronic Technique,2017,43(8):62-65.
0 引言
随着社会的急速发展,睡眠质量问题正在困扰着各个年龄层次的人群。近年来中年人群频繁出现睡眠呼吸暂停综合征患者,这是一种睡眠时呼吸停止的睡眠障碍。最常见的原因是上呼吸道阻塞,经常以大声打鼾、身体抽动或手臂甩动结束。睡眠呼吸暂停伴有睡眠缺陷、白天打盹、疲劳,以及心动过缓或心律失常和脑电图觉醒状态。
现有的生物医疗仪器对该症状的判断基本采用接触式检测技术,其主要特点是通过电极组成的多导联方式,从而达到检测生理信号的目的,如临床上的速度式呼吸测量法、容积式呼吸测量法、光电式脉搏心率测量法等。这些方法有三大缺点,一是对人体有一定的约束,被测人员不能随意进行肢体动作;二是这类监测方法主要依靠附着在人体上的接触式心电电极来获取信号,对人体皮肤直接接触,不利于长时间测量;三是软件处理的时间长,且无法提供快速准确的测量。由于其对监测对象的条件约束,也限制了其应用的范围。
对睡眠质量进行监测,非接触式设计显得必要。本文采用非接触式检测,秉承算法硬件化设计思路,通过主要成分分析提取BCG信号的特征值;流水线设计加快体动合成指数的计算,搭配灵活的嵌入式Nios软核识别睡眠时人的静息状态,全面主动检测心脏冲击信号;软硬协同的SoC设计减少了系统的面积,缩短了睡眠模式识别的时间,准确率可达97%。
1 非接触式睡眠识别算法
1.1 算法和设计流程
从PVDF中采集过来的信号包含多维度的生理信息,包括心率、呼吸、BCG和体动信号等。当呼吸暂停事件发生时,有效的信号量与其他因素混杂在一起。为了区别呼吸暂停、正常呼吸和肢体律动,采用主要成分提取模块对特征信号进行有效分离。基于标准差值的方法合成有效信号的体动指数,最后睡眠判断模块对指数的阈值判别,识别出此时病人所在模式。算法设计如图1所示。
信号处理流程主要基于4个步骤:提取PVDF采集的BCG信号、主要成分分析和数据分段、体动指数合成、睡眠模式判断。整个算法以60 s为一个周期,R_PVDF为原始ADC采集到的PVDF信号,RESP为经过30 Hz数字低通滤波(37阶,IIR巴特沃斯)之后的PVDF信号,主要成分分析模块对两种信号处理,同时减少数据维度、提取最大特征值,接着计算出体动合成指数σ和自适应阈值,最后判断出患者的睡眠状态。
1.2 BCG信号获取
逻辑控制模块如图2,为了快速获取ADC内的睡眠数据,clk引脚连接c3时钟信号50 MHz,作为模块内部时钟。该模块采用有限状态机模式设计,用纯Verilog代码编写,在always语句的引导下循环46个时钟周期,最终AD_DATA引脚端以940 ns的周期吐出12位BCG信号数据。
1.3 体动合成指数和自适应阈值
经过主成分分析和10 s数据分段之后,PC1R_PVDF和PC1RESP被划分为6个10 s周期信号。在自适应阈值判决前,每段来自PC1RESP的10 s数据集会通过标准差公式进行计算,得出体动合成指数σ。体动合成指数公式如下:
实验表明,正常人在静息睡眠阶段也会产生很多肢体动作信号,为了减小对呼吸暂停综合症的识别不足,采用自适应阈值的方式计算周期信号的平均值。采用这个方法,每段60 s数据集都能获得一个自适应的阈值,从而使得误判率极大减小,自适应阈值计算公式如下:
1.4 睡眠模式判断
利用参数σi和σj就能判定PVDF传感带上的人目前所在的状态,根据优先级排序的判断条件如下(最大电压输出为5 V):
条件1:σi>40%×最大电压输出(肢体律动)
条件2:σj>70%×最大电压输出(正常呼吸)
条件3:10%×σv<σj<70%×最大电压输出(呼吸暂停)
条件4:σj<10%×σv(离开)
2 算法硬件化实现
2.1 系统框架与设计流程
系统的整体设计如图3所示。本系统总体分为两大部分,一是前端模拟信号采集电路,二是后端数字逻辑控制及算法硬件化。前端部分包括PVDF传感带、前置放大、低通滤波、ADC采样,后端部分均采用纯Verilog进行硬件化设计,其中包括逻辑控制、数据存储、算法硬件化,通过FPGA内嵌的NiosII处理器搭建软件系统,控制液晶显示。外部50 MHz晶振为整个系统提供全局时钟树。
整个系统的设计流程为:首先用Altium Designer完成硬件系统的电路设计、芯片布局,然后使用Verilog HDL在Quartus平台上完成逻辑控制、算法的硬件化设计、训练、仿真和综合,在SOPC Builder平台上完成CPU软核定制,使用ModelSim和SignalTap进行算法验证,最后通过USB-Blaster下载到FPGA电路板。
2.2 前端模拟信号采集电路
生理信号的采集选用PVDF超薄压电传感带,放置在睡垫下垂直靠近人体心脏的位置。由于人体本征信号属于超低频信号,使用者在以自然睡眠的姿势躺在上面后,所传递出来的是极其微弱的电荷信号,通常电压强度在0~20 mV之间。因此需要对生理信号进行放大和滤波。
前端信号处理电路采用LMV602低噪声运算放大器,组成电荷放大电路,实验证明在调配R1、C1的值时增益为200可取得最佳信噪比。此电路采用单电源供电,并且5 V电压通过电阻分压,输入在放大器同相端,对生理信号产生2.5 V的抬压效果,省去后级单独设计抬压电路的冗余问题。此电路简洁、完善,能将信号放大到适合ADC转换的电压,具体硬件电路图如图4所示。
为了去除混叠在有效生理信号中的50 Hz工频干扰,第二级采用低通滤波电路。3 dB截止频率为:
该电路不仅可以放大0.1 Hz~10 Hz的信号,还能大大降低50 Hz工频干扰。滤波输出后的信号幅度为0~2.5 Vpp,因此AD芯片采用12 bit高精度ADS7818,该芯片内置2.5 V参考电压,外部在1脚接上震荡电容,使AD开始工作。ADS7818输入电压量程为0~5 V,通过2.5 V抬压后,满足AD采样的量程范围。
2.3 硬件加速设计
算法的硬件化过程采用流水线设计,首先定义了20个12 bit寄存器用来保存被分段后的10 s PVDF数据,然后数据在时钟c2作用下传输到20个LPM_MULT乘法器进行平方根运算,再后一级是2个20输入的PARALLEL_ADD加法器,最后调用了FPGA内嵌的IP核ALTSQRT进行开方,最终算出结果即为体动合成指数σ。
流水线式的设计实际是将串行操作转化为并行操作,将算法中的组合逻辑延时路径系统地分割,并在各个部分之间插入寄存器暂存中间数据,缩短了一个时钟周期内信号通过组合逻辑电路延时路径长度,使得单位时间内处理的数据量变大,即电路的吞吐量变大,从而提升算法的速度。
设计语言采用硬件描述语言Verilog HDL,整个设计流程在Altera公司的Quaruts、Eclipse平台下完成,最后通过USB-Blaster下载到电路板。
2.4 嵌入式软核协同处理
借助于Altera可重构SoC技术和FPGA的硬件可编程本身特性,本算法定制了嵌入式软核Nios II,通过SOPC Builder配置处理器、JATG接口、ROM和普通PIO口,在时钟接口的作用下,算法数据被送至Nios II处理器进行最终判断,同时Nios II软核通过Avalon总线同内部的ROM、外部的SDRAM、Flash等器件进行数据交换,系统定制如图5。
为了方便板级调试,本设计定制了JTAG接口。通过PC端的Nios II IDE(集成开发环境)即可以对嵌入式处理器进行软件开发,包括编辑、编译和调试程序。与传统嵌入式开发过程相比,JTAG接口兼容了SignalTap Logic Analyzer软件,能有效地捕获和显示实时芯片内部信号,深度分析睡眠算法。
Nios II是Altera推出的32位RISC嵌入式处理器,是SoC系统中最为核心的一个IP核。其优势是享有32位指令集体系,与二进制代码100%兼容,性能超过200DMIPS。
3 验证和评价
为了全方位评估算法,用Altium Designer设计系统电路原理图并绘制PCB版图,使用沉金工艺制作PCB硬件电路板,FPGA芯片采用CycloneIV EP4CE15F17C8, 将硬件系统通过USB-Blaster下载到电路板后,其资源占用情况如表1所示。
根据综合后的结果,可以得出的结论是:该算法适用于大部分FPGA芯片,在硬软核搭配使用的情况下,资源占用率不高,为今后睡眠识别技术发展提供了良好的开发性和扩展性。
此外,在SingalTapII Logic Analyzer逻辑分析平台上,采用相同的数据集对硬件和软件实现进行评估,结果如表2所示。
据观察,识别率上硬件算法会略低于软件算法,其原因是设计中采用的LPM_MULT、ALTSQRT等IP模块对浮点计算存在“四舍五入”的情况,因此会造成除法、开方等运算结果出现略微偏差,但该误差属于可接受范围内;在识别时间上,硬件算法在50 MHz时钟频率下仅需19.72 ms就能完成识别,相比软件的4.9 s,速度提升了约25万倍。
根据实测数据在ModelSim-Altera联合仿真平台的仿真结果如图6,经过算法的提取、处理,PVDF睡眠生理信号最终被分类为Normal Breath(正常呼吸)、Apneic Event(呼吸暂停)、Body Movement(肢体律动)。
4 结论
本文提出一种非接触式睡眠模式识别算法,利用PVDF非接触式传感带构建硬件系统对多维度生理信号进行实时采集和处理,通过ModelSim、SignalTap平台仿真验证,该算法在较短的识别时间内有着97%以上的识别准确率。本设计突破了传统穿戴式医疗仪器的复杂穿戴性,具有体积小、实时性强的特点,并为预防、诊断呼吸暂停综合症提供参考依据,非常适合用在医疗嵌入式应用方面。
参考文献
[1] 丁鑫,金雷,刘诺,等.基于织物电极的非接触便携式睡眠心电监测系统设计[J].北京生物医学工程,2012,31(3):293-296.
[2] 王琛磊.基于DSP的睡眠监测系统设计与实现[D].广州:华南理工大学,2013.
[3] Paalasmaa Joonas,Waris Mikko,Toivonen Hannu,et al.Unobtrusive online monitoring of sleep at home[C].34th Annual International Conference of the IEEE EMBS,2012:3784-3788.
[4] Song Changyue,Liu Kaibo,Zhang Xi,et al.An obstructive sleep apnea detection approach using a discriminative hidden markov model from ECG signals[J].IEEE Transactions on Biomedical Engineering,2016,7(7):1532-1542.
[5] MORA G G,KORTELAINEN J M,HERN?魣NDEZ E R P,et al.Evaluation of pressure bed sensor for automatic SAHS screening[J].IEEE Transactions on Instrumentation and Measurement,2015,7(7):1935-1943.
[6] GUERRERO G,KORTELAINEN J M,PALACIOS E,et al.Detection of sleep-disordered breathing with pressure bed sensor[C].35th Annual International Conference of the IEEE EMBS,2013:1342-1345.
[7] Carolina Varon,Alexander Caicedo,Dries Testelmans,et al.A novel algorithm for the automatic detection of sleep apnea from single-lead ECG[J].IEEE Transactions on Biomedical Engineering,2015,9(9):2269-2278.
作者信息:
王 皓,陈少勇,王佳权,黄启俊
(武汉大学 物理科学与技术学院,湖北 武汉430072)