CN117898692B - 一种用于心率监测系统的数据处理方法 - Google Patents

一种用于心率监测系统的数据处理方法 Download PDF

Info

Publication number
CN117898692B
CN117898692B CN202410318492.2A CN202410318492A CN117898692B CN 117898692 B CN117898692 B CN 117898692B CN 202410318492 A CN202410318492 A CN 202410318492A CN 117898692 B CN117898692 B CN 117898692B
Authority
CN
China
Prior art keywords
heart rate
data
signal
numpy
segment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202410318492.2A
Other languages
English (en)
Other versions
CN117898692A (zh
Inventor
闫荣新
于萍
谷莉方
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hebei Wangxin Digital Technology Co ltd
Original Assignee
Hebei Wangxin Digital Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hebei Wangxin Digital Technology Co ltd filed Critical Hebei Wangxin Digital Technology Co ltd
Priority to CN202410318492.2A priority Critical patent/CN117898692B/zh
Publication of CN117898692A publication Critical patent/CN117898692A/zh
Application granted granted Critical
Publication of CN117898692B publication Critical patent/CN117898692B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)

Abstract

本发明提供了一种用于心率监测系统的数据处理方法,属于数据处理技术领域。本发明有效的解决了心率监测系统在采集患者原始心率数据的准确性低,去除心率干扰因素困难,需要精准的心率值数据和分析结果的问题。本发明用于心率监测系统中,心率监测系统包括:电源装置、信息采集装置、信息调理模块、数据融合单元、数据分析模块、异常检测报警模块、显示单元和存储单元;本发明包括以下步骤:S1信息采集;S2信息调理;S3数据融合;S4数据分析。本发明能够确保心率监测系统在数据处理过程中,能够准确、可靠地监测和解读心率数据,为临床实践提供更可靠的支持。

Description

