资源简介

matlab下birge-massart算法计算阈值 基于小波函数分解的心电信号去噪

资源截图

代码片段和文件信息

clear; 
%读取ECG信号 
fid=fopen(‘ecg.txt‘‘r‘); 
x=fscanf(fid‘%f %f %f‘[600 3]); 
fclose(fid); 
N=length(x); 
for i=0:N/3-1 
    t(i+1)=x(3*i+1); 
    sig1(i+1)=x(3*i+2); 
end 
s=sig1+0.6*randn(1length(sig1)); 
 
figure(1);
subplot(211);
plot(ts‘LineWidth‘2);
xlabel(‘时间‘);
axis([0 1.2 -inf inf]);
ylabel(‘幅值‘); 
title(‘原始ECG信号‘); 
grid on

%选用基波函数 
wavelet=‘db5‘; 
%分解级数 
level=3;
%压缩参数(去噪时alpha=3)
alpha=1.5; 
%阈值类型(硬阀值)
sorh=‘h‘; 
%小波分解 
[cl]=wavedec(slevelwavelet); 
%birge-massart算法计算阈值 
[thrnkeep]=wdcbm(clalpha); 
%使用硬阈值压缩信号 
%‘lvd’为允许设置各层阀值,‘gbl阀值’为固定阀值
[xccxclxcperf0perfl2]=wdencmp(‘lvd‘clwaveletlevelthrsorh); 
subplot(212);
plot(txc‘LineWidth‘2);
xlabel(‘时间‘);
axis([0 1.2 -inf inf]);
ylabel(‘幅值‘);
title(‘去噪ECG信号‘);
grid on

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        893  2011-01-05 17:34  ecg1.m

----------- ---------  ---------- -----  ----

                  893                    1


评论

共有 条评论