首页 > 其他分享 >基于小波变换的去噪,带GUI界面,可以设置小波变换层数

基于小波变换的去噪,带GUI界面,可以设置小波变换层数

时间:2023-02-10 15:34:27浏览次数:52  
标签:Xh 阈值 变换 GUI 小波 于小波 信号 h0

1.算法描述

       近年来,小波理论得到了非常迅速的发展,而且由于其具备良好的时频特性,因而实际应用也非常广泛。在去噪领域中,小波理论也同样受到了许多学者的重视,他们应用小波进行去噪并获得了非常好的效果。

 

具体来说小波去噪方法的成功主要得益于小波变换具有如下特点:

 

(1)低熵性,小波系数的稀疏分布,使得图象变换后的熵降低;

 

(2)多分辨率,由于采用了多分辨率的方法,所以可以非常好地刻画信号的非平稳特征,如边缘、尖峰、断点等;

 

(3)去相关性,因为小波变换可以对信号进行去相关,且噪声在变换后有白化趋势,所以小波域比时域更利于去噪;

 

(4)选基灵活性,由于小波变换可以灵活选择变换基,从而对不同应用场合,对不同的研究对象,可以选用不同的小波母函数,以获得最佳的效果。

 

       小波去噪方法包括三个基本的步骤:对含噪声信号进行小波变换;对变换得到的小波系数进行某种处理,以去除其中包含的噪声;对处理后的小波系数进行小波逆变换,得到去噪后的信号。小波去噪方法的不同之处集中在第一步。

 

        相比以往的其他去噪方法,小波变换在低信噪比情况下的去噪效果较好,去噪后的信号识别率较高,同时小波去噪方法对时变信号和突变信号的去噪效果尤其明显。

 

 

 

 

        利用小波分析对监测采集的信号进行去噪处理,可以恢复原始信号。利用小波分析进行去噪,包括以下3种方法:

 

       默认阈值去噪处理:该方法利用函数ddencmp() 生成信号的默认阈值,然后利用函数wdencmp() 进行去噪处理;

       给定阈值去噪处理:在实际的去噪处理过程中,阈值往往可通过经验公式获得,且这种阈值比默认阈值的可信度高。在进行阈值量化处理时可利用函数wthresh();

       强制去噪处理:该方法是将小波分解结构中的高频系数全部置0,即滤掉所有高频部分,然后对信号进行小波重构。这种方法比较简单,且去噪后的信号比较平滑,但是容易丢失信号中的有用成分。

 

2.仿真效果预览

matlab2022a仿真结果如下:

 

 

 

 

3.MATLAB核心程序

 

% 小波分解与程序,Xk0是要分解的原始信号,step是表示要分解的层数
[h0,h1,g0,g1]=filtercoefficience;
Xh=Xk0';D=0;
for lstep=1:step
    N=length(Xh);
    Yk=fft(Xh,N);
    H0k=fft(h0,N);
    H1k=fft(h1,N);
    Xh=drawwing(ifft(Yk(1:N).*conj(H0k(1:N))));
    Xh=real(Xh);D=real(D);
    d=drawwing(ifft(Yk(1:N).*conj(H1k(1:N))));
   thrd= ddencmp('den','wv',d);%用默阈值进行消噪处理
    Td=abs(d)>thrd;
    d=Td.*d;
    D=[d,D];
end
 
%采用二项式正交小波滤波器
h0=[0.48296 0.83652 0.22414 -0.12941];%选用N为3的最小相位
N=length(h0);
for k=0:(N-1)
    h1(k+1)=-(-1)^k*h0(N-k);
    g0(k+1)=h0(N-k);
end
for t=0:(N-1)
    g1(t+1)=h1(N-t);
end
A99

 

  

 

标签:Xh,阈值,变换,GUI,小波,于小波,信号,h0
From: https://www.cnblogs.com/51matlab/p/17109113.html

相关文章