一种用于心率监测系统的数据处理方法
技术领域
本发明属于数据处理技术领域,特别是一种用于心率监测系统的数据处理方法。
背景技术
在临床实践中,心率作为一个至关重要的生理参数,不仅反映了心脏的工作状态,也是评估整体健康的关键指标。心率监测系统在心血管疾病的诊断和监测、药物疗效的评估、手术过程中的生理监测、康复进展的评估,以及应激和压力反应的监测等多个方面发挥着关键作用。
然而,目前利用心率监测系统对心率数据的处理面临一系列挑战。首先是采集患者原始心率数据的准确性,心率监测系统通过传感器采集患者原始心率数据,但传感器的选择直接影响了数据的质量,考虑到不同患者具有不同的体型、皮肤类型和生理状况,传感器需要能够适应这些差异,因此在生物相容性方面存在挑战;此外,数据在采集、传递中存在延迟、丢失等问题,如何确保这些数据被准确、一致地传递给心率监测系统也是一个挑战。
其次,采集后的数据需要进行处理,处理的目的是准确识别真正的心跳信号并排除噪声和伪信号。然而,由于电磁干扰、运动伪影、肌电干扰、基线漂移、呼吸运动影响和环境噪声等因素存在,导致采集的数据存在失真现象,如何通过数据处理有效降低这些干扰因素对信号的影响,确保高质量的信号进入后续的处理阶段,是一个重要挑战。
最后,数字数据的处理也是关键问题,在经过预处理后,数据类型由模拟数据信号转为数字数据信号,在许多临床和监测场景下,需要更精准的心率数据和分析结果,以便让医护人员迅速做出医疗决策。如何能够更好地从数字数据中提取心率值和复杂的心率变异信息,也是一个具有挑战性的任务。
综上所述,针对心率监测系统在数据处理方面面临的挑战,需要提出一种有效的数据处理方法,以确保准确、可靠地监测和解读心率数据,从而为临床实践提供更可靠的支持。
发明内容
本发明的目的是针对现有的技术存在上述问题,提出了一种用于心率监测系统的数据处理方法。
本发明的目的可通过下列技术方案来实现:一种用于心率监测系统的数据处理方法,所述方法用于心率监测系统中,心率监测系统包括:电源装置、信息采集装置、信息调理模块、数据融合单元、数据分析模块、异常检测报警模块、显示单元和存储单元;
所述方法包括以下步骤:
S1信息采集:通过信息采集装置采集患者的原始心率数据,捕获患者心脏的电活动,得到模拟心率数据信息,信息采集装置采用多通道心电信息同步采集的方式进行作业,以提高采集数据的准确性和可靠性,信息采集装置包括若干电极式心率传感器;
电极式心率传感器被用于心率采集,主要是因为它们能够直接与皮肤接触,准确捕捉心脏的电活动,这种传感器能提供高质量的心电图(ECG)信号,对于监测心脏健康状况至关重要;多个电极式心率传感器的采用,是为了增加数据的准确性和可靠性,不同通道可以从身体的不同位置捕捉信号,这样可以减少噪声的影响,并且提供更全面的心脏电活动信息,从而使得数据分析更加准确和全面。
S2信息调理:采用信息调理模块对模拟心率数据信息进行放大、过滤和数据类型转换处理;
信息调理模块包括信息放大单元和信息过滤单元,信息放大单元和信息过滤单元并联连接;
信息放大单元包括信息放大器和信息放大模拟/数字转换器,信息放大器用于放大模拟心率数据信息,以确保模拟心率数据信息的质量不被降低;信息放大模拟/数字转换器用于将经过信息放大器放大后的模拟心率数据信息转换为数字数据信息;数字数据类型编号为1类信号;
信息过滤单元包括滤波器组件和滤波模拟/数字转换器,滤波器组件用于过滤模拟心率数据信息中的非心率信息频段的噪声和干扰;滤波模拟/数字转换器用于将经过滤波器组件过滤后的模拟数据信息转为数字数据信息;数字数据类型编号为2类信号;
息放大单元和信息过滤单元采用并联连接;而不是传统的串联,先放大,再过滤处理的连接,原因在于:采用并联连接的设计允许信息放大单元和信息过滤单元同时工作,而不是顺序处理,这样的设计可以提高处理速度和效率,在传统的串联设计中,信号首先被放大,然后再过滤,这可能导致放大的信号中包含的噪声也被一同增强,使得过滤变得更加困难;通过并联处理,可以同时放大信号和过滤噪声,确保高质量的信号进入后续的处理阶段。
S3数据融合:采用数据融合单元对1类信号的数字数据和2类信号的数字数据进行融合,得到综合心率数字数据;
数据融合单元配置数字信号融合微处理器,数据融合单元功能的实现基于融合MATLAB软件;
数据融合单元功能实现步骤如下:
A1、接收数据:接收信号放大模拟/数字转换器传输的1类信号的数字数据和滤波模拟/数字转换器传输的2类信号的数字数据;
A2、时间戳对齐:在数字信号处理器中,根据时间戳信息对1类信号的数字数据和2类信号的数字数据进行对齐,保持数字数据在时间上的一致性;
A3、融合:采用将1类信号的数字数据和2类信号的数字数据的最优部分进行融合的策略进行合并,得到综合心率数字数据;
A4、输出:将综合心率数字数据的信息传输至数据分析模块;
数据融合是为了整合来自不同源的信息,以获得更加准确和全面的心率数据。通过融合1类信号的数字数据和2类信号的数字数据的最优部分,可以确保最终的心率数字数据既包含了足够的细节,又去除了可能的干扰和噪声。选择MATLAB软件进行数据融合是因为MATLAB提供了强大的数据处理和分析工具,特别是在信号处理和数字数据分析方面。MATLAB的高级数学功能使其成为实现复杂数据融合策略的理想选择。
S4、数据分析:采用数据分析模块对综合心率数字数据依次进行R波检测、心率计算和心率变异性分析;
数据分析模块包括数据分析微处理器、R波检测单元、心率计算单元和心率变异性分析单元;R波检测单元、心率计算单元和心率变异性分析单元集成于数据分析微处理器中;
数据分析模块的工作步骤如下:
B1、R波检测:将综合心率数字数据传输至R波检测单元,利用R波检测单元识别综合心率数字数据的R波,输出R波位置信息,R波为心室收缩的波峰;R波检测单元功能的实现基于R波检测MATLAB软件;
B2、心率计算:心率计算单元接收R波检测单元输出的R波位置信息,利用R波位置信息计算RR间隔,得出心率值,RR间隔为连续两个R波之间的时间间隔;心率计算单元功能的实现基于配有Python编辑器的心率计算软件;
B3、心率变异性分析:心率变异性分析单元对RR间隔进行时间域、频域和非线性分析后,提取HRV指标,HRV指标包括时间域指标、频域指标和非线性分析指标;
时间域指标包括SDNN、RMSSD、NN50和pNN50;SDNN为RR间隔标准差,反映心跳间隔的总体变异性;RMSSD为连续RR间隔差值的均方根,反映快速变化的心率变异性,与副交感神经活动相关;NN50是相邻RR间隔差超过50ms的次数;pNN50是NN50占总心跳次数的百分比,反映心率的快速变化;
频域指标包括LF、HF和LF/HF比率,LF为低频分量,反映交感神经和副交感神经的共同作用结果;HF为高频分量,反映副交感神经活动,特别是与呼吸相关的心率变异;LF/HF比率为LF与HF的比值,LF/HF比率被用来评估交感神经和副交感神经之间的平衡;
非线性分析指标包括Poincaré Plot指标、样本熵指标和去趋势波动分析指标,Poincaré Plot指标为一种散点图,用于可视化RR间隔的变化,在Poincaré Plot指标中包括SD1主轴和SD2主轴,SD1主轴代表心率的短期变异性;SD2主轴代表心率长期变异性;
样本熵指标用于衡量心脏自主神经系统对心率的控制程度;去趋势波动分析指标包括波动标准差和波动幅度,波动标准差表示为心率变异性中的变化程度;波动幅度为衡量心率在不同时间段内的振幅。
MATLAB软件在R波检测中的使用是因为其强大的信号处理能力,能够有效地识别和分析ECG信号中的R波,MATLAB提供的工具箱和函数库可以方便地实现R波的准确检测。对于心率计算,采用配有Python编辑器的软件是因为Python的灵活性和易用性,Python有着丰富的数据分析和处理库,如NumPy和SciPy,这些库可以方便地用于进行心率计算和心率变异性分析,Python的广泛应用和社区支持也意味着可以轻松获取资源和插件,以适应项目的特定需求。
在上述的用于心率监测系统的数据处理方法中,电源装置包括主电源接口、充电电池模块和充电控制单元;
主电源接口用于连接外部电源,当外部电源可用时,通过主电源接口为心率监测系统供电;
充电电池模块包含至少一个可充电电池,用于在外部电源不可用时为心率监测系统供电;充电电池模块采用自动切换机制,能够自动检测外部电源的状态,当外部电源可用时,自动切换至主电源接口供电,当外部电源不可用时,自动切换至充电电池模块供电;
当心率监测系统通过主电源接口供电时,利用充电控制单元自动对充电电池模块进行充电,以确保可充电电池电量的充足;
在步骤S1中,电极式心率传感器的材料包括银和氯化银,银作为电极式心率传感器的主体材料,银表面覆盖一层氯化银薄膜,氯化银薄膜用于稳定电极式心率传感器与人体皮肤接触界面的电位,减少电极电位漂移和电极极化,以提高测量的准确性和稳定性;电极心率传感器按照人体解剖结构和心脏电生理特性,沿心电信号传导路径分布,电极式心率传感器采集频率为300Hz-1000Hz,以捕获心电信号的全部信息;
银:银具有非常高的电导率,这使得它成为电极材料的理想选择,因为高电导率意味着电信号可以更有效地从皮肤表面传输到监测设备中,此外,银在生物兼容性方面的表现也相对良好,这对于减少皮肤刺激和过敏反应很重要。
氯化银薄膜:在银的表面涂覆一层氯化银薄膜,主要是为了在银电极和人体皮肤之间建立一个稳定的界面,氯化银有助于减少电极电位漂移和电极极化现象。电位漂移和极化会影响测量的准确性,通过使用氯化银薄膜,可以显著降低这些问题,保证心率监测的准确性和稳定性。
电极心率传感器的分布遵循人体解剖结构和心脏电生理特性,主要在于以下内容:心电信号的传导路径是指心脏电活动的自然流动方向,从窦房结(心脏的自然起搏点)开始,经过心房,到达房室结,然后通过希氏束和室壁肌肉。电极布置沿着这一路径,可以最大限度地捕获心脏电活动的全貌,包括所有重要的心电图(ECG)波形。
人体解剖结构:电极的放置还考虑到了人体的解剖结构,比如胸部的布局和肢体的位置;这样做是为了确保能够从不同角度和位置捕获心电信号,从而提供更全面的数据分析基础。
采集频率的选择是基于心电信号的频谱和必要的时间分辨率来做出的,心电信号的主要频率成分集中在0.05Hz到100Hz之间,但是为了捕获更细微的心电图细节和确保信号的高质量再现,采集频率需要远高于信号最高频率的两倍(根据奈奎斯特定理)。
300Hz:这是最低采集频率,足以捕捉到大多数心电信号的重要信息,适用于一般的心率监测和分析。
1000Hz:更高的采集频率可以提供更细致的心电图数据,使得对于快速变化的心电事件(如心律失常)的检测和分析更加精确。这对于高级的心脏监测应用,如详细的心率变异性(HRV)分析,尤其重要。
异常检测报警模块包括异常检测微处理器、异常模式识别单元和报警单元,异常模式识别单元和报警单元集成在异常检测微处理器中,
异常模式识别单元用于检测心率值和HRV指标是否异常;异常模式识别单元设有容错机制,通过设置时间窗口T,连续监测到异常数据超过T时激活报警;
异常模式识别单元的功能实现步骤如下:设定阈值:设定心率正常范围值的阈值,设定HRV指标正常值的阈值,设定T值的阈值;通过比较心率值和心率正常范围值的阈值、比较HRV指标和HRV指标正常值的阈值,判断是否异常;如果异常时间超过T值的阈值,则激活报警;
报警单元的报警方式包括常规报警和远程报警,常规报警为声音报警、视觉报警和振动报警中的至少一种,远程报警为通过网络将报警信息发送到预设的手机或医疗监控中心;
设置容错机制的原因在:减少误报:在心率和心率变异性(HRV)监测中,可能会偶尔出现数据读数的波动或短暂的异常,这并不总是表明存在真正的问题,容错机制通过设置时间窗口T,要求连续监测到异常数据超过一定时间阈值T,才激活报警,这有助于区分偶然的数据异常和持续的、可能指示健康问题的异常模式,从而减少因短暂波动或偶发事件引起的误报。
增强系统的鲁棒性:容错机制使系统能够更好地应对噪声和临时干扰,提高其在各种条件下的稳定性和可靠性。通过允许一定程度的数据波动,而不是对每一个超出预设阈值的读数立即作出反应,系统可以更准确地识别真正的异常模式。
设置远程报警原因在:及时性:远程报警通过网络将报警信息发送到预设的手机或医疗监控中心,可以确保即使在用户无法直接察觉报警(如睡眠中或处于意识不清的状态)时,也能及时将潜在的健康风险通知给用户家属或医疗专业人员。这种及时性对于紧急情况下的快速反应至关重要,可能在某些情况下救人一命。
扩大监测范围:远程报警功能允许监测数据和报警通知不受地理限制地传达给关心用户健康的家庭成员或医疗服务提供者,从而扩大了健康监测和紧急反应的范围。这对于那些需要持续健康监控的用户来说尤其重要,例如老年人、慢性病患者或正在康复中的人。
提高反应效率:通过将报警信息发送到医疗监控中心,可以实现对异常情况的快速诊断和处理建议,提高医疗反应的效率。医疗专业人员可以迅速评估情况,并在必要时指导用户采取适当的行动或直接安排紧急服务。
显示单元用于将心率监测系统中的数据以可视化的形式展示给用户,显示单元的显示内容包括心率曲线、当前心率值和HRV指标;显示单元具有历史数据回顾功能,以帮助用户和医疗专业人员了解患者心脏健康状况的变化趋势。
在上述的用于心率监测系统的数据处理方法中,在步骤S2中,信号放大器具体为仪表放大器,仪表放大器工作参数如下:增益设置为100-1000倍;输入阻抗大于1MΩ,以降低从人体到信号放大器输入端的信号损失;
输入等效噪声电压低于10μV RMS,用于降低信号放大器本身引入的噪声,确保准确放大微弱的心电信号;
共模抑制比高于100dB,以抑制由于电极式传感器放置不当或电源线干扰引起的共模信号;
滤波器组件包括高通滤波器、陷波滤波器和低通滤波器,高通滤波器串联于陷波滤波器,陷波滤波器串联于低通滤波器;
高通滤波器截止频率为0.5Hz,用于去除低频噪声和基线漂移,同时保留心电信号的低频成分;
陷波滤波器的中心频率设为当地电源的频率,以消除电源线干扰;
低通滤波器的截止频率为250-300Hz,用于消除电器干扰或肌电信号,同时保证心电信号的高频成分不被削弱。
在上述的用于心率监测系统的数据处理方法中,在步骤S3中的A3中,融合功能实现的具体过程如下:
A3.1导入数据:通过融合MATLAB软件中的数据采集工具,将1类信号数字数据和2类信号数字数据导入到融合MATLAB软件中;
A3.2定义最优性准则:选择信噪比作为最优性评价标准;
A3.3信号分割:通过融合MATLAB软件的buffer函数将1类信号和2类信号分割成若干片段;信号分割具体操作如下:
A3.3.1对1类信号使用buffer函数,将1类信号分割成若干长度为n的片段,若干片段组合一个矩阵1,矩阵1的每列代表一个片段;
A3.3.2对2类信号使用buffer函数,将2类信号分割成若干长度为n的片段,若干片段组合一个矩阵2,矩阵2的每列代表一个片段;
n值为180-600;
A3.3.3处理余数:若信号长度不能被n整除,最后一个片段通过零填充达到指定长度,以确保所有片段长度一致;
A3.4计算每个片段的最优性:对于每个片段,使用信噪比作为标准计算最优性;具体操作如下:
A3.4.1遍历片段:对于1类信号的每个片段和2类信号的每个片段,分别进行遍历,遍历片段过程通过遍历每个片段的索引号实现,索引号代表片段在所属矩阵中的列数;
A3.4.2计算信噪比:对每个遍历到的片段,使用融合MATLAB软件中的snr函数计算信噪比;
A3.4.3存储结果:将每个片段的信噪比存储在相应的数组中,对于1类信号的片段,信噪比存储在数组snr1中;对于2类信号的片段,信噪比存储在数组snr2中;
A3.5选择最优片段:对于每个片段,比较1类信号和2类信号的最优性,选择最优片段;具体操作如下:
A3.5.1初始化最优片段矩阵:创建一个与1类信号片段和2类信号片段的矩阵同样大小的最优片段矩阵,用于存放选择后的最优片段;
A3.5.2遍历每个片段:通过循环遍历1类信号和2类信号的每个片段,在每次循环中,处理当前的片段索引;
A3.5.3比较信噪比:对于每个片段,比较1类信号和2类信号的信噪比;
A3.5.4选择最优片段:如果1类信号的当前片段的信噪比高于2类信号的相应片段,则将1类信号的片段选为最优片段,否则选择2类信号的片段;
A3.5.5存储最优片段:将选定的最优片段存储到初始化的最优片段矩阵中,对应于当前处理的片段索引;
A3.6重构信号:将选定的最优片段通过拼接的方式重新连接成一个完整的信号,具体操作如下:
A3.6.1初始化信号:创建一个空的数组,用于存放最终重构的信号;
A3.6.2遍历选择的片段:按照时间顺序,逐一遍历最优片段,
A3.6.3拼接信号段:将每个选定的最优片段按时间顺序拼接;得到重构信号;
A3.7平滑处理:对于重构信号使用滑动平均的方法来处理,以实现平滑过渡,具体操作如下:
A3.7.1确定平滑窗口大小:设定一个窗口大小记为m,m平滑处理时连续数据点的数量;m值为5-20;
A3.7.2应用滑动平均方法:使用融合MATLAB软件中的smoothdata函数,采用滑动平均的方法对重构信号进行处理,滑动平均操作基于前面设定的窗口大小m,通过计算窗口内所有数据点的平均值来更新每个点的值,作为新的信号值,得到综合心率数字数据。
择buffer函数进行信号分割原因在于:适应性与灵活性:buffer函数是MATLAB中用于将一维信号分割成多个固定长度片段的强大工具,选择buffer函数进行信号分割是因为它可以轻松处理各种长度的信号,并将它们分割成预定长度的片段,这对于后续的处理和分析非常有用;简化数据管理:通过将信号分割成矩阵的形式,每列代表一个片段,可以简化数据的管理和操作,这种结构便于进行逐片段的分析和处理,如计算信噪比、选择最优片段等;高效性:buffer函数直接支持包括零填充在内的多种信号处理功能,使得对于长度不一的信号片段可以高效且统一地处理。
信号分割的原因在于:可管理性:信号分割使得可以在更细的粒度上处理和分析数据,提高处理的可管理性;性能优化:分割信号可以针对每个片段单独评估和选择最优性,从而在整个信号中实现最优化处理和重构,这有助于提高最终信号的质量。
n值为180-600的原因:这个范围是基于信号的特性和处理需求确定的,较长的片段可以保留更多的信号信息,有助于更准确地评估信号的特性,如计算信噪比,同时,这个范围也确保了片段足够长,能够包含足够的数据点进行有效的统计分析,同时又不至于过长以致处理变得低效。
使用信噪比作为标准计算最优性原因在于:信噪比是衡量信号质量的一个重要指标,它能够客观反映信号中有用信息与噪声的比例,选择信噪比作为最优性标准,可以确保选择的片段具有相对较高的信号质量,从而提高重构信号的整体质量。
选择smoothdata函数的原因:灵活性与效率:smoothdata函数支持多种平滑技术,允许用户根据具体需求选择最合适的平滑方法,这种灵活性确保了在不同的应用场景下都能实现高效和有效的数据平滑;易用性:smoothdata函数简化了数据平滑的过程,用户只需简单指定窗口大小或平滑方法即可快速得到平滑后的数据,这降低了数据处理的复杂性,提高了工作效率。
m值为5-20的选择:这个窗口大小范围平衡了平滑效果和信号细节的保留;太小的窗口可能无法有效平滑噪声,而太大的窗口可能导致信号的有用细节丢失;选择5-20的范围提供了一个合理的折衷,确保了有效的噪声抑制同时保留了足够的信号细节。
在上述的用于心率监测系统的数据处理方法中,在步骤S4中B1中,R波检测的具体步骤如下:
B1.1数据导入:使用R波检测MATLAB软件中的load或readtable函数导入从数据融合单元传输的综合心率数字数据;
B1.2归一化:使用R波检测MATLAB中normalize函数对综合心率数字数据进行归一化处理;
B1.3确定R波位置信息:利用R波检测MATLAB软件中的findpeaks函数对经过归一化处理综合心率数字数据进行处理,得到R波位置信息;
findpeaks函数用于识别局部最大值,用于R波峰值检测,在findpeaks函数的计算过程中,最小峰值设为0.1mV-0.2mV,最小峰值间距为240-2000ms。
在R波检测流程中,归一化处理是一个关键步骤,主要原因在于:统一数据尺度:心率信号的幅度因人而异,甚至同一人在不同时间的测量中也会有所不同,使用normalize函数可以将数据统一到相同的尺度,这有助于后续处理步骤中的参数设置,使之更加统一和标准化;提高计算性能:归一化处理后,在使用findpeaks函数识别局部最大值时,统一的数据尺度可以提高其准确性和效率;减少数据中的偏差:归一化可以减少数据中由于量纲或范围差异较大而导致的偏差,使数据处理过程更加稳定,减少误差的产生。
findpeaks函数是检测局部最大值的有效工具,适合用于R波检测,因为:特征明显的R波:R波在心电图(ECG)中是一个特征明显的正向峰值,findpeaks能够有效识别这些局部的最大值,从而定位R波的位置;参数可调性:findpeaks函数允许用户根据实际信号特性设置最小峰值高度和峰值之间的最小距离,这为R波的准确检测提供了灵活性。
最小峰值(0.1mV-0.2mV):这个范围是基于正常心电图R波的一般幅度,设定一个最小峰值高度可以帮助排除因噪声或其他非R波波形引起的小幅度波动,确保检测到的是实际的R波而非噪声;
设定最小峰值间距240-2000ms原因在于:心率范围的反映:正常成人的心率范围大约在60到100次/分钟,对应的R-R间期(即两个连续R波的间隔时间)为600到1000毫秒;但是,心率可以因运动、应激、疾病或其他条件而变化。特别是在高强度运动或某些特定病理条件下,心率可以显著增加,对应的R-R间期则缩短;包含最快心跳:设定最小峰值间距的下限为240ms,可以捕捉到相当于250次/分钟的心跳,这考虑到了极端情况下人体可能达到的最高心率;排除异常心跳:将最大间距设置为2000ms,是为了包含心动过缓的情况,其中心率可能降至30次/分钟,对应的R-R间期为2000ms,这确保了检测到正常和大多数异常心率的R波,包括非常慢的心跳;噪声和伪峰值的剔除:在ECG信号分析中,通过设置一个合理的峰值间距范围,可帮助区分真实的心跳信号和噪声或伪峰值(如电极移动、肌肉震颤产生的信号等),这有助于提高R波检测的准确性和可靠性;适应多样化的应用场景: 这个范围允许findpeaks函数在多种不同的场景下使用,包括静息状态、不同强度的运动,以及各种心脏病理条件下的R波检测,它提供了足够的灵活性,以适应个体之间及同一个体在不同情况下的心率变化。
在上述的用于心率监测系统的数据处理方法中,在步骤S4的B2中,心率计算的具体过程如下:
B2.1导入:在Python编辑器中导入用于数据处理的NumPy库和SciPy库,从SciPy库中导入find_peaks函数,NumPy库用于支持维度数组与矩阵运算,find_peaks为寻找一维数组的局部最大值的函数,用来检测数据中的R波;
B2.2从R波检测单元接收R波位置信息:从NumPy库中导入np.array函数,采用np.array函数将从R波检测单元获得的R波位置信息转换为NumPy数组,NumPy数组存储了所有检测到的R波的位置,NumPy数组中的每个元素都代表一个R波的位置;
B2.3通过计算R波位置数组的差分来计算连续两个R波之间的时间间隔:从NumPy库中导入np.diff函数,利用np.diff函数计算数组中连续元素之间的差值,计算得到的结果为RR时间间隔;RR时间间隔为连续两个R波之间的时间间隔;
B2.4心率值计算:
B2.4.1确定采样频率:采样频率为300-1000Hz,采样频率为每秒钟记录的数据采样点数;
B2.4.2转换为秒:将RR时间间隔从采样点数转换为秒;
B2.4.3计算平均值:使用NumPy库的np.mean函数计算所有RR间隔的平均时间长度;
B2.4.4通过将60除以平均时间长度得到心率值,心率值为每分钟的心跳次数;
B2.5输出心率值:通过采用Python中的print函数对心率值进行输出,输出的心率值保留两位小数。
NumPy 数组提供了一种高效的方式来存储和操作大量的数据,与 Python 原生的列表相比,NumPy 数组在数值计算方面更加高效,支持更多的数学操作,且能够更方便地进行索引和切片。
采用差分方法的原因是,差分可以直接给出数组中连续元素之间的变化量,这在计算连续两个 R 波之间的时间间隔时非常方便,通过计算 R 波位置数组的差分,可以快速得到每两个相邻 R 波之间的间隔,即 RR 时间间隔。
选择 np.mean 函数计算所有 RR 间隔的平均时间长度是因为,np.mean 是NumPy 提供的一种快速、简洁的方法来计算数组的平均值,在心率计算中,通常关注的是平均心率,因此计算所有 RR 间隔的平均值是一个直接且有效的方法。
在上述的用于心率监测系统的数据处理方法中,在步骤S4的B3中,时间域指标的获取基于心率变异性分析单元配置的带有Python编辑器的时间域分析软件;获取时间域指标具体过程如下;
B3.t1导入数据:将RR间隔数据导入配有Python编辑器的时间域分析软件中,在Python编辑器导入NumPy库;
B3.t2计算时间域指标:SDNN:使用NumPy库中的std函数计算所有RR间隔的标准差,得到SDNN值;
RMSSD:使用NumPy库中的numpy.diff函数来计算连续RR间隔的差值;使用NumPy库中的numpy.mean函数来计算差值平方的均值;使用NumPy库中的numpy.sqrt函数来计算均值的平方根,得到RMSSD值;
NN50:使用NumPy库中的numpy.diff函数来计算连续RR间隔的差值;使用NumPy库中的numpy.abs函数来计算差值的绝对值;使用NumPy库中的numpy.sum函数来统计绝对值大于50ms的次数,得到NN50值;
pNN50:将NN50除以总的RR间隔数量,将结果乘以100,得到pNN50的百分比值。
在上述的用于心率监测系统的数据处理方法中,在步骤S4中B3中,频域指标的获取基于心率变异性分析单元配置含有Python编辑器的频域分析软件;获取频域指标具体过程如下:
B3.F1导入:在Python编辑器中导入NumPy库、SciPy库,加载RR间隔数据:将RR间隔的数据导入时间域分析软件中;
B3.F2插值:
B3.F2.1定义采样率:采样率为2-4Hz,每秒生成2-4个数据点;
B3.F2.2计算插值后的时间点:使用NumPy库中的numpy.cumsum函数计算累计和,将RR间隔数组转换为时间数组,然后根据定义的采样率生成一个等间隔的时间向量,时间向量覆盖了从0秒到最后一个RR间隔时间点的整个时间范围;
B3.F2.3进行插值:利用NumPy库的numpy.interp函数进行线性插值,interp函数会在新的时间点上插值原始数据点,得到等间隔心率时间序列数据;
B3.F3去趋势:导入SciPy库中的detrend函数,采用线性去趋势的方式,利用detrend函数对等间隔心率时间序列数据进行处理,得到去除线性趋势的心率时间序列;
B3.F4使用Welch方法计算功率谱密度:Welch方法包括以下内容:
B3.F4.1信号分段:将等间隔心率时间序列数据分割成多个长度相同的重叠段;
B3.F4.2窗函数应用:对每个段应用汉宁窗函数,用于减少信号两端的不连续性,
B3.F4.3快速傅里叶变换:对每个窗函数处理后的段执行快速傅里叶变换,将时域信号转换为频域信号,生成每个段的频谱;
B3.F4.4功率谱密度计算:对每个段的频谱求平方,得到每个段的功率谱密度,功率谱密度反映了信号在不同频率下的功率分布;
B3.F4.5平均功率谱密度:将所有段的功率谱密度在相同的频率点上进行平均,得到整个时间序列的平均功率谱密度;
Welch方法使用SciPy库中的scipy.signal.welch函数实现,调用welch函数时,welch函数参数设置如下:数据的采样率为2-4Hz;每个段的长度为256-1024数据点;相邻段之间的重叠数据点数为每个段长度的40%-50%;
B3.F5提取频域指标:
LF:筛选出处于0.04-0.15赫兹的频率点及对应的平均功率谱密度值,然后利用NumPy库中numpy.trapz函数进行积分,得到LF;
HF:筛选出处于0.15-0.4赫兹的频率点及对应的平均功率谱密度值,然后利用NumPy库中numpy.trapz函数进行积分,得到HF;
LF/HF比率:LF/HF比率是通过将LF除以HF得到。
在步骤B3.F2.1中,采样率为2-4Hz,原因在于:根据Nyquist定理,为了无失真地捕捉到信号的最高频率成分,采样频率应至少为信号中最高频率成分的两倍,在HRV分析中,考虑到高频成分上限为0.4Hz,2-4Hz的采样率超过了0.8Hz的理论最小要求,足以捕捉到心率的主要变化。
选择函数原因在于numpy.interp函数直接支持线性插值,且使用简单,可以高效地从原始不等间隔的RR间隔数据中生成等间隔的时间序列。
采用线性去趋势的方式,原因在于:消除线性趋势:心率时间序列数据可能包含线性趋势,这种趋势可以是由于长时间记录导致的生理变化,也可能是设备的漂移造成的,去除这些趋势有助于集中分析纯粹的心率变异性;保持数据的其他特性:线性去趋势是一种相对温和的处理方式,它能有效移除数据的线性部分,而不会影响到数据中的周期性成分或其他非线性特性。
在步骤B3.F4.5,采样率为2-4Hz目的是为了和步骤B3.F2.1中采样率保持一致。
每个段的长度为256-1024数据点:选择合适的段长度对于平衡时间分辨率和频率分辨率很重要,较长的段提供了更好的频率分辨率,但时间分辨率较低;较短的段则相反,这个范围允许在不同的应用场景中找到平衡点。
相邻段之间的重叠数据点数为每个段长度的40%-50%:重叠用于减少因分段造成的信息丢失,并增强频谱估计的平滑性。这个比例在减少方差和维持足够数据独立性之间能够实现良好的平衡效果。
在上述的用于心率监测系统的数据处理方法中,在步骤S4中B3中,非线性分析指标的获取基于心率变异性分析单元配置含有Python编辑器的非线性分析软件;获取非线性分析指标具体过程如下:
B3.n.1在Python编辑器中导入NumPy库、Matplotlib库、HeartPy库和SciPy库;
B3.n.2获取Poincaré Plot指标:使用NumPy库中的numpy.array函数将RR间隔数据转换为NumPy数组,通过对NumPy数组切片操作获取了当前RR间隔和后继RR间隔数据;
计算当前RR间隔与后继RR间隔之间的差值,作为RR间隔的一阶差分;
将一阶差分作为x坐标,将一阶差分的延迟一步的值作为y坐标,得到PoincaréPlot中的散点数据;
使用Matplotlib库中的 scatter函数采用拟合曲线的方式绘制散点图,其中,散点的x坐标表示当前RR间隔的一阶差分,y坐标表示后继RR间隔的一阶差分,设定散点大小为8-12,散点形状为椭圆形;透明度为0.5-0.8;在椭圆形中短轴长度和长轴长度,分别作为SD1主轴和SD2主轴的值;
B3.n.3样本熵指标计算:加载等间隔心率时间序列数据;利用HeartPy库中sample_entropy函数对等间隔心率时间序列数据计算,得到样本熵指标;
B3.n.4获取去趋势波动分析指标:导入SciPy库中的detrend函数,采用线性去趋势的方式,利用detrend函数对等间隔心率时间序列数据进行处理,得到去除线性趋势的心率时间序列;
计算波动的标准差:使用NumPy库中的numpy.std函数计算去除线性趋势的心率时间序列的标准差;得到波动标准差;
波动幅度分析:使用NumPy库中的numpy.max和numpy.min函数分别找到去除线性趋势的心率时间序列数据的最大值和最小值,将最大值和最小值之间的差值作为幅度变化的指标,得到波动幅度。
使用拟合曲线的方式可以更清晰地展示数据的趋势和分布特征,尤其适用于大量散点的情况下,Poincaré Plot用于分析心率变异性数据,通过拟合曲线可以更直观地观察到数据点的分布规律,进而对心率变异性的特征进行评估和分析。
散点大小的选择是为了在图表中突出显示数据点,使其易于观察和分析,8-12的大小范围在不过分夸大或缩小数据点的情况下能够有效展示数据,不至于使图表过于拥挤或混乱。
散点形状选择椭圆形是为了更好地反映数据点之间的相关性和分布规律,椭圆形的形状可以更准确地表达数据点之间的关系,特别是在Poincaré Plot中用于表示RR间隔数据的分布情况时,椭圆形更能凸显数据的特征。
透明度0.5-0.8的设置是为了在数据点密集的情况下减少视觉混杂,使图表更清晰易读,透明度的调整可以使重叠的数据点更容易识别,同时也有助于观察到数据的密度分布情况。
在上述的用于心率监测系统的数据处理方法中,在R波检测MATLAB软件、心率计算软件、融合MATLAB软件、时间域分析软件、频域分析软件和非线性分析软件的程序中使用try-catch结构来包裹代码块,try-catch结构为一种异常处理机制;try-catch结构包括try块和catch块;当程序执行到try块中的代码时,如果发生了异常,异常会被捕获,程序不会立即崩溃,控制流会跳转到对应的catch块;在catch块的代码中,开发者定义当异常发生时处理错误的方法,包括记录错误信息、通知用户。
采用try-catch结构原因在于:异常处理:在软件开发过程中,无法预测和避免所有可能发生的异常情况,try-catch结构能够捕获异常并提供相应的处理方式,避免程序因异常而崩溃或产生不可预料的行为;错误记录和通知:通过catch块中的代码,开发者可以定义错误处理的方法,例如记录错误信息到日志文件中、向用户显示错误提示信息或者通过邮件等方式通知相关人员,有助于及时发现和解决问题。
与现有技术相比,本用于心率监测系统的数据处理方法具有以下有益效果:
1、稳定高效的心电信号采集:采用多个电极式心率传感器采集心电信号,确保了心电信号的高质量采集,电极式心率传感器的材料选择和布局考虑了银和氯化银薄膜的使用,以及人体解剖结构和心脏电生理特性,确保了采集心电信号的稳定性。
2、信息调理的优化设计:通过并联连接信息放大单元和信息过滤单元,而不是传统的串联连接,提高了数据处理速度和效率,这种设计允许信息放大和过滤同时进行,有效降低了噪声对信号的影响,确保了后续处理阶段的高质量信号。
3、数据融合提高准确性:采用数据融合单元对不同类型信号进行融合,确保了综合心率数字数据的准确性和全面性,通过融合不同类别信号的最优部分,消除了潜在的干扰和噪声,提高了心率数据的可靠性。
4、多层次的数据分析:数据分析模块包含了R波检测、心率计算和心率变异性分析,提供了全面的心脏健康状况评估,采用MATLAB和Python编辑器等工具,保证了数据分析的高效性和准确性。
5、异常检测与报警机制:异常检测报警模块能够识别异常心率值和HRV指标,通过设定容错机制和时间窗口,减少因非正常因素导致的异常报警,报警的方式多样性,包括声音、视觉、振动报警以及通过网络发送报警信息,提高了患者和医疗监护人员对异常情况的感知和响应能力。
6、保证数据处理的连续性:电源系统包括主电源接口和充电电池模块,具备自动切换机制,确保了数据处理过程中,在外部电源不可用时仍能正常运行,充电控制单元的自动充电功能保证了充电电池的充足电量,增强了数据处理过程的稳定性和持久性。
附图说明
图1为本发明中的数据处理方法流程框图。
具体实施方式
以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
如图1所示,具体实施例一:
一种用于心率监测系统的数据处理方法,方法用于心率监测系统中,心率监测系统包括:电源装置、信息采集装置、信息调理模块、数据融合单元、数据分析模块、异常检测报警模块、显示单元和存储单元;
电源装置包括主电源接口、充电电池模块和充电控制单元;
主电源接口用于连接外部电源,当外部电源可用时,通过主电源接口为心率监测系统供电;
充电电池模块包含至少一个可充电电池,用于在外部电源不可用时为心率监测系统供电;充电电池模块采用自动切换机制,能够自动检测外部电源的状态,当外部电源可用时,自动切换至主电源接口供电,当外部电源不可用时,自动切换至充电电池模块供电;
当心率监测系统通过主电源接口供电时,利用充电控制单元自动对充电电池模块进行充电,以确保可充电电池电量的充足;
异常检测报警模块包括异常检测微处理器、异常模式识别单元和报警单元,异常模式识别单元和报警单元集成在异常检测微处理器中,
异常模式识别单元用于检测心率值和HRV指标是否异常;异常模式识别单元设有容错机制,通过设置时间窗口T,连续监测到异常数据超过T时激活报警;
异常模式识别单元的功能实现步骤如下:设定阈值:设定心率正常范围值的阈值,设定HRV指标正常值的阈值,设定T值的阈值;通过比较心率值和心率正常范围值的阈值、比较HRV指标和HRV指标正常值的阈值,判断是否异常;如果异常时间超过T值的阈值,则激活报警;
报警单元的报警方式包括常规报警和远程报警,常规报警为声音报警、视觉报警和振动报警中的至少一种,远程报警为通过网络将报警信息发送到预设的手机或医疗监控中心;
显示单元用于将心率监测系统中的数据以可视化的形式展示给用户,显示单元的显示内容包括心率曲线、当前心率值和HRV指标;显示单元具有历史数据回顾功能,以帮助用户和医疗专业人员了解患者心脏健康状况的变化趋势。
方法包括以下步骤:
S1、信息采集:通过信息采集装置采集患者的原始心率数据,捕获患者心脏的电活动,得到模拟心率数据信息,信息采集装置采用多通道心电信息同步采集的方式进行作业,以提高采集数据的准确性和可靠性,信息采集装置包括若干电极式心率传感器;
电极式心率传感器的材料包括银和氯化银,银作为电极式心率传感器的主体材料,银表面覆盖一层氯化银薄膜,氯化银薄膜用于稳定电极式心率传感器与人体皮肤接触界面的电位,减少电极电位漂移和电极极化,以提高测量的准确性和稳定性;电极式心率传感器按照人体解剖结构和心脏电生理特性,沿心电信号传导路径分布,电极式心率传感器采集频率为300Hz-1000Hz,以捕获心电信号的全部信息;
S2、信息调理:采用信息调理模块对模拟心率数据信息进行放大、过滤和数据类型转换处理;
信息调理模块包括信息放大单元和信息过滤单元,信息放大单元和信息过滤单元并联连接;
信息放大单元包括信息放大器和信息放大模拟/数字转换器,信息放大器用于放大模拟心率数据信息,以确保模拟心率数据信息的质量不被降低;信息放大模拟/数字转换器用于将经过信息放大器放大后的模拟心率数据信息转换为数字数据信息;数字数据类型编号为1类信号;
信息过滤单元包括滤波器组件和滤波模拟/数字转换器,滤波器组件用于过滤模拟心率数据信息中的非心率信息频段的噪声和干扰;滤波模拟/数字转换器用于将经过滤波器组件过滤后的模拟数据信息转为数字数据信息;数字数据类型编号为2类信号;
信号放大器具体为仪表放大器,仪表放大器工作参数如下:增益设置为100-1000倍;输入阻抗大于1MΩ,以降低从人体到信号放大器输入端的信号损失;
输入等效噪声电压低于10μV RMS,用于降低信号放大器本身引入的噪声,确保准确放大微弱的心电信号;
共模抑制比高于100dB,以抑制由于电极式传感器放置不当或电源线干扰引起的共模信号;
滤波器组件包括高通滤波器、陷波滤波器和低通滤波器,高通滤波器串联于陷波滤波器,陷波滤波器串联于低通滤波器;
高通滤波器截止频率为0.5Hz,用于去除低频噪声和基线漂移,同时保留心电信号的低频成分;
陷波滤波器的中心频率设为当地电源的频率,以消除电源线干扰;
低通滤波器的截止频率为250-300Hz,用于消除电器干扰或肌电信号,同时保证心电信号的高频成分不被削弱。
S3、数据融合:采用数据融合单元对1类信号的数字数据和2类信号的数字数据进行融合,得到综合心率数字数据;
数据融合单元配置数字信号融合微处理器,数据融合单元功能的实现基于融合MATLAB软件;
数据融合单元功能实现步骤如下:
A1、接收数据:接收信号放大模拟/数字转换器传输的1类信号的数字数据和滤波模拟/数字转换器传输的2类信号的数字数据;
A2、时间戳对齐:在数字信号处理器中,根据时间戳信息对1类信号的数字数据和2类信号的数字数据进行对齐,保持数字数据在时间上的一致性;
A3、融合:采用将1类信号的数字数据和2类信号的数字数据的最优部分进行融合的策略进行合并,得到综合心率数字数据;
融合功能实现的具体过程如下:
A3.1导入数据:通过融合MATLAB软件中的数据采集工具,将1类信号数字数据和2类信号数字数据导入到融合MATLAB软件中;
A3.2定义最优性准则:选择信噪比作为最优性评价标准;
A3.3信号分割:通过融合MATLAB软件的buffer函数将1类信号和2类信号分割成若干片段;信号分割具体操作如下:
A3.3.1对1类信号使用buffer函数,将1类信号分割成若干长度为n的片段,若干片段组合一个矩阵1,矩阵1的每列代表一个片段;
A3.3.2对2类信号使用buffer函数,将2类信号分割成若干长度为n的片段,若干片段组合一个矩阵2,矩阵2的每列代表一个片段;
n值为180-600;
A3.3.3处理余数:若信号长度不能被n整除,最后一个片段通过零填充达到指定长度,以确保所有片段长度一致;
A3.4计算每个片段的最优性:对于每个片段,使用信噪比作为标准计算最优性;具体操作如下:
A3.4.1遍历片段:对于1类信号的每个片段和2类信号的每个片段,分别进行遍历,遍历片段过程通过遍历每个片段的索引号实现,索引号代表片段在所属矩阵中的列数;
A3.4.2计算信噪比:对每个遍历到的片段,使用融合MATLAB软件中的snr函数计算信噪比;
A3.4.3存储结果:将每个片段的信噪比存储在相应的数组中,对于1类信号的片段,信噪比存储在数组snr1中;对于2类信号的片段,信噪比存储在数组snr2中;
A3.5选择最优片段:对于每个片段,比较1类信号和2类信号的最优性,选择最优片段;具体操作如下:
A3.5.1初始化最优片段矩阵:创建一个与1类信号片段和2类信号片段的矩阵同样大小的最优片段矩阵,用于存放选择后的最优片段;
A3.5.2遍历每个片段:通过循环遍历1类信号和2类信号的每个片段,在每次循环中,处理当前的片段索引;
A3.5.3比较信噪比:对于每个片段,比较1类信号和2类信号的信噪比;
A3.5.4选择最优片段:如果1类信号的当前片段的信噪比高于2类信号的相应片段,则将1类信号的片段选为最优片段,否则选择2类信号的片段;
A3.5.5存储最优片段:将选定的最优片段存储到初始化的最优片段矩阵中,对应于当前处理的片段索引;
A3.6重构信号:将选定的最优片段通过拼接的方式重新连接成一个完整的信号,具体操作如下:
A3.6.1初始化信号:创建一个空的数组,用于存放最终重构的信号;
A3.6.2遍历选择的片段:按照时间顺序,逐一遍历最优片段,
A3.6.3拼接信号段:将每个选定的最优片段按时间顺序添加到重构信号的末尾;得到重构信号;
A3.7平滑处理:对于重构信号使用滑动平均的方法来处理,以实现平滑过渡,具体操作如下:
A3.7.1确定平滑窗口大小:设定一个窗口大小记为m,m平滑处理时连续数据点的数量;m值为5-20;
A3.7.2应用滑动平均方法:使用融合MATLAB软件中的smoothdata函数,采用滑动平均的方法对重构信号进行处理,滑动平均操作基于前面设定的窗口大小m,通过计算窗口内所有数据点的平均值来更新每个点的值,作为新的信号值,得到综合心率数字数据。
A4、输出:将综合心率数字数据的信息传输至数据分析模块;
S4、数据分析:采用数据分析模块对综合心率数字数据依次进行R波检测、心率计算和心率变异性分析;
数据分析模块包括数据分析微处理器、R波检测单元、心率计算单元和心率变异性分析单元;R波检测单元、心率计算单元和心率变异性分析单元集成于数据分析微处理器中;
数据分析模块的工作步骤如下:
B1、R波检测:将综合心率数字数据传输至R波检测单元,利用R波检测单元识别综合心率数字数据的R波,输出R波位置信息,R波为心室收缩的波峰;R波检测单元功能的实现基于R波检测MATLAB软件;
R波检测的具体步骤如下:
B1.1数据导入:使用R波检测MATLAB软件中的load或readtable函数导入从数据融合单元传输的综合心率数字数据;
B1.2归一化:使用R波检测MATLAB中normalize函数对综合心率数字数据进行归一化处理;
B1.3确定R波位置信息:利用R波检测MATLAB软件中的findpeaks函数对经过归一化处理综合心率数字数据进行处理,得到R波位置信息;
findpeaks函数用于识别局部最大值,用于R波峰值检测,在findpeaks函数的计算过程中,最小峰值设为0.1mV-0.2mV,最小峰值间距为240-2000ms。
B2、心率计算:心率计算单元接收R波检测单元输出的R波位置信息,利用R波位置信息计算RR间隔,得出心率值,RR间隔为连续两个R波之间的时间间隔;心率计算单元功能的实现基于配有Python编辑器的心率计算软件;
心率计算的具体过程如下:
B2.1导入:在Python编辑器中导入用于数据处理的NumPy库和SciPy库,从SciPy库中导入find_peaks函数,NumPy库用于支持维度数组与矩阵运算,find_peaks为寻找一维数组的局部最大值的函数,用来检测数据中的R波;
B2.2从R波检测单元接收R波位置信息:从NumPy库中导入np.array函数,采用np.array函数将从R波检测单元获得的R波位置信息转换为NumPy数组,NumPy数组存储了所有检测到的R波的位置,NumPy数组中的每个元素都代表一个R波的位置;
B2.3通过计算R波位置数组的差分来计算连续两个R波之间的时间间隔:从NumPy库中导入np.diff函数,利用np.diff函数计算数组中连续元素之间的差值,计算得到的结果为RR时间间隔;RR时间间隔为连续两个R波之间的时间间隔;
B2.4心率值计算:
B2.4.1确定采样频率:采样频率为300-1000Hz,采样频率为每秒钟记录的数据采样点数;
B2.4.2转换为秒:将RR时间间隔从采样点数转换为秒;
B2.4.3计算平均值:使用NumPy库的np.mean函数计算所有RR间隔的平均时间长度;
B2.4.4通过将60除以平均时间长度得到心率值,心率值为每分钟的心跳次数;
B2.5输出心率值:通过采用Python中的print函数对心率值进行输出,输出的心率值保留两位小数。
B3、心率变异性分析:心率变异性分析单元对RR间隔进行时间域、频域和非线性分析后,提取HRV指标,HRV指标包括时间域指标、频域指标和非线性分析指标;
时间域指标包括SDNN、RMSSD、NN50和pNN50;SDNN为RR间隔标准差,反映心跳间隔的总体变异性;RMSSD为连续RR间隔差值的均方根,反映快速变化的心率变异性,与副交感神经活动相关;NN50是相邻RR间隔差超过50ms的次数;pNN50是NN50占总心跳次数的百分比,反映心率的快速变化;
时间域指标的获取基于心率变异性分析单元配置的带有Python编辑器的时间域分析软件;获取时间域指标具体过程如下;
B3.t1导入数据:将RR间隔数据导入配有Python编辑器的时间域分析软件中,在Python编辑器导入NumPy库;
B3.t2计算时间域指标:SDNN:使用NumPy库中的std函数计算所有RR间隔的标准差,得到SDNN值;
RMSSD:使用NumPy库中的numpy.diff来计算连续RR间隔的差值;使用NumPy库中的numpy.mean来计算差值平方的均值;使用NumPy库中的numpy.sqrt来计算均值的平方根,得到RMSSD值;
NN50:使用NumPy库中的numpy.diff函数来计算连续RR间隔的差值;使用NumPy库中的numpy.abs函数来计算差值的绝对值;使用NumPy库中的numpy.sum函数来统计绝对值大于50ms的次数,得到NN50值;
pNN50:将NN50除以总的RR间隔数量,将结果乘以100,得到pNN50的百分比值。
频域指标包括LF、HF和LF/HF比率,LF为低频分量,反映交感神经和副交感神经的共同作用结果;HF为高频分量,反映副交感神经活动,特别是与呼吸相关的心率变异;LF/HF比率为LF与HF的比值,LF/HF比率被用来评估交感神经和副交感神经之间的平衡;
频域指标的获取基于心率变异性分析单元配置含有Python编辑器的频域分析软件;获取频域指标具体过程如下:
B3.F1导入:在Python编辑器中导入NumPy库、SciPy库,加载RR间隔数据:将RR间隔的数据导入时间域分析软件中;
B3.F2插值:
B3.F2.1定义采样率:采样率的值2-4Hz,每秒生成2-4个数据点;
B3.F2.2计算插值后的时间点:使用NumPy库中的numpy.cumsum函数计算累计和,将RR间隔数组转换为时间数组,然后根据定义的采样率生成一个等间隔的时间向量,时间向量覆盖了从0秒到最后一个RR间隔时间点的整个时间范围;
B3.F2.3进行插值:利用NumPy库的numpy.interp函数进行线性插值,interp函数会在新的时间点上插值原始数据点,得到等间隔心率时间序列数据;
B3.F3去趋势:导入SciPy库中的detrend函数,采用线性去趋势的方式,利用detrend函数对等间隔心率时间序列数据进行处理,得到去除线性趋势的心率时间序列;
B3.F4使用Welch方法计算功率谱密度:Welch方法包括以下内容:
B3.F4.1信号分段:将等间隔心率时间序列数据分割成多个长度相同的重叠段;
B3.F4.2窗函数应用:对每个段应用汉宁窗函数,用于减少信号两端的不连续性,
B3.F4.3快速傅里叶变换:对每个窗函数处理后的段执行快速傅里叶变换,将时域信号转换为频域信号,生成每个段的频谱;
B3.F4.4功率谱密度计算:对每个段的频谱求平方,得到每个段的功率谱密度,功率谱密度反映了信号在不同频率下的功率分布;
B3.F4.5平均功率谱密度:将所有段的功率谱密度在相同的频率点上进行平均,得到整个时间序列的平均功率谱密度;
Welch方法使用SciPy库中的scipy.signal.welch函数实现,调用welch函数时,welch函数参数设置如下:数据的采样率为2-4Hz;每个段的长度为256-1024数据点;相邻段之间的重叠数据点数为每个段长度的40%-50%;
B3.F5提取频域指标:
LF:筛选出处于0.04-0.15赫兹的频率点及对应的平均功率谱密度值,然后利用NumPy库中numpy.trapz函数进行积分,得到LF;
HF:筛选出处于0.15-0.4赫兹的频率点及对应的平均功率谱密度值,然后利用NumPy库中numpy.trapz函数进行积分,得到HF;
LF/HF比率:LF/HF比率是通过将LF除以HF得到。
非线性分析指标包括Poincaré Plot指标、样本熵指标和去趋势波动分析指标,Poincaré Plot指标为一种散点图,用于可视化RR间隔的变化,在Poincaré Plot指标中包括SD1主轴和SD2主轴,SD1主轴代表心率的短期变异性;SD2主轴代表心率长期变异性;
样本熵指标用于衡量心脏自主神经系统对心率的控制程度;去趋势波动分析指标包括波动标准差和波动幅度,波动标准差表示为心率变异性中的变化程度;波动幅度为衡量心率在不同时间段内的振幅。
非线性分析指标的获取基于心率变异性分析单元配置含有Python编辑器的非线性分析软件;获取非线性分析指标具体过程如下:
B3.n.1在Python编辑器中导入NumPy库、Matplotlib库、HeartPy库和SciPy库;
B3.n.2获取Poincaré Plot指标:使用NumPy库中的numpy.array函数将RR间隔数据转换为NumPy数组,通过对NumPy数组切片操作获取了当前RR间隔和后继RR间隔数据;
计算当前RR间隔与后继RR间隔之间的差值,作为RR间隔的一阶差分;
将一阶差分作为x坐标,将一阶差分的延迟一步的值作为y坐标,得到PoincaréPlot中的散点数据;
使用Matplotlib库中的 scatter函数采用拟合曲线的方式绘制散点图,其中,x坐标表示当前RR间隔的一阶差分,y坐标表示后继RR间隔的一阶差分,设定散点大小为8-12,散点形状为椭圆形;透明度为0.5-0.8;在椭圆形中短轴长度和长轴长度,分别作为SD1主轴和SD2主轴的值;
B3.n.3样本熵指标计算:加载等间隔心率时间序列数据;利用HeartPy库中sample_entropy函数对等间隔心率时间序列数据计算,得到样本熵指标;
B3.n.4获取去趋势波动分析指标:导入SciPy库中的detrend函数,采用线性去趋势的方式,利用detrend函数对等间隔心率时间序列数据进行处理,得到去除线性趋势的心率时间序列;
计算波动的标准差:使用NumPy库中的numpy.std函数计算去除线性趋势的心率时间序列的标准差;得到波动标准差;
波动幅度分析:使用NumPy库中的numpy.max和numpy.min函数分别找到去除线性趋势的心率时间序列数据的最大值和最小值,将最大值和最小值之间的差值作为幅度变化的指标,得到波动幅度。
在R波检测MATLAB软件、心率计算软件、融合MATLAB软件、时间域分析软件、频域分析软件和非线性分析软件的程序中使用try-catch结构来包裹代码块,try-catch结构为一种异常处理机制;try-catch结构包括try块和catch块;当程序执行到try块中的代码时,如果发生了异常,异常会被捕获,程序不会立即崩溃,控制流会跳转到对应的catch块;在catch块的代码中,开发者定义当异常发生时处理错误的方法,包括记录错误信息、通知用户。
具体实施例二:融合功能实现的具体过程如下:
A3.1导入数据:通过MATLAB软件中的数据采集工具,将1类信号和2类信号导入到MATLAB中。
A3.2定义最优性准则::选择信噪比作为最优性评价标准;
A3.3信号分割:通过MATLAB的buffer函数将两个信号分割成若干片段;具体操作如下:
segmentLength = n;
signal1Segments = buffer(signal1, segmentLength);
signal2Segments = buffer(signal2, segmentLength);
其中,segmentLength为每个要分割成的片段的长度,n表示每个片段包含n个数据点;
signal1Segments = buffer(signal1, segmentLength)应用于1类信号,signal1是需要被分割的1类信号的原始数字数据,为一个一位数组,包括若干数据点;signal1Segments是buffer函数的输出,为一个矩阵,矩阵的每一列代表signal1分割后的一个片段,当signal1的长度不能被segmentLength整除,最后一个段被填充零,以达到指定的长度;
signal2Segments = buffer(signal2, segmentLength)应用于应用于2类信号,signal2是需要被分割的2类信号的原始数字数据,为一个一位数组,包括若干数据点;signal2Segments是buffer函数的输出,为一个矩阵,矩阵的每一列代表signal2分割后的一个片段,当signal2的长度不能被segmentLength整除,最后一个段被填充零,以达到指定的长度;
buffer函数用于将两个长信号signal1和signal2分割成若干个长度为segmentLength的片段,分别存储在signal1Segments和signal2Segments矩阵中;
A3.4计算每个片段的最优性:对于每个片段,使用信噪比的标准计算;具体操作如下:
snr1 = arrayfun(@(x) snr(signal1Segments(:,x)), 1:size(signal1Segments,2))
snr2 = arrayfun(@(x) snr(signal2Segments(:,x)), 1:size(signal2Segments,2));
其中,arrayfun是MATLAB中的一个函数,被用来遍历信号的每个片段,并对每个片段应用snr函数计算信噪比;
@(x)是MATLAB中的匿名函数语法,@(x)定义一个以x为变量的匿名函数,x代表的是信号片段的索引号,
snr(signal1Segments(:,x))是调用MATLAB的snr函数来计算1类信号片段的信噪比,signal1Segments(:,x)表示从signal1Segments矩阵中取出的第x列,第x列为1类信号的第x个片段,snr函数会返回x片段的信噪比值;1:size(signal1Segments,2)是一个从1到signal1Segments矩阵列数的整数序列,代表1类信号片段的索引号;size(signal1Segments,2)计算signal1Segments的列数,代表1类信号被分割成的片段总数;
snr(signal2Segments(:,x))是调用MATLAB的snr函数来计算2类信号片段的信噪比,signal2Segments(:,x)表示从signal2Segments矩阵中取出的第x列,第x列为2类信号的第x个片段,snr函数会返回x片段的信噪比值;1:size(signal2Segments,2)是一个从1到signal2Segments矩阵列数的整数序列,代表2类信号片段的索引号;size(signal2Segments,2)计算signal2Segments的列数,代表2类信号被分割成的片段总数;
snr1和snr2为数组,表示计算并存储了1类信号和2类信号所有片段的信噪比,snr1存储了1类的每个片段的信噪比,snr2存储了2类的每个片段的信噪比;
A3.5选择最优段:对于每个片段,比较1类信号和2类信号最优性,选择最优片段;具体操作如下:
selectedSegments = zeros(size(signal1Segments));
for i = 1:size(signal1Segments, 2);
if snr1(i) > snr2(i)
selectedSegments(:,i) = signal1Segments(:,i);
else
selectedSegments(:,i) = signal2Segments(:,i);
end
end
其中,selectedSegments = zeros(size(signal1Segments))表示初始化一个与signal1Segments大小相同的矩阵,用于存放选择后的最优片段;
for i = 1:size(signal1Segments, 2) 表示通过一个for循环遍历每个信号类型,i是当前正在处理的数据类型的索引;
if snr1(i) > snr2(i) 表示如果1类信号的第i段的snr大于2类信号的第i段;
selectedSegments(:,i) = signal1Segments(:,i)表示为选择1类信号的第i段作为最优片段;
else
selectedSegments(:,i) = signal2Segments(:,i),表示为:否则,选择2类信号的第i段作为最优片段
A3.6重构信号:将选定的最优段通过拼接的方式重新连接成一个完整的数据类型,具体操作如下:
mergedSignal = reshape(selectedSegments, [], 1);其中selectedSegments是一个矩阵,其包含了所有被选定为最优的片段;reshape函数用于将 selectedSegments矩阵重新构造成一个单一的列向量,重新构造成一个单一的列向量过程为将所有选定的最优片段按顺序连接起来,形成一个连续的信号;reshape(selectedSegments, [], 1) 中的 [] 表示自动计算该维度的大小,以便将 selectedSegments 的所有元素重新排列成一个列向量,1 表示最终的列向量只有一列;
A3.7平滑处理:针对合并点存在不连续性情况,使用滑动平均技术来处理,以实现平滑过渡,具体操作如下:
windowSize = m;
mergedSignalSmooth = smoothdata(mergedSignal, 'movmean', windowSize);
windowSize = m表示设置平滑处理时使用的窗口大小,窗口大小设为m,进行平滑处理时,每次计算m个连续数据点的平均值;windowSize 作为参数传递,定义滑动平均中邻近点的数量;
smoothdata 是MATLAB中用于数据平滑的内置函数,mergedSignal 是待处理的合并后的信号;'movmean' 是指定平滑方法为滑动平均。
具体实施例三:心率值计算过程如下:
B2.1在Python编辑器中导入用于数据处理的NumPy库和SciPy库;具体操作如下:
mport numpy as np
from scipy.signal import find_peaks
其中,import numpy as np:这行代码表示导入了NumPy库,并简称为np,NumPy是Python的一个库,用于支持维度数组与矩阵运算,对数组运算提供数学函数库,在心率计算过程中,用于数据处理和数学运算;
from scipy.signal import find_peaks:这行代码表示从SciPy的signal模块导入find_peaks函数;find_peaks是用于寻找一维数组的局部最大值的函数,在数据分析中,用来检测数据中的R波。
B2.2从R波检测单元接收R波位置信息;具体操作如下:
r_wave_positions = np.array([...]);
其中,np.array([...])是NumPy库的函数,用于创建一个数组,np.array()函数用于将R波的位置信息转换成NumPy数组,NumPy数组中的每个元素都代表一个R波的位置,R波的位置数据由R波检测单元传递过来;
r_wave_positions是一个变量名,用于存储由np.array()函数创建的NumPy数组;NumPy数组包含了所有检测到的R波的位置信息;
[...]:是一个占位符,代表实际的R波位置数据填充位置,
B2.3通过计算R波位置数组的差分来计算连续两个R波之间的时间间隔,具体步骤如下:
rr_intervals = np.diff(r_wave_positions),
其中np.diff(...)是NumPy库中的一个函数,用于计算数组中连续元素之间的差值;具体的说np.diff(arr)会返回一个新数组,新数组中的每个元素都是原数组array中相邻元素之差;
r_wave_positions是一个数组,包含R波的位置信息,表示心数据中R波具体位置索引;
rr_intervals = ...: 这行代码的作用是计算连续两个R波之间的时间间隔,即RR间隔,通过np.diff(r_wave_positions)计算得到的结果为RR间隔,rr_intervals变量被赋值为R波位置差分的结果,为连续两个R波之间的间隔数组。
B2.4心率可以通过以下公式计算:心率(次/分钟)= (60 \div RR间隔的平均值),具体操作如下:
fs = x
rr_intervals_seconds = rr_intervals / fs
average_rr_interval = np.mean(rr_intervals_seconds)
heart_rate = 60 / average_rr_interval
其中,fs为采用频率,这个值根据数据采集设备的具体参数而定;
rr_intervals_seconds = rr_intervals / fs
rr_intervals_seconds是一个新的变量,用于存储转换为秒的RR间隔时间;
rr_intervals:通过计算得到的连续两个R波之间的间隔,单位是采样点数;
/:除法操作符,用于将RR间隔转换为秒,通过将RR间隔除以采样频率(fs)来实现;
average_rr_interval = np.mean(rr_intervals_seconds);
average_rr_interval是个变量,用于存储RR间隔的平均值,单位是秒;
np.mean()是NumPy库的一个函数,用于计算给定数据的平均值,被用来计算rr_intervals_seconds数组中所有元素的平均值,为计算所有RR间隔的平均时间长度;
rr_intervals_seconds:转换为秒的RR间隔时间数组;
eart_rate = 60 / average_rr_interval:heart_rate:作为变量用于存储计算出的心率,单位是每分钟的心跳次数,/:除法操作符,用于计算心率;average_rr_interval:RR间隔的平均值。
B2.5输出心率值:通过采用Python中的print函数对心率值进行输出,输出的心率值保留两位小数。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所定义的范围。虽然在附图和前述描述中详细说明和描述了本发明,但此类说明和描述被认为是例示性的或示例性的而非限制性的。应当理解,在以下权利要求书的范围内,普通技术人员可作出改变和修改。具体地,本发明涵盖具有来自上述不同实施方案的特征的任何组合的另外的实施方案。就使用表达“一般”或“基本上”而言,本专利申请应理解为公开同样完全满足这些特征和值,即没有前述表征为“一般”或“基本上”。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

