首页> 中国专利> 一种基于udp传输协议的心电数据传输方法和系统

一种基于udp传输协议的心电数据传输方法和系统

摘要

本发明公开了一种基于udp传输协议的心电数据传输方法和系统,所述方法包括:S1,检测端获取并处理心电数据;S2,根据预设程序将心电数据封装成数据包;S3,在数据包前增加协议头,使用udp协议将带有协议头的数据包发送至接收端;S4,接收端接收数据包,并使用校验和对数据包进行计算验证;若验证通过,则执行步骤S5;S5,将数据包进行拆包处理、数据补全后,输出最终心电数据。本发明在提高传输速度的同时保证了心电数据的准确率,并可以应用在各种嵌入式平台或计算机系统中。

著录项

  • 公开/公告号CN113438198B

    专利类型发明专利

  • 公开/公告日2022.08.26

    原文格式PDF

  • 申请/专利权人 广州大学;

    申请/专利号CN202110332902.5

  • 申请日2021.03.29

  • 分类号H04L69/164(2022.01);H04L69/22(2022.01);H04N19/63(2014.01);H04L67/12(2022.01);H04L69/16(2022.01);

  • 代理机构广州市华学知识产权代理有限公司 44245;

  • 代理人雷芬芬

  • 地址 510006 广东省广州市番禺区大学城外环西路230号

  • 入库时间 2022-09-26 23:16:43

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-08-26

    授权

    发明专利权授予

说明书

技术领域

本发明涉及心电信号分析技术领域,更具体地,涉及的是一种基于udp传输协议的心电数据传输方法和系统。

背景技术

目前,在智慧医疗中的远程实时诊疗领域,尤其是应用层面的心电信号远程传输与即时识别方面,为了保证心电信号的绝对准确性以为临床分析提供精确的数据,目前的通用方法是使用GPRS网络创建gprs虚拟IP并发起tcp连结给远端server以进行双向网络数据传输。但是,tcp协议的四次握手在让其保证数据传输的准确性时却牺牲了数据传输的绝对即时性,其时延在临床医学上所导致的微小错误可能会引发严重后果。而如果想要大量数据实时传输,最好需要使用udp协议。

UDP是OSI参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成,提供面向事务的简单不可靠信息传送服务。UDP协议的控制选项较少,在数据传输过程中延迟小、数据传输效率高。使用在应用层面的心电信号远程传输能有效保证传输速 度。但是UDP不对传送数据包进行可靠性保证,心电数据的实时传输过程可能会出现丢包或传输错误的情况,从而导致记录的波形或显示的波形出现缺失;此时若将数据送入神经网络进行识别将会出现错误结果,甚至会误导医师作出判断。

因此,行业内急需研发一种提高心电数据传输速度,同时保证数据包传输准确率的心电数据传输协议或者方法。

发明内容

本发明的目的在于提供基于udp传输协议的心电数据传输方法和系统,能够在使用udp协议传输以保证速度的 同时保证数据包的准确性,大幅度减少因数据包损坏或丢失而导致接收端所接收到的心电数据缺失。

一种基于udp传输协议的心电数据传输方法,包括:

S1,检测端获取并处理心电数据;

S2,根据预设程序将心电数据封装成数据包;

S3,在数据包前增加协议头,使用udp协议将带有协议头的数据包发送至接收端;

S4,接收端接收数据包,并使用校验和对数据包进行计算验证;若验证通过,则执行步骤S5;

S5,将数据包进行拆包处理、数据补全后,输出最终心电数据。

优选地,步骤S1包括:检测端将获取的心电数据传入待检测区;在检测区对心电数据进行处理,将处理后的心电数据传入缓冲区。

优选地,在检测区对心电数据进行处理包括:对心电数据进行去噪、滤波处理;对去噪、滤波后的心电数据进行小波变换或信号切片,得到可供医疗参考的心电数据。

优选地,步骤S2包括:在缓冲区内对心电数据进行识别,得到病患的QRS 波形,根据预设R峰阈值对QRS波进行计算,得到R值范围;根据R值范围将一个完整的QRS波形分为三个数据包。

优选地,在缓冲区内对心电数据进行识别,得到病患的QRS波形包括:对心电数据进行定位,确定导联编号;确定R峰的位置;搜索R峰前后波段的信号,确定完整的QRS波形。

