denosing.m

来自「这是一个小波阈值去噪的程序。优点:可以根据数据信号(2D)的特征确定全局阈值大小」· M 代码 · 共 26 行

M
26
字号
function Ys=denoising(s,tt)
col=size(s);
col=col(1,2);
for i=1:col
    [c(:,i),l(:,i)]=wavedec(s(:,i),tt,'db4');
     Cs(:,i)=c(:,i);
    A(:,i)=appcoef(c(:,i),l(:,i),'db4',tt);
    la=length(appcoef(c(:,i),l(:,i),'db4',tt));
    
    qq=0;
    for j=tt:-1:1
        dd=detcoef(c(:,i),l(:,i),j);
        t(j,i)=length(dd);                %计算各阶小波系数的长度
            q=1+qq;qq=qq+t(j,i);
        D(q:qq,i)=dd;
    end;
    N=length(c(:,i));
       %以下的阈值计算需要针对不同的信号特征随时调整
       g(i)=std(abs(D(q:qq,i)),1);
       u(1,i)=g(i)*(2*log2(N-la))^0.5;  
      DD(:,i)=wthresh(D(:,i),'s',u(1,i));
            %信号重建
    Cs(la+1:N,i)=DD(:,i);
    Ys(:,i)=waverec(Cs(:,i),l(:,i),'db4');
end

⌨️ 快捷键说明

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