基于离散小波变换(DWT)的心电信号伪影去除及心电信号PQRST波检测(MATLAB R2018)

本文主要是介绍基于离散小波变换(DWT)的心电信号伪影去除及心电信号PQRST波检测(MATLAB R2018),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

心电信号是心脏神经,肌肉组织电化学活动的表现形式。这些电化学活动使心脏内部产生一系列非常协调的电刺激脉冲,分别使心房,心室的肌肉细胞兴奋,从而有节律的舒张和收缩。这些生物电活动在体表的不同部位形成不同的电位差变化,就是心电信号。其他生理电活动,如脑电(Electroencephalogram,EEG),肌电(Electromyography,EMG)等都是如此。

心脏主要由心肌组成四腔室结构,上部分为两心房,下部分为两心室。心脏收缩时

的心电活动称为除极,心脏舒张时的心电活动称为复极。一个心动周期开始于窦房结,它是心脏的最高起搏点(也叫一级起搏点)。它出发的激励指令经结间束首先传给房室结(也称第二级起搏点)。房室结向下发出一通传导路,称为房室束,它位于室间隔内。房室束往下又不断发左右两个束支,越分越细,最后分别形成互相交织的网状结构,称为普肯耶纤维,最后终止于心肌内。心电传导变化复杂,呈混沌状,但其有序结果通过周身组织传遍全身,使身体各部位出现有规律的,各向异性的电位变化。一个周期的心电信号如下图所示:

图片

将测量电极按照一定规则放置在人体表面的特定位置,会监测到心电信号的变化曲线,不同的导联方式得到的心电信号波形会有所不同,将这些变化曲线记录下来,就是临床诊断中用到的心电图。在一般情况下,心电图由一系列波群组成,各个波段反映不同阶段心电变化,它们是P波,QRS波群,T波和可能出现的一小段U波。标准心电图如下所示:

图片

心电信号是心脏物理规律的微弱电反映,它有如下特点:

(1)信号微弱,容易被噪声淹没。心电信号幅度为毫伏级,约为0.5~5mV,典型值为1mV。

(2)具有低频和能量集中的特性。心电信号是一种低频信号,频率范围在0.05Hz~100Hz。其能量主要集中在0.25Hz~40Hz。

(3)随机性强,不同人的心电信号都不一样,甚至有通过心音进行人员身份识别的技术手段,但是标准心电可以通过函数模拟产生。

(4)准周期性。心电信号是一种典型的准周期信号,各个周期的信号虽然不完全相同但它们的特征相同。

鉴于此,提出一种基于离散小波变换(DWT)的心电信号伪影去除及心电信号PQRST波检测方法,运行环境为MATLAB R2018,心电信号伪影去除代码如下:

clear all
close all
clcFs = 360; % Sampling Frequency
Fnotch = 0.67; % Notch Frequency
BW = 5; % Bandwidth
Apass = 1; % Bandwidth Attenuation
[b, a] = iirnotch (Fnotch/ (Fs/2), BW/(Fs/2), Apass);
Hd = dfilt.df2 (b, a);load ('100m.mat');
ecgsig = val/200;
t = 0:length(ecgsig)-1;
tx = t./Fs;subplot (4, 1, 1), plot(tx,ecgsig), title ('ECG Signal with baseline wander'), grid on
y0=filter (Hd, ecgsig);
subplot (4, 1, 2), plot(tx,y0), title ('ECG signal with low-frequency noise (baseline wander) Removed'), grid onFnotch = 50; % Notch Frequency
BW = 50; % Bandwidth
Apass = 1; % Bandwidth Attenuation
[b, a] = iirnotch (Fnotch/ (Fs/2), BW/ (Fs/2), Apass);
Hd1 = dfilt.df2 (b, a);
y1=filter (Hd1, y0);
subplot (4, 1, 3), plot (tx,y1), title ('ECG signal with power line noise Removed'), grid ond = fdesign.lowpass('Fp,Fst,Ap,Ast',0.4,0.5,1,80);
Hd2 = design(d,'equiripple');
y2 = filter(Hd2,y1);
subplot(4,1,4)
plot(tx,y2),title('ECG Signal with high frequency noise removed'), grid onwt = modwt(y2,4,'sym4');
wtrec = zeros(size(wt));
wtrec(3:4,:) = wt(3:4,:);y3 = imodwt(wtrec,'sym4');
y3 = abs(y3).^2;
avg = mean(y3);
[Rpeaks,locs] = findpeaks(y3,t,'MinPeakHeight',8*avg,'MinPeakDist',50);
nohb = length(locs);
timelimit = length(ecgsig)/Fs;
hbpermin = (nohb*60)/timelimit;
disp(strcat('Heart Rate = ',num2str(hbpermin)))figure
plot(t,y3)
grid on
xlim([0,length(ecgsig)])
hold on
plot(locs,Rpeaks,'^r');
%完整代码:mbd.pub/o/bread/ZZWZk5py
xlabel('samples'), title(strcat('Rpeaks found and Heart Rate : ',num2str(hbpermin)))

图片

图片

心电信号PQRST波检测结果如下:

图片

图片

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

这篇关于基于离散小波变换(DWT)的心电信号伪影去除及心电信号PQRST波检测(MATLAB R2018)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪

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

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

使用Python和Tkinter实现html标签去除工具

《使用Python和Tkinter实现html标签去除工具》本文介绍用Python和Tkinter开发的HTML标签去除工具,支持去除HTML标签、转义实体并输出纯文本,提供图形界面操作及复制功能,需... 目录html 标签去除工具功能介绍创作过程1. 技术选型2. 核心实现逻辑3. 用户体验增强如何运行

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

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

CSS去除a标签的下划线的几种方法

《CSS去除a标签的下划线的几种方法》本文给大家分享在CSS中,去除a标签(超链接)的下划线的几种方法,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧... 在 css 中,去除a标签(超链接)的下划线主要有以下几种方法:使用text-decoration属性通用选择器设置:使用a标签选择器,将tex

C++变换迭代器使用方法小结

《C++变换迭代器使用方法小结》本文主要介绍了C++变换迭代器使用方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、源码2、代码解析代码解析:transform_iterator1. transform_iterat

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X