Claims (10)

1.一种用于心率监测系统的数据处理方法,所述方法用于心率监测系统中,心率监测系统包括:电源装置、信息采集装置、信息调理模块、数据融合单元、数据分析模块、异常检测报警模块、显示单元和存储单元;
其特征在于,所述方法包括以下步骤:
S1、信息采集:通过信息采集装置采集患者的原始心率数据,捕获患者心脏的电活动,得到模拟心率数据信息,信息采集装置采用多通道心电信息同步采集的方式进行作业,以提高采集数据的准确性和可靠性,信息采集装置包括若干电极式心率传感器;
S2、信息调理:采用信息调理模块对模拟心率数据信息进行放大、过滤和数据类型转换处理;
信息调理模块包括信息放大单元和信息过滤单元,信息放大单元和信息过滤单元并联连接;
信息放大单元包括信息放大器和信息放大模拟/数字转换器,信息放大器用于放大模拟心率数据信息,以确保模拟心率数据信息的质量不被降低;信息放大模拟/数字转换器用于将经过信息放大器放大后的模拟心率数据信息转换为数字数据信息;数字数据类型编号为1类信号;
信息过滤单元包括滤波器组件和滤波模拟/数字转换器,滤波器组件用于过滤模拟心率数据信息中的非心率信息频段的噪声和干扰;滤波模拟/数字转换器用于将经过滤波器组件过滤后的模拟数据信息转为数字数据信息;数字数据类型编号为2类信号;
S3、数据融合:采用数据融合单元对1类信号的数字数据和2类信号的数字数据进行融合,得到综合心率数字数据;
数据融合单元配置数字信号融合微处理器,数据融合单元功能的实现基于融合MATLAB软件;
数据融合单元功能实现步骤如下:
A1、接收数据:接收信号放大模拟/数字转换器传输的1类信号的数字数据和滤波模拟/数字转换器传输的2类信号的数字数据;
A2、时间戳对齐:在数字信号处理器中,根据时间戳信息对1类信号的数字数据和2类信号的数字数据进行对齐,保持数字数据在时间上的一致性;
A3、融合:采用将1类信号的数字数据和2类信号的数字数据的最优部分进行融合的策略进行合并,得到综合心率数字数据;
A4、输出:将综合心率数字数据的信息传输至数据分析模块;
S4、数据分析:采用数据分析模块对综合心率数字数据依次进行R波检测、心率计算和心率变异性分析;
数据分析模块包括数据分析微处理器、R波检测单元、心率计算单元和心率变异性分析单元;R波检测单元、心率计算单元和心率变异性分析单元集成于数据分析微处理器中;
数据分析模块的工作步骤如下:
B1、R波检测:将综合心率数字数据传输至R波检测单元,利用R波检测单元识别综合心率数字数据的R波,输出R波位置信息,R波为心室收缩的波峰;R波检测单元功能的实现基于R波检测MATLAB软件;
B2、心率计算:心率计算单元接收R波检测单元输出的R波位置信息,利用R波位置信息计算RR间隔,得出心率值,RR间隔为连续两个R波之间的时间间隔;心率计算单元功能的实现基于配有Python编辑器的心率计算软件;
B3、心率变异性分析:心率变异性分析单元对RR间隔进行时间域、频域和非线性分析后,提取HRV指标,HRV指标包括时间域指标、频域指标和非线性分析指标;
时间域指标包括SDNN、RMSSD、NN50和pNN50;SDNN为RR间隔标准差,反映心跳间隔的总体变异性;RMSSD为连续RR间隔差值的均方根,反映快速变化的心率变异性,与副交感神经活动相关;NN50是相邻RR间隔差超过50ms的次数;pNN50是NN50占总心跳次数的百分比,反映心率的快速变化;
频域指标包括LF、HF和LF/HF比率,LF为低频分量,反映交感神经和副交感神经的共同作用结果;HF为高频分量,反映副交感神经活动,特别是与呼吸相关的心率变异;LF/HF比率为LF与HF的比值,LF/HF比率被用来评估交感神经和副交感神经之间的平衡;
非线性分析指标包括Poincaré Plot指标、样本熵指标和去趋势波动分析指标,Poincaré Plot指标为一种散点图,用于可视化RR间隔的变化,在Poincaré Plot指标中包括SD1主轴和SD2主轴,SD1主轴代表心率的短期变异性;SD2主轴代表心率长期变异性;
样本熵指标用于衡量心脏自主神经系统对心率的控制程度;去趋势波动分析指标包括波动标准差和波动幅度,波动标准差表示为心率变异性中的变化程度;波动幅度为衡量心率在不同时间段内的振幅。
2.如权利要求1所述的用于心率监测系统的数据处理方法,其特征在于,电源装置包括主电源接口、充电电池模块和充电控制单元;
主电源接口用于连接外部电源,当外部电源可用时,通过主电源接口为心率监测系统供电;
充电电池模块包含至少一个可充电电池,用于在外部电源不可用时为心率监测系统供电;充电电池模块采用自动切换机制,能够自动检测外部电源的状态,当外部电源可用时,自动切换至主电源接口供电,当外部电源不可用时,自动切换至充电电池模块供电;
当心率监测系统通过主电源接口供电时,利用充电控制单元自动对充电电池模块进行充电,以确保可充电电池电量的充足;
在步骤S1中,电极式心率传感器的材料包括银和氯化银,银作为电极式心率传感器的主体材料,银表面覆盖一层氯化银薄膜,氯化银薄膜用于稳定电极式心率传感器与人体皮肤接触界面的电位,减少电极电位漂移和电极极化,以提高测量的准确性和稳定性;电极式心率传感器按照人体解剖结构和心脏电生理特性,沿心电信号传导路径分布,电极式心率传感器采集频率为300Hz-1000Hz,以捕获心电信号的全部信息;
异常检测报警模块包括异常检测微处理器、异常模式识别单元和报警单元,异常模式识别单元和报警单元集成在异常检测微处理器中,
异常模式识别单元用于检测心率值和HRV指标是否异常;异常模式识别单元设有容错机制,通过设置时间窗口T,连续监测到异常数据超过T时激活报警;
异常模式识别单元的功能实现步骤如下:设定阈值:设定心率正常范围值的阈值,设定HRV指标正常值的阈值,设定T值的阈值;通过比较心率值和心率正常范围值的阈值、比较HRV指标和HRV指标正常值的阈值,判断是否异常;如果异常时间超过T值的阈值,则激活报警;
报警单元的报警方式包括常规报警和远程报警,常规报警为声音报警、视觉报警和振动报警中的至少一种,远程报警为通过网络将报警信息发送到预设的手机或医疗监控中心;
显示单元用于将心率监测系统中的数据以可视化的形式展示给用户,显示单元的显示内容包括心率曲线、当前心率值和HRV指标;显示单元具有历史数据回顾功能,以帮助用户和医疗专业人员了解患者心脏健康状况的变化趋势。
3.如权利要求1所述用于心率监测系统的数据处理方法,其特征在于,在步骤S2中,信号放大器具体为仪表放大器,仪表放大器工作参数如下:增益设置为100-1000倍;输入阻抗大于1MΩ,以降低从人体到信号放大器输入端的信号损失;
输入等效噪声电压低于10μV RMS,用于降低信号放大器本身引入的噪声,确保准确放大微弱的心电信号;
共模抑制比高于100dB,以抑制由于电极式传感器放置不当或电源线干扰引起的共模信号;
滤波器组件包括高通滤波器、陷波滤波器和低通滤波器,高通滤波器串联于陷波滤波器,陷波滤波器串联于低通滤波器;
高通滤波器截止频率为0.5Hz,用于去除低频噪声和基线漂移,同时保留心电信号的低频成分;
陷波滤波器的中心频率设为当地电源的频率,以消除电源线干扰;
低通滤波器的截止频率为250-300Hz,用于消除电器干扰或肌电信号,同时保证心电信号的高频成分不被削弱。
4.如权利要求1所述用于心率监测系统的数据处理方法,其特征在于,在步骤S3中的A3中,融合功能实现的具体过程如下:
A3.1导入数据:通过融合MATLAB软件中的数据采集工具,将1类信号数字数据和2类信号数字数据导入到融合MATLAB软件中;
A3.2定义最优性准则:选择信噪比作为最优性评价标准;
A3.3信号分割:通过融合MATLAB软件的buffer函数将1类信号和2类信号分割成若干片段;信号分割具体操作如下:
A3.3.1对1类信号使用buffer函数,将1类信号分割成若干长度为n的片段,若干片段组合一个矩阵1,矩阵1的每列代表一个片段;
A3.3.2对2类信号使用buffer函数,将2类信号分割成若干长度为n的片段,若干片段组合一个矩阵2,矩阵2的每列代表一个片段;
n值为180-600;
A3.3.3处理余数:若信号长度不能被n整除,最后一个片段通过零填充达到指定长度,以确保所有片段长度一致;
A3.4计算每个片段的最优性:对于每个片段,使用信噪比作为标准计算最优性;具体操作如下:
A3.4.1遍历片段:对于1类信号的每个片段和2类信号的每个片段,分别进行遍历,遍历片段过程通过遍历每个片段的索引号实现,索引号代表片段在所属矩阵中的列数;
A3.4.2计算信噪比:对每个遍历到的片段,使用融合MATLAB软件中的snr函数计算信噪比;
A3.4.3存储结果:将每个片段的信噪比存储在相应的数组中,对于1类信号的片段,信噪比存储在数组snr1中;对于2类信号的片段,信噪比存储在数组snr2中;
A3.5选择最优片段:对于每个片段,比较1类信号和2类信号的最优性,选择最优片段;具体操作如下:
A3.5.1初始化最优片段矩阵:创建一个与1类信号片段和2类信号片段的矩阵同样大小的最优片段矩阵,用于存放选择后的最优片段;
A3.5.2遍历每个片段:通过循环遍历1类信号和2类信号的每个片段,在每次循环中,处理当前的片段索引;
A3.5.3比较信噪比:对于每个片段,比较1类信号和2类信号的信噪比;
A3.5.4选择最优片段:如果1类信号的当前片段的信噪比高于2类信号的相应片段,则将1类信号的片段选为最优片段,否则选择2类信号的片段;
A3.5.5存储最优片段:将选定的最优片段存储到初始化的最优片段矩阵中,对应于当前处理的片段索引;
A3.6重构信号:将选定的最优片段通过拼接的方式重新连接成一个完整的信号,具体操作如下:
A3.6.1初始化信号:创建一个空的数组,用于存放最终重构的信号;
A3.6.2遍历选择的片段:按照时间顺序,逐一遍历最优片段,
A3.6.3拼接信号段:将每个选定的最优片段按时间顺序添加到重构信号的末尾;得到重构信号;
A3.7平滑处理:对于重构信号使用滑动平均的方法来处理,以实现平滑过渡,具体操作如下:
A3.7.1确定平滑窗口大小:设定一个窗口大小记为m,m平滑处理时连续数据点的数量;m值为5-20;
A3.7.2应用滑动平均方法:使用融合MATLAB软件中的smoothdata函数,采用滑动平均的方法对重构信号进行处理,滑动平均操作基于前面设定的窗口大小m,通过计算窗口内所有数据点的平均值来更新每个点的值,作为新的信号值,得到综合心率数字数据。
5.如权利要求1所述用于心率监测系统的数据处理方法,其特征在于,在步骤S4中B1中,R波检测的具体步骤如下:
B1.1数据导入:使用R波检测MATLAB软件中的load或readtable函数导入从数据融合单元传输的综合心率数字数据;
B1.2归一化:使用R波检测MATLAB中normalize函数对综合心率数字数据进行归一化处理;
B1.3确定R波位置信息:利用R波检测MATLAB软件中的findpeaks函数对经过归一化处理综合心率数字数据进行处理,得到R波位置信息;
findpeaks函数用于识别局部最大值,用于R波峰值检测,在findpeaks函数的计算过程中,最小峰值设为0.1mV-0.2mV,最小峰值间距为240-2000ms。
6.如权利要求1所述用于心率监测系统的数据处理方法,其特征在于,在步骤S4的B2中,心率计算的具体过程如下:
B2.1导入:在Python编辑器中导入用于数据处理的NumPy库和SciPy库,从SciPy库中导入find_peaks函数,NumPy库用于支持维度数组与矩阵运算,find_peaks为寻找一维数组的局部最大值的函数,用来检测数据中的R波;
B2.2从R波检测单元接收R波位置信息:从NumPy库中导入np.array函数,采用np.array函数将从R波检测单元获得的R波位置信息转换为NumPy数组,NumPy数组存储了所有检测到的R波的位置,NumPy数组中的每个元素都代表一个R波的位置;
B2.3通过计算R波位置数组的差分来计算连续两个R波之间的时间间隔:从NumPy库中导入np.diff函数,利用np.diff函数计算数组中连续元素之间的差值,计算得到的结果为RR时间间隔;RR时间间隔为连续两个R波之间的时间间隔;
B2.4心率值计算:
B2.4.1确定采样频率:采样频率为300-1000Hz,采样频率为每秒钟记录的数据采样点数;
B2.4.2转换为秒:将RR时间间隔从采样点数转换为秒;
B2.4.3计算平均值:使用NumPy库的np.mean函数计算所有RR间隔的平均时间长度;
B2.4.4通过将60除以平均时间长度得到心率值,心率值为每分钟的心跳次数;
B2.5输出心率值:通过采用Python中的print函数对心率值进行输出,输出的心率值保留两位小数。
7.如权利要求1所述用于心率监测系统的数据处理方法,其特征在于,在步骤S4的B3中,时间域指标的获取基于心率变异性分析单元配置的带有Python编辑器的时间域分析软件;获取时间域指标具体过程如下;
B3.t1导入数据:将RR间隔数据导入配有Python编辑器的时间域分析软件中,在Python编辑器导入NumPy库;
B3.t2计算时间域指标:SDNN:使用NumPy库中的std函数计算所有RR间隔的标准差,得到SDNN值;
RMSSD:使用NumPy库中的numpy.diff来计算连续RR间隔的差值;使用NumPy库中的numpy.mean来计算差值平方的均值;使用NumPy库中的numpy.sqrt来计算均值的平方根,得到RMSSD值;
NN50:使用NumPy库中的numpy.diff函数来计算连续RR间隔的差值;使用NumPy库中的numpy.abs函数来计算差值的绝对值;使用NumPy库中的numpy.sum函数来统计绝对值大于50ms的次数,得到NN50值;
pNN50:将NN50除以总的RR间隔数量,将结果乘以100,得到pNN50的百分比值。
8.如权利要求1所述用于心率监测系统的数据处理方法,其特征在于,在步骤S4中B3中,频域指标的获取基于心率变异性分析单元配置含有Python编辑器的频域分析软件;获取频域指标具体过程如下:
B3.F1导入:在Python编辑器中导入NumPy库、SciPy库,加载RR间隔数据:将RR间隔的数据导入时间域分析软件中;
B3.F2插值:
B3.F2.1定义采样率:采样率的值2-4Hz,每秒生成2-4个数据点;
B3.F2.2计算插值后的时间点:使用NumPy库中的numpy.cumsum函数计算累计和,将RR间隔数组转换为时间数组,然后根据定义的采样率生成一个等间隔的时间向量,时间向量覆盖了从0秒到最后一个RR间隔时间点的整个时间范围;
B3.F2.3进行插值:利用NumPy库的numpy.interp函数进行线性插值,interp函数会在新的时间点上插值原始数据点,得到等间隔心率时间序列数据;
B3.F3去趋势:导入SciPy库中的detrend函数,采用线性去趋势的方式,利用detrend函数对等间隔心率时间序列数据进行处理,得到去除线性趋势的心率时间序列;
B3.F4使用Welch方法计算功率谱密度:Welch方法包括以下内容:
B3.F4.1信号分段:将等间隔心率时间序列数据分割成多个长度相同的重叠段;
B3.F4.2窗函数应用:对每个段应用汉宁窗函数,用于减少信号两端的不连续性,
B3.F4.3快速傅里叶变换:对每个窗函数处理后的段执行快速傅里叶变换,将时域信号转换为频域信号,生成每个段的频谱;
B3.F4.4功率谱密度计算:对每个段的频谱求平方,得到每个段的功率谱密度,功率谱密度反映了信号在不同频率下的功率分布;
B3.F4.5平均功率谱密度:将所有段的功率谱密度在相同的频率点上进行平均,得到整个时间序列的平均功率谱密度;
Welch方法使用SciPy库中的scipy.signal.welch函数实现,调用welch函数时,welch函数参数设置如下:数据的采样率为2-4Hz;每个段的长度为256-1024数据点;相邻段之间的重叠数据点数为每个段长度的40%-50%;
B3.F5提取频域指标:
LF:筛选出处于0.04-0.15赫兹的频率点及对应的平均功率谱密度值,然后利用NumPy库中numpy.trapz函数进行积分,得到LF;
HF:筛选出处于0.15-0.4赫兹的频率点及对应的平均功率谱密度值,然后利用NumPy库中numpy.trapz函数进行积分,得到HF;
LF/HF比率:LF/HF比率是通过将LF除以HF得到。
9.如权利要求8所述用于心率监测系统的数据处理方法,其特征在于,在步骤S4中B3中,非线性分析指标的获取基于心率变异性分析单元配置含有Python编辑器的非线性分析软件;获取非线性分析指标具体过程如下:
B3.n.1在Python编辑器中导入NumPy库、Matplotlib库、HeartPy库和SciPy库;
B3.n.2获取Poincaré Plot指标:使用NumPy库中的numpy.array函数将RR间隔数据转换为NumPy数组,通过对NumPy数组切片操作获取了当前RR间隔和后继RR间隔数据;
计算当前RR间隔与后继RR间隔之间的差值,作为RR间隔的一阶差分;
将一阶差分作为x坐标,将一阶差分的延迟一步的值作为y坐标,得到Poincaré Plot中的散点数据;
使用Matplotlib库中的 scatter函数采用拟合曲线的方式绘制散点图,其中,x坐标表示当前RR间隔的一阶差分,y坐标表示后继RR间隔的一阶差分,设定散点大小为8-12,散点形状为椭圆形;透明度为0.5-0.8;在椭圆形中短轴长度和长轴长度,分别作为SD1主轴和SD2主轴的值;
B3.n.3样本熵指标计算:加载等间隔心率时间序列数据;利用HeartPy库中sample_entropy函数对等间隔心率时间序列数据计算,得到样本熵指标;
B3.n.4获取去趋势波动分析指标:导入SciPy库中的detrend函数,采用线性去趋势的方式,利用detrend函数对等间隔心率时间序列数据进行处理,得到去除线性趋势的心率时间序列;
计算波动的标准差:使用NumPy库中的numpy.std函数计算去除线性趋势的心率时间序列的标准差;得到波动标准差;
波动幅度分析:使用NumPy库中的numpy.max和numpy.min函数分别找到去除线性趋势的心率时间序列数据的最大值和最小值,将最大值和最小值之间的差值作为幅度变化的指标,得到波动幅度。
10.如权利要求9所述用于心率监测系统的数据处理方法,其特征在于,在R波检测MATLAB软件、心率计算软件、融合MATLAB软件、时间域分析软件、频域分析软件和非线性分析软件的程序中使用try-catch结构来包裹代码块,try-catch结构为一种异常处理机制;try-catch结构包括try块和catch块;当程序执行到try块中的代码时,如果发生了异常,异常会被捕获,程序不会立即崩溃,控制流会跳转到对应的catch块;在catch块的代码中,开发者定义当异常发生时处理错误的方法,包括记录错误信息、通知用户。
CN202410318492.2A 2024-03-20 2024-03-20 一种用于心率监测系统的数据处理方法 Active CN117898692B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410318492.2A CN117898692B (zh) 2024-03-20 2024-03-20 一种用于心率监测系统的数据处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410318492.2A CN117898692B (zh) 2024-03-20 2024-03-20 一种用于心率监测系统的数据处理方法

