✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
小波分析在时域和频域具有很好的局部化特性,是分析和处理数字信号强有力的工具.文章将基于小波变换的模极大值去噪算法应用到心电信号的去噪研究中.首先依据相关理论验证算法的有效性,并对心电数据进行去噪分析处理.结果表明,去噪后的信号有效去除了大部分毛刺,去噪效果良好,噪声得到很好的抑制.
⛄ 部分代码
N=1024;n1=7;
n=0:N-1;
Fs=500;
t=n/Fs;
x=1*sin(2*pi*10*t);
y=1.4*rand(1,1024);
for i=1:length(y)
if y(1,i)>0.96
y(i)=4;
else if y(1,i)>0.92
y(1,i)=2;
else
y(1,i)=0;
end
end
end
a=0;
for i=1:length(y)
if y(1,i)>0
a=a+1;
else a=a;
end
end
a
signal=x+y;
xref=x;
points=1024; level=4; sr=360; num_inter=6; wf='db3';
%所处理数据的长度 分解的级数 抽样率 迭代次数 小波名称
offset=0;
%____进行二进制小波变换(离散平稳小波变换),并给出各级波形:
[Lo_D,Hi_D,Lo_R,Hi_R]=wfilters(wf);
[swa,swd] = swt(signal,level,Lo_D,Hi_D);
figure;
subplot(level,1,1); plot(real(signal));
title('含噪声信号'),grid on;axis tight;
for i=1:level
subplot(level+1,2,2*(i)+1);
plot(swa(i,:)); axis tight;grid on;xlabel('time');
ylabel(strcat('a ',num2str(i)));
subplot(level+1,2,2*(i)+2);
plot(swd(i,:)); axis tight;grid on;
ylabel(strcat('d ',num2str(i)));
end
%____求小波变换的模极大值及其位置,并按级给出小波变换模极大的波形:
% swa:小波概貌; swd:小波细节;
% ddw:局部极大位置; wpeak:小波变换的局部极大序列。
ddw=zeros(size(swd));
pddw=ddw;
nddw=ddw;
posw=swd.*(swd>0);
pdw=((posw(:,1:points-1)-posw(:,2:points))<0);
pddw(:,2:points-1)=((pdw(:,1:points-2)-pdw(:,2:points-1))>0);
negw=swd.*(swd<0);
ndw=((negw(:,1:points-1)-negw(:,2:points))>0);
nddw(:,2:points-1)=((ndw(:,1:points-2)-ndw(:,2:points-1))>0);
ddw=pddw|nddw;
ddw(:,1)=1;
ddw(:,points)=1;
wpeak=ddw.*swd;
wpeak(:,1)=wpeak(:,1)+1e-10;
plot(signal(1:points),'r');
title('含噪声信号')
axis([1 points -5 5]);
subplot(513)
plot(pswa(1:points),'r');
title('极值去噪')
axis([1 points -5 5]);
subplot(514)
plot(xh(1:points));
title('硬阈值去噪')
axis([1 points -5 5]);
subplot(515)
plot(xs(1:points));
title('软阈值去噪')
axis([1 points -5 5]);
snr0=20*log10(norm(signal)/norm(y))
snr=20*log10(norm(pswa)/norm(pswa-x))
snr1=20*log10(norm(xh)/norm(xh-x))
snr2=20*log10(norm(xs)/norm(xs-x))
⛄ 运行结果
⛄ 参考文献
[1] 罗娜, 王利兵, 王静,等. 基于小波模极大值的地震信号去噪研究[J]. 山西地震, 2015(2):5.
[2] 刘云. 基于Blackman窗函数插值的小波模极大值去噪算法[D]. 河南理工大学.
[3] 张兆宁, 董肖红, 潘云峰. 基于小波变换模极大值去噪方法的改进[J]. 电力系统及其自动化学报, 2005, 17(2):4.
⛳️ 代码获取关注我
❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料