MATLAB中实现ECG数据降噪代码部分设计

MATLAB中使用小波滤波器除噪,降噪ECG数据代码部分设计

最近在处理ECG数据的问题,关于matlab中处理ECG数据的问题也是搞了我些时间,现在将代码贴出,以供我后续参考。也和各位一起学习。

先参考链接: link
----将ECG数据导入matlab中

按照连接运行一次之后,右侧有M之后,在运行以下代码在这里插入图片描述matlab中降噪部分代码如下:

s=M(:,1); (ecg数据)
ecg_i=s';  (行列转换)

N = numel(s);
%小波分解;
[c,l]=wavedec(s,10,'coif4'); %小波基为coif4,分解层数为10层
ca11=appcoef(c,l,'coif4',10); %获取低频信号
cd1=detcoef(c,l,1);
cd2=detcoef(c,l,2); %获取高频细节
cd3=detcoef(c,l,3);
cd4=detcoef(c,l,4);
cd5=detcoef(c,l,5);
cd6=detcoef(c,l,6);
cd7=detcoef(c,l,7);
cd8=detcoef(c,l,8);
cd9=detcoef(c,l,9);
cd10=detcoef(c,l,10);
sd1=wthresh(cd1,'s',0.014);%1-3层软阈值函数处理,9 10层置零
sd2=wthresh(cd2,'s',0.014);
sd3=wthresh(cd3,'s',0.014);
sd4=cd4;
sd5=cd5;
sd6=cd6;
sd7=cd7;
sd8=cd8;
sd9=zeros(1,length(cd9));
sd10=zeros(1,length(cd10));
c2=[ca11',sd10,sd9,sd8',sd7',sd6',sd5',sd4',sd3',sd2',sd1'];
s0=waverec(c2,l,'coif5'); %小波重构
figure;
subplot(211);plot(s);
subplot(212);plot(s0);%画图

结果如图,上图为原数据,下图为处理后数据。对于工频干扰,基线漂移,高频噪声去除,表现良好。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值