优选地,在缓冲区内根据R值对心电数据进行识别判断,判断出波形中第一个R峰、第二个R峰、第三个R峰;将第一个R峰与第二个R峰中的波形数据打包,在报头中描述时间戳、序号和包大小,将此次封装的数据包记为包一;将第二个R峰与第三个R峰中的波形数据打包,在报头中描述时间戳、序号和包大小,其中时间戳与包一的时间戳相同、序号为包一序号加一,将此次封装的数据包记为包二;

封装数据包,将第一个R峰与第三个R峰中的波形数据打包,在报头中描述时间戳、序号和包大小,其中时间戳与包一的时间戳相同、序号为包二序号加一、包大小等于包一与包二之和,将此次封装的数据包记为包三,包一、包二和包三为一个数据组。

优选地,协议头包括2个字节的数据包标识和2个字节的发送序号;数据包标识用于指明该数据包为文件数据包、确认包或者其它控制包,发送序号用于指明数据包的顺序信息。

优选地,步骤S5包括:检测端与接收端的时间戳一一对应,根据数据包的时间戳对数据包进行分组,三个数据包为一组数据组;接收端根据预先编序规则对一组数据组内数据包重新排序,使顺序为包一-包二-包三的正确顺序,编序规则预先设置数据包号为两个字节的序号;其中上一数据组的包二为下一数据组的包一,上一数据组的包三的后半部分为下一数据组的包三的前半部分;若当前数据组存在数据包损坏,则根据上一数据组和/或下一数据组的数据进行补完;将数据进行去重,待同一波形的数据包数据没有重复后,输出最终波形数据。

优选地,若当前数据组存在数据包损坏,则根据上一数据组和/或下一数据组的数据进行补完包括:若当前数据组中三个数据包全部存在,没有丢包,则判断为完整传输,输出包三,等待下一步;若当前数据组中三个数据包丢失一个,则丢失包一或包二,判断为较完整传输,输出包三,等待下一步;丢失包三,则输出包一与包二之和,等待下一步;若当前数据组中三个数据包丢失两个,则存在包三,判断为较完整传输,输出包三,等待下一步;存在包一或包二,判断为不完整传输,如果存在包一,输出包一所有数据加上包二的字节,等待下一步;若当前数据组中三个数据包全部丢失,则判断为丢包,输出全零数据,等待下一步。

优选地,将数据进行去重包括:一个数据组中,优先选用包三数据,两个数据组中,优先选用前数据组数据。

一种基于udp传输协议的心电数据验证系统,包括:检测端和接收端;检测端包括数据预处理模块、数据封装模块和数据发送模块;接收端包括 数据包识别处理模块和数据输出模块;数据预处理模块,用于获取并处理心电数据;

数据封装模块,用于根据预设程序将心电数据封装成数据包;数据发送模块,用于在数据包前增加协议头,使用udp协议将带有协议头的数据包发送至接收端;数据包识别处理模块,用于使用校验和对数据包进行计算验证;数据输出模块,用于将数据包进行拆包处理、数据补全后,输出最终心电数据。

本发明实施例还提供一种计算机终端设备,包括:一个或多个处理器;存储器,与所述处理器耦接,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现所述基于udp传输协议的心电数据传输方法。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述基于udp传输协议的心电数据传输方法。

相对于现有技术,本发明实施例的有益效果如下:

(1)可实现数据的实时传输,延迟低;

(2)使用多包封装、多包发送、包与包之间可以进行补完,极大降低了由于udp协议传输所导致的丢包而带来的数据缺失率,保证了心电数据使用udp协议提高速度降低延迟的同时,保证数据的准确率;

(3)能够应用在普通ARM构架的嵌入式系统中,为随身心电监护设备及便携式医疗监护设备提供了实时数据传输功能。

附图说明

图1是本实施例的基于udp传输协议的心电数据传输方法的一流程示意图。

图2是本实施例的基于udp传输协议的心电数据传输方法的另一流程示意图。

图3是本实施例的检测端数据处理流程图。

图4是本实施例的检测端数据封装流程图。

图5是本实施例的检测端数据发送与接收端数据接收流程图。

图6是本实施例的接收端数据包识别处理流程图。

图7是本实施例的基于udp传输协议的心电数据传输系统的结构图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的所获得所有其他是实施例,都属于本发明保护的范围。

请参阅图1,本实施例提供的一种基于udp传输协议的心电数据传输方法的流程示意图,至少包括如下步骤:

