ecg1.m

来自「matlab的小波对一个心电信号进行去噪处理」· M 代码 · 共 47 行

M
47
字号
clear; 
%正常人心律信号 
fid=fopen('2.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); 
    sig2(i+1)=x(3*i+3); 
end 
s=sig1+0.5*randn(1,length(sig1)); 
%时域信号 
figure(1); 
subplot(2,1,1);plot(t,s,'LineWidth',2);xlabel('时间 t/s');ylabel('电压 V/mV'); 
title('含噪的ECG信号'); 
%选用小波函数 
wavelet='db5'; 
%分解级数 
level=5; 
%压缩参数 
alpha=1.5; 
%阈值类型 
sorh='h'; 
%小波分解 
[c,l]=wavedec(s,level,wavelet); 
%计算阈值 
[thr,nkeep]=wdcbm(c,l,alpha); 
%使用硬阈值压缩信号 
[xc,cxc,lxc,perf0,perf12]=wdencmp('lvd',c,l,wavelet,level,thr,sorh); 
subplot(2,1,2);plot(t,xc,'LineWidth',2);xlabel('时间 t/s');ylabel('电压 V/mV'); 
title('重构的ECG信号'); 
%对系数编码 
cC=encode(cxc); 
%传输的系数 
tC=cC; 
%传输的系数向量长度 
tL=length(tC); 
%零系数的百分比 
pzeros=perf0; 
%保留的能量大小 
pnormen=perf12; 
%编码的压缩比 
compratio=length(s)/length(tC);
pzeros
pnormen
compratio

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?