心电信号处理算法(包括基线漂移消除技术,高通、低通和陷波滤波,等值线校正和QRS等波群标记等,MATLAB代码)

由于心电信号是心脏活动产生的电位差变化并在人体皮肤表面采集得到的微弱信号,频率大致为0.05Hz~100Hz,波形幅值在10μV~5mV内。与其他生理信号不同之处是,心电信号的频率较低且波形幅值小,在采集时容易被各种噪声干扰。心电信号由于佩戴者的各种日常活动影响,往往采集到的信号中伴随着大量的噪声。心电信号一旦受到噪声的干扰,其原有的波形形态发生改变而不能得到有效利用,甚至完全失去其医学价值,所以滤除心电信号中的复杂噪声对准确诊断心血管疾病具有重要意义。为此,不论是医生对患者的心脏疾病的诊断还是远程心电监护系统的智能分析,都需要先获得降噪后的心电信号波形,医生才可以依据其所包含的波形特征信息中来诊断心脏疾病。故而,对心电信号采用降噪处理具有十分重要的临床医学意义。国内外研究人员针对滤除采集到的心电信号的复杂噪声进行了大量研究,且取得丰硕的成果。但鉴于心电信号的波形幅值较小且干扰噪声复杂随机产生,导致降噪时会丢失部分波形信息,致使重构后的心电信号波形不完整。所以,若滤除采集的心电信号中的复杂噪声且尽可能多的保留信号有价值的波形信息,仍需进一步研究。

鉴于此,提出一种心电信号处理算法,主要包括基线漂移消除技术,高通、低通和陷波滤波,等值线校正和QRS等波群标记等,运行环境MATLAB。主代码如下:

复制代码
%% Feature calculation
% produce FPT Table
% usage: [FPT_MultiChannel,FPT_Cell]=Process_ECG_Multi(signal,samplerate,varargin)
[FPT_MultiChannel,FPT_Cell]=Annotate_ECG_Multi(ecg_filtered_isoline,Fs);

% extract FPTs for Channel 1 (Lead I):
FPT_LeadI = FPT_Cell{3,1};

Pwave_samples = reshape(FPT_LeadI(:,1:3), [1,size(FPT_LeadI(:,1:3),1)*size(FPT_LeadI(:,1:3),2)]);
QRS_samples = reshape([FPT_LeadI(:,4),FPT_LeadI(:,6), FPT_LeadI(:,8)] , [1,size(FPT_LeadI(:,1:3),1)*size(FPT_LeadI(:,1:3),2)]);
Twave_samples = reshape(FPT_LeadI(:,10:12), [1,size(FPT_LeadI(:,10:12),1)*size(FPT_LeadI(:,10:12),2)]);

% visualize fiducial points
figure; 
plot(ecg_filtered_isoline(:,3));
hold on; 
scatter(Pwave_samples, ecg_filtered_isoline(Pwave_samples,3), 'g', 'filled');
scatter(QRS_samples, ecg_filtered_isoline(QRS_samples,3), 'r', 'filled');
scatter(Twave_samples, ecg_filtered_isoline(Twave_samples,3), 'b', 'filled');
title('Filtered ECG');
xlabel('samples'); ylabel('voltage');
legend({'ECG signal', 'P wave', 'QRS complex', 'T wave'});

%% Calculate timing and amplitude features from FPT table
[Amplitude_feature_12leads] = ExtractAmplitudeFeaturesFromFPT(FPT_Cell, ecg_filtered_isoline);
[Timing_feature_12leads, Timing_feature_sync] = ExtractIntervalFeaturesFromFPT(FPT_Cell, FPT_MultiChannel);

% visualize R amplitude for lead II and V1
figure; hold all; 
nbrBeats = size(Amplitude_feature_12leads, 2);
scatter(1:1:nbrBeats, Amplitude_feature_12leads(2,:,3), 'r+'); % lead II (entry 2), all beats, R peak amplitude (entry 3)
scatter(1:1:nbrBeats, Amplitude_feature_12leads(7,:,3), 'ro'); % lead V1 (entry 7), all beats, R peak amplitude (entry 3)
xlabel('Beat ID')
ylabel('R peak amplitude in mV') 
legend({'R amplitude in II', 'R amplitude in V1'})

%% Determine P-wave morphology
完整代码:https://mbd.pub/o/bread/mbd-Y56bm59q
[PMorph, Peaks] = Get_P_Morphology(ecg, Fs, FPT_Cell);

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

相关推荐
奈斯先生Vector7 分钟前
告别工具碎片化:基于 Nano Banana 全模态 AI 聚合架构搭建“文本-图像-视频”自动化协同生产线
运维·数据库·人工智能·架构·自动化·aigc·音视频
领麦微红外8 分钟前
国产MEMS红外测温传感器:传感器+算法+产品级出厂标定一站式交付模式深度解读
人工智能·硬件工程·产品经理
mingo_敏33 分钟前
DeepAgents : 检索(Retrieval)
人工智能·深度学习·langchain
微三云 - 廖会灵 (私域系统开发)39 分钟前
消费即资产:积分增值异业联盟商业模式完整拆解(附落地逻辑、合规方案与盈利模型)
大数据·人工智能
FL16238631291 小时前
非机动车闯红灯电动摩托车闯红灯检测数据集VOC+YOLO格式1754张3类别
人工智能·yolo·机器学习
xiaohaiAIgeo1 小时前
【2026年】通风柜快速风阀执行器的技术参数与选型:响应时间扭矩与寿命
人工智能·经验分享·科普知识
网络研究院1 小时前
Cloudflare 推出 Precursor 行为监测系统,全会话追踪技术引爆 AI 机器人防御战与隐私新争议
网络·人工智能·机器人·系统·cloudflare·反爬虫
老白说数智化升级1 小时前
从一次改善到持续进化,AI如何沉淀制造现场的运营知识?
大数据·人工智能·制造
Python私教1 小时前
Django 接入 AI 大模型实战:从零做一个流式聊天网站
人工智能·python·django
Python私教1 小时前
Django 接入 MCP 实战:让 AI 安全调用数据库和业务接口
人工智能·python·django