S10、获取、处理心电数据;

需要说明的是,心电数据即心脏在每个心动周期中,由起搏点、心房、心室相继兴奋,伴随着生物电的变化,以上所述生物电的变化。心脏的特殊传导系统由窦房结、结间束(分为前、中、后结间束)、房间束(起自结间束,称Bachmann 束)、房间交界区(房室结、希氏束)、束支(分为左、右束支,左束支又分为前分支和后分支)以及普肯耶纤维(Pukinjefiber)构成,心脏传导系统与每一心动周期顺序出现的心电变化密切相关。正常心电活动始于窦房结,兴奋心房的同时经结间束传导至房室结(激动传,然后循希氏束-左、右束支-普肯耶纤维顺序传导,最后兴奋心室。这种先后有序的电激动的传播,引起一系列电位改变,形成了心电图上相应的波段。心电图是反映心脏兴奋的电活动过程,它对心脏基本功能及其病理研究方面,具有重要的参考价值。心电图可以分析与鉴别各种心律失常;也可以反映心肌受损的程度和发展过程和心房、心室的功能结构情况。在指导心脏手术进行及指示必要的药物处理上有参考价值。

在本实施例中,对所获取到的心电数据进行处理,即滤波处理,由于电极和皮肤组织之间会发生极化现象,会对心电信号产生严重的干扰。加之人体是一个复杂的生命系统,存在各种各样的其他生理电信号对心电信号产生干扰。同时由于我们处在一个电磁包围的环境中,从而会对心电信号产生50Hz左右的干扰信号,因此直接采集到的心电信号必须先经过处理,滤除杂波。

S20、根据预设程序进行数据封装;

需要说明的是,数据封装是因为在利用网络在不同设备之间传输时,为了可靠和准确地发送到目的地,并且高效地利用传输资源,需要在所发送的数据上附加上目标地址,本地地址,以及一些用于纠错的字节,所需安全性和可靠性较高时还要进行加密处理等等。这些操作就叫数据封装。而对数据包进行处理时通信双方所遵循和协商好的规则就是协议。在实际应用中,组网的数据封装按功能分层进行,目的很简单,就是为了能将复杂系统分解为很多模块,各模块独立,互不影响,每个模块(每层)之间用接口进行连接和交互,并互相提供服务。这样不仅更容易实现功能,而且使整个系统具有良好的兼容性和可扩展性

在本实施例中,于缓冲区内对最初信号进行识别,锁定病患的基本QRS波形,取R峰大小,根据预设阈值在R峰基础上进行计算,得到R值范围。然后根据所得R值范围于缓冲区内对心电信号进行初步识别判断,即判断出波形中每一个R峰。然后封装数据包,根据预设程序将一个完整的QRS波形分为三个数据包。

S30、使用udp协议发送数据包;

如今的惯例是使用tcp协议进行心电数据传输,需要说明的tcp与udp两者都差别如下:1、TCP面向连接;UDP是无连接的,即发送数据之前不需要建立连接。2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。 3、UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信。5、TCP对系统资源要求较多,UDP 对系统资源要求较少。

在本实施例中,使用的是udp协议进行数据传输,所考虑到的是UDP以其简单、传输快的优势。网速的提升给UDP的稳定性提供可靠网络保障,丢包率很低;TCP为了实现网络通信的可靠性,使用了复杂的拥塞控制算法,建立了繁琐的握手过程,由于TCP内置的系统协议栈中,极难对其进行改进。采用TCP,一旦发生丢包,TCP会将后续的包缓存起来,等前面的包重传并接收到后再继续发送,延时会越来越大,基于UDP在对实时性要求较为严格的情况下,如心电数据的实时传输,如果采用本实施例的自定义数据验证机制,能够把丢包产生的延迟降到最低,保证了心电数据的实时性与准确率。

S40、接收端接收数据包,处理后输出;

在本实施例中,接收到数据包后,拆包数据,将结果汇总,包括异常汇总和参数汇总,汇总后的结果可用于推测后续趋势,为后续分析识别提供了数据基础。即该结果能够与疾病发展趋势预测算法相关联,后端输出关键信号特征及异常种类判别,能够基于时间序列的病情变化对未来疾病发展趋势做出概率预测,为医护人员提前诊断和采取预防措施提供了参考路径。最后输出所得数据,将心电图数据实时呈现。

请参阅图2,本实施例提供基于udp传输协议的心电数据传输方法的整体结构流程图;

在本实施例中,具体实施时,具体步骤分为检测端数据处理流程、检测端数据封装流程、检测端数据发送与接收端数据接收流程、接收端数据包识别处理流程,均在下文有所描述。

请参阅图3,本实施例提供的检测端数据处理流程图;

需要说明的是,心电信号具有微弱、低频、高阻抗等特性,极容易受到干扰,所以分析干扰的来源,针对不同干扰采取相应的滤除措施,是数据采集重点考虑的一个问题。常见干扰有工频干扰、基线漂移、肌电干扰三种,获取到的原始数据需要进行数据检测。

在本实施例中,具体实施时,首先输入原始心电波形信号,然后进行滤波处理,对滤波后的信号进行小波变换与信号切片,同时对信号进行参数判断与分析。其中,小波变换指的是一种频率变换方法,从信号中提取信息,通过伸缩和平移等计算功能对函数或信号进行多尺度细化分析,以实现对心电原始信号的图像分解和去噪平滑;信号切片指的是将完整的信号进行切分,直到一整个信号段结束。在进行以上步骤实现了肌电信号的滤除、工频干扰的抑制、基线漂移的纠正之后,能够得到可供医疗参考的心电图的数据。

请参阅图4,本实施例提供的检测端数据封装流程图,具体实施时,首先对输入的信号进行定位,即确定导联编号;然后确定R峰的位置;搜索T 波,P波等前后波段的信号,基本确定QRS完整波形,然后对数据信号进行切分,数据切分并封装成数据发送包的过程如下:

于缓冲区内对心电信号进行初步识别判断,即判断出波形中每一个R峰,封装数据包,将第一个R峰与第二个R峰中的波形数据打包,于报头中描述其时间戳、序号、包大小,记为包一;将第二个R峰与第三个R峰中的波形数据打包,报头信息同上描述,其时间戳与包一的时间戳相同、序号为包一序号加一,记为包二;将第一个R峰与第三个R峰中的波形数据打包,报头信息同上描述,其时间戳与包一的时间戳相同、序号为包二序号加一、包大小理论上等于包一与包二之和,记为包三;此三个数据包为一个组别,为了降低udp协议传输过程中丢包问题导致的数据错漏,三个数据包的数据有所重叠,其标识的是一个完整的obs波形,至于如何表示为一个完整的obs波形,即为本基于udp传输协议的心电数据传输方法,所述数据包识别处理流程。

请参阅图5,本实施例提供的检测端数据发送与接收端数据接收流程,其主要流程包括:

检测端:

1、使用WSAStartup函数初始化套接字接口,此函数的第一个参数是套接字的版本信息,第二参数一个WSADATA型的变量,这个变量中保存了WSAStartup函数初始化返回的套接字信息。

2、使用socket函数创建一个套接字,创建成功之后就会返回一个SOCKET 类型的套接字变量。

3、创建成功之后就可以向接收器发送数据。

接收端:

1、使用WSAStartup函数初始化套接字接口,此函数的第一个参数是套接字的版本信息,第二参数一个WSADATA型的变量,这个变量中保存了WSAStartup函数初始化返回的套接字信息。

2、使用socket函数创建一个套接字,创建成功之后就会返回一个SOCKET 类型的套接字变量。

3、使用bind函数给socket创建的SOCKET变量绑定一个本地地址

4、绑定成功之后就可以等检测端的数据上传。

在本实施例中,需要理解的是,以上所述流程为常规udp传输流程;而本基于udp传输协议的心电数据传输方法所提供的检测端数据发送与接收端数据接收流程为上常规udp传输流程上加入以下内容:

1.检测端数据包新增协议头设置,包括先定义4个字节的协议头,为2个字节的数据包标识,2个字节的发送序号。数据包标志指明该数据包为文件数据包、确认包或者其它控制包,发送序号用来指明数据包的顺序信息。

2.接收端UDP的校验和计算验证。

需要理解的是,UDP传输协议的不可靠含义是:即使该数据报丢失,发送方也不知道。但是,对于每个数据报,还是要求尽可能提高传输可靠性。UDP 中的“校验和”是为了尽可能提高本数据报的可靠性手段。在本实施例中,使用校验和验证,是保证心电数据的准确率的第一道关卡;至于如何使得接收端所接收到的数据更加精准,将在本实施例提供的一种接收端数据包识别处理流程中有所描述。

请参阅图6,本实施例提供的一种接收端数据包识别处理流程图,具体包括:将接收到的数据包进行判断、整合、输出最终数据。

本实施例提供一种基于udp传输协议的心电数据传输方法,所述的接收端数据包识别处理,包括:

1.对接收到的数据包进行排序;

2.对接收到的数据包进行拆包处理;

3.对接收到的数据进行数据整合;

4.计算所得数据片段的相似度,判断数据包是否损坏;

5.进行包与包之间的数据补完;

6.进行数据片段的去重。

在本实施例中,接收端数据包识别处理流程具体如下:

一、检测端与接收端的时间戳一一对应,根据数据包的时间戳进行排序,一般为三个数据包为一组。若该时间戳内仅存在两个数据包,不作处理;若该时间戳内仅存在一个数据包,则等待下一个 该时间戳数据包;若该时间戳内仅存在没有数据包,判断为数据缺失。

二、检测端与接收端约定数据包两个字节的序号,一般为,一组三个数据包,包一为01,包二为10,包三为11;接收端据此对数据包重新排序,使顺序为包一-包二-包三的正确顺序。

三、基于udp协议的提供面向事务的简单不可靠信息传送服务,实际传输过程中容易出现丢包情况,若

(1)三个数据包为一组的数据组中数据包全部存在,没有丢包,则:判断为完整传输,输出包三,等待下一步。

(2)三个数据包为一组的数据组中数据包丢失一个,则:丢失包一或包二,判断为较完整传输,输出包三,等待下一步;丢失包三,则输出包一与包二之和,等待下一步。

(3)三个数据包为一组的数据组中数据包丢失两个,则:存在包三,判断为较完整传输,输出包三,等待下一步;存在包一或包二,判断为不完整传输,如果存在包一,输出包一所有数据加上包二(不存在)的字节(全部置零),等待下一步。

(4)三个数据包为一组的数据组中数据包全部丢失,则:判断为丢包,输出全零数据,等待下一步。

(5)对下一个三个数据包为一组的数据组重复执行以上操作,根据情况对上一数据组的数据进行补完。本实施例提供的接收端数据包识别处理中,上一数据组的包二为下一数据组的包一,上一数据组的包三的后半部分为下一数据组的包三的前半部分,故,某一数据组发生部分丢包情况时,可以根据前后数据组的相关补完包进行数据补完,甚至某一数据组发生完全丢包情况时,若前数据组存在包二或包三的后半部分且后数据组存在包一或包三点的前半部分,依然可以数据补完;若确实无法进行数据补完,则将该波形标记为完全数据丢失,输出为空。

四、将上述步骤所输出的数据进行去重,一个数据组中,优先选用包三数据,两个数据组中,优先选用前数据组数据,待同一波形的数据包数据没有重复后,输出最终波形数据。

本实施例提供一种基于udp传输协议的心电数据传输方法,所述的接收端数据包识别处理,其优势在于多包封装、多包发送、包与包之间可以进行补完,极大降低了由于udp协议传输所导致的丢包而带来的数据缺失率,保证了心电数据使用udp协议提高速度降低延迟的同时,保证数据的准确率。

请参阅图7,本实施例提供的一种心电数据验证系统的模块连接图,检测端和接收端;检测端包括数据预处理模块、数据封装模块和数据发送模块;接收端包括 数据包识别处理模块和数据输出模块;

数据预处理模块,用于获取并处理心电数据;

数据封装模块,用于根据预设程序将心电数据封装成数据包;

数据发送模块,用于在数据包前增加协议头,使用udp协议将带有协议头的数据包发送至接收端;

数据包识别处理模块,用于使用校验和对数据包进行计算验证;

数据输出模块,用于将数据包进行拆包处理、数据补全后,输出最终心电数据。

本实施例还提供一种计算机终端设备,包括:

一个或多个处理器;所称处理器可以是中央处理单元(Central ProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述平台的各个服务器的控制中心,利用各种接口和线路连接整个方法的各个部分。

存储器,与所述处理器耦接,用于存储一个或多个程序;所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

以上所揭露的仅为本发明优选的实施例而已,当然不能以此来限定本发明之权利范围,本公开的各个实施例权利要求中记载的特征可以进行多种组合结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例权利要求中记载的特征可以进行多种组合结合。所有这些组合结合均落入本公开的范围。

以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号