基于匹配追踪和最大重叠离散小波变换的ECG心电信号R波检测(MATLAB 2018a)

本文主要是介绍基于匹配追踪和最大重叠离散小波变换的ECG心电信号R波检测(MATLAB 2018a),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

准确识别心电信号的R波是进行HRV分析的前提。因此,开发出准确的心电信号R波检测方法十分重要。近几十年来,提出的R峰检测方法主要分为两个阶段。第1阶段是预处理阶段,目的是对受不同噪声影响的原始心电信号进行降噪处理,从而实现增强R峰特征,削弱其他波形的目的。第二阶段为R峰检测阶段,利用决策规则寻找真实的R峰位置。

通常情况下心电信号的频率比较低,而且幅值比较小,在实际的信号采集过程中心电信号容易受到各种类型的噪声的影响,将导致心电信号的形态发生改变甚至波形突变等情况,这将影响对心血管疾病的临床分析和辅助诊断。因此需要对原始心电信号进行降低噪声处理,以减少噪声对心电信号的影响,为后续的心电信号R波检测等工作提供可靠的信号。

基线漂移

基线漂移噪声主要是在心电信号采集过程中,由于佩戴者的呼吸以及身体的运动,导致心电信号采集装置的电极发生滑动。基线漂移在心电图上的表现就是心电信号的基线发生波动,基线不再是水平的,这将影响科研人员对心电信号的特征点进行识别以及后续其他科研工作。基线漂移噪声频率范围一般小于1Hz。

工频干扰

工频干扰噪声是心电信号采集设备产生的一种比较常见的干扰噪音,它是由市电50Hz或60Hz及其谐波分量组成的,其中,国内的市电是50Hz,国外的市电是60Hz。工频干扰噪声导致心电信号的特征点的幅值比较大,这将导致心电信号R波的识别工作受到影响。

肌电噪声

肌电噪声是由于在心电信号采集的过程中,测试者的肌肉神经系统发生颤动或者收缩现象所导致的。因此在实际测量心电信号数据的时候需要注意寻找合适的电极贴片的位置,尽量减小肌电噪声对心电信号质量的影响。肌电噪声的频率范围一般是在5Hz-2000Hz之间。通常情况下,肌电噪声在心电信号上表现为细小的波纹,这将导致心电图峰值和低谷等位置模糊不清,使得心电信号R波的识别变得更加困难。

鉴于此,提出一种基于匹配追踪和最大重叠离散小波变换的ECG心电信号R波检测方法,运行环境为MATLAB 2018a。

function plotExtents(hAxes,x,y,iPk,bPk,bxPk,byPk,wxPk,refW)% compute level of half-maximum (height or prominence)
if strcmp(refW,'halfheight')hm = 0.5*y(iPk);
elsehm = 0.5*(y(iPk)+bPk);
end% get the default color order
colors = get(0,'DefaultAxesColorOrder');% plot boundaries between adjacent peaks when using half-height
if strcmp(refW,'halfheight')% plot heightplotLines(hAxes,'Height',x(iPk),y(iPk),x(iPk),zeros(length(iPk),1),colors(2,:));  % plot widthplotLines(hAxes,'HalfHeightWidth',wxPk(:,1),hm,wxPk(:,2),hm,colors(3,:));% plot peak bordersidx = find(byPk(:,1)>0);plotLines(hAxes,'Border',bxPk(idx,1),zeros(length(idx),1),bxPk(idx,1),byPk(idx,1),colors(4,:));idx = find(byPk(:,2)>0);plotLines(hAxes,'Border',bxPk(idx,2),zeros(length(idx),1),bxPk(idx,2),byPk(idx,2),colors(4,:));else% plot prominenceplotLines(hAxes,'Prominence',x(iPk), y(iPk), x(iPk), bPk, colors(2,:));  % plot widthplotLines(hAxes,'HalfProminenceWidth',wxPk(:,1), hm, wxPk(:,2), hm, colors(3,:));% plot peak bordersidx = find(bPk(:)<byPk(:,1));plotLines(hAxes,'Border',bxPk(idx,1),bPk(idx),bxPk(idx,1),byPk(idx,1),colors(4,:));idx = find(bPk(:)<byPk(:,2));plotLines(hAxes,'Border',bxPk(idx,2),bPk(idx),bxPk(idx,2),byPk(idx,2),colors(4,:));
endhLine = get(hAxes,'Children');
tags = get(hLine,'tag');legendStrs = {};
searchTags = {'Signal','Peak','Prominence','Height','HalfProminenceWidth','HalfHeightWidth','Border'};
for i=1:length(searchTags)if any(strcmp(searchTags{i},tags))legendStrs = [legendStrs, ...{getString(message(['signal:findpeaks:Legend' searchTags{i}]))}]; %#ok<AGROW>end
endif length(hLine)==1legend(getString(message('signal:findpeaks:LegendSignalNoPeaks')), ...'Location','best');
elselegend(legendStrs,'Location','best');
完整代码可通过知乎学术咨询获得:
https://www.zhihu.com/consult/people/792359672131756032?isMe=1
end

图片

图片

图片

图片

图片

图片

图片

工学博士,担任《Mechanical System and Signal Processing》《中国电机工程学报》《控制与决策》等期刊审稿专家,擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

这篇关于基于匹配追踪和最大重叠离散小波变换的ECG心电信号R波检测(MATLAB 2018a)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1014288

相关文章

MySQL追踪数据库表更新操作来源的全面指南

《MySQL追踪数据库表更新操作来源的全面指南》本文将以一个具体问题为例,如何监测哪个IP来源对数据库表statistics_test进行了UPDATE操作,文内探讨了多种方法,并提供了详细的代码... 目录引言1. 为什么需要监控数据库更新操作2. 方法1:启用数据库审计日志(1)mysql/mariad

C++ 检测文件大小和文件传输的方法示例详解

《C++检测文件大小和文件传输的方法示例详解》文章介绍了在C/C++中获取文件大小的三种方法,推荐使用stat()函数,并详细说明了如何设计一次性发送压缩包的结构体及传输流程,包含CRC校验和自动解... 目录检测文件的大小✅ 方法一:使用 stat() 函数(推荐)✅ 用法示例:✅ 方法二:使用 fsee

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

Nginx路由匹配规则及优先级详解

《Nginx路由匹配规则及优先级详解》Nginx作为一个高性能的Web服务器和反向代理服务器,广泛用于负载均衡、请求转发等场景,在配置Nginx时,路由匹配规则是非常重要的概念,本文将详细介绍Ngin... 目录引言一、 Nginx的路由匹配规则概述二、 Nginx的路由匹配规则类型2.1 精确匹配(=)2

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

Nginx location匹配模式与规则详解

《Nginxlocation匹配模式与规则详解》:本文主要介绍Nginxlocation匹配模式与规则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、环境二、匹配模式1. 精准模式2. 前缀模式(不继续匹配正则)3. 前缀模式(继续匹配正则)4. 正则模式(大

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

详解nginx 中location和 proxy_pass的匹配规则

《详解nginx中location和proxy_pass的匹配规则》location是Nginx中用来匹配客户端请求URI的指令,决定如何处理特定路径的请求,它定义了请求的路由规则,后续的配置(如... 目录location 的作用语法示例:location /www.chinasem.cntestproxy