Publications (2)

Publication Number Publication Date
CN117898692A CN117898692A (zh) 2024-04-19
CN117898692B true CN117898692B (zh) 2024-05-14

Family

ID=90687565

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410318492.2A Active CN117898692B (zh) 2024-03-20 2024-03-20 一种用于心率监测系统的数据处理方法

Country Status (1)

Country Link
CN (1) CN117898692B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4832038A (en) * 1985-06-05 1989-05-23 The Board Of Trustees Of University Of Illinois Apparatus for monitoring cardiovascular regulation using heart rate power spectral analysis
US6490480B1 (en) * 1999-09-16 2002-12-03 Eduard Lerner Apparatus and methods for measuring autonomic nervous system function
CN103705230A (zh) * 2014-01-14 2014-04-09 南京大学 一种生物电检测中的前置级电路
WO2021213165A1 (zh) * 2020-04-24 2021-10-28 华为技术有限公司 多源数据处理方法、电子设备和计算机可读存储介质
CN116919371A (zh) * 2022-03-31 2023-10-24 北京荣耀终端有限公司 一种检测心律的方法和电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140066782A1 (en) * 2012-08-30 2014-03-06 Nellcor Puritan Bennett Llc System and method for determining a resting heart rate of an individual
KR20150077684A (ko) * 2013-12-30 2015-07-08 삼성전자주식회사 생체 신호 기반 기능 운용 방법 및 이를 지원하는 전자 장치
US10368756B2 (en) * 2015-12-31 2019-08-06 BioPause LLC Sensing circuit with cascaded reference

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4832038A (en) * 1985-06-05 1989-05-23 The Board Of Trustees Of University Of Illinois Apparatus for monitoring cardiovascular regulation using heart rate power spectral analysis
US6490480B1 (en) * 1999-09-16 2002-12-03 Eduard Lerner Apparatus and methods for measuring autonomic nervous system function
CN103705230A (zh) * 2014-01-14 2014-04-09 南京大学 一种生物电检测中的前置级电路
WO2021213165A1 (zh) * 2020-04-24 2021-10-28 华为技术有限公司 多源数据处理方法、电子设备和计算机可读存储介质
CN116919371A (zh) * 2022-03-31 2023-10-24 北京荣耀终端有限公司 一种检测心律的方法和电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于多尺度卷积和自注意力特征融合的多模态情感识别方法";陈田;《计算机应用》;20230421;全文 *

Also Published As

Publication number Publication date
CN117898692A (zh) 2024-04-19

Similar Documents

Publication Publication Date Title
Khamis et al. QRS detection algorithm for telehealth electrocardiogram recordings
Jager et al. Long-term ST database: a reference for the development and evaluation of automated ischaemia detectors and for the study of the dynamics of myocardial ischaemia
CN108478209B (zh) 心电信息动态监护方法和动态监护系统
US8086304B2 (en) Physiologic signal processing to determine a cardiac condition
US7025729B2 (en) Apparatus for detecting sleep apnea using electrocardiogram signals
US8483807B2 (en) Cooperative processing with mobile monitoring device and computer system
US8954137B2 (en) Use of patterns in processing on mobile monitoring device and computer system
JP4386235B2 (ja) 心電図の順次比較のための方法及び装置
EP2730216B1 (en) Biosignal transmitter, biosignal receiver, and biosignal transmitting method
CN108577830A (zh) 一种面向用户的体征信息动态监护方法和动态监护系统
WO2006096408A2 (en) Atrial fibrillation detection
Trobec et al. Body sensors and electrocardiography
CN109288515B (zh) 基于穿戴式心电信号中早搏信号的周期性监测方法及装置
KR102387703B1 (ko) 심전도 판독을 수정하기 위한 방법 및 장치
US9474460B2 (en) Non-invasive evaluation of cardiac repolarisation instability for risk stratification of sudden cardiac death
Pang et al. Real time heart ischemia detection in the smart home care system
CN117898692B (zh) 一种用于心率监测系统的数据处理方法
US20230020419A1 (en) Non-invasive type electrocardiogram monitoring device and method
CN114903445A (zh) 一种心脑血管疾病智能监测预警系统
EP3975202A1 (en) Device and system for detecting heart rhythm abnormalities
Gaigawali et al. Cloud based ECG monitoring and fibrillation detection for healthcare system
Rocha et al. Wearable computing for patients with coronary diseases: Gathering efforts by comparing methods
Baby et al. Automated cardiac event change detection for continuous remote patient monitoring devices
TW555545B (en) System for determining cardiac arrhythmia from electrocardiogram (ECG)
Tyagi et al. Identification of QRS Segments of Electrocardiogram signals using Feature Extraction

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant