matlab 小波变换_浅谈小波阈值降噪

8e9164dd6b4b4fa1fef7a3bdd541c079.png 89bba016da05a6553e060a092bd6fc7e.png

    机械故障诊断中,采集得到的设备振动信号不可避免的含有一定的噪声成分。良好的去噪效果对于信号分析有着很的大帮助。由于小波变换具有良好的时频特性,通过小波变换可对信号的不同频率成分进行分解,在信号去噪中得到了广泛的应用。其中,小波阈值降噪是一种实现简单,效果较好的小波去噪方法。通过对小波分解后的各层系数中模大于或小于某设定阈值的系数分别处理,然后进行反变换重构出去噪后的信号。下面对小波阈值降噪进行简要介绍。

1.基本思想

 假定一个叠加噪声的信号模型如下:                

07f38b3c20ba166848e86cb6daa59b88.png

f(t)是我们想要得到的原始信号,n(t)为噪声。降噪的目的就是抑制n(t)以恢复f(t)。通常情况下,n(t)表现为高频信号,而实际中f(t)通常为低频信号,或者是较为平稳的信号。基于小波变换的去噪方法利用小波变换中的变尺度特性,对确定信号有一种‘集中’能力。如果一个信号的能量集中于小波变换域少数小波系数上,那么它们的值必然大于在小波变换域内能量分散后大量信号和噪声的小波系数。这时可通过选取合适的阈值,大于阈值的小波系数被认为是信号产生的,予以保留;小于阈值的则认为是噪声产生的,予以置零,从而达到去噪的目的。一般一维信号的小波阈值降噪可以按照下面三个步骤进行:

     (1)选择合适的小波基函数,确定小波分解层数,对信号进行N层小波分解,得到各尺度小波分解系数Wj,k。

     (2)设定阈值,保留所有的低频系数,确保信号的整体形状不变;对每一层的高频系数Wj,k进行阈值函数处理。

    (3)根据阈值处理后的小波系数,进行一维信号的小波重构,得到去噪后的信号估计值f(t)。

e8c197b0044c137d4e428af86b617b12.png

      在进行小波分析时常用到‘近似’和‘细节’,近似表示信号的高尺度,即低频信息;细节表示信号的低尺度,即高频信息。对含有噪声的信号,噪声分量的主要能量集中在小波分解后的细节分量中。

2.关键问题

   在上述小波阈值降噪过程中,小波基和分解层数的选择,阈值的选取准则,阈值函数的设计都会对最终的信号去噪效果产生很大影响。

2.1小波基选择

  通常我们希望所选取的小波同时满足以下条件:正交性、高消失矩、紧支性、对称性或反对称性。由于小波基函数在处理信号时各有特点,且没有任何一种小波基函数可以对所有类型信号都取得最优的去噪效果。所以在应用的时候一般选取具有紧支的小波以及根据信号的特征来选取较为合适的小波。

2.2 分解层数选择

  在小波分解中,分解层数的选择也是非常重要的一步。取得越大,则噪声和信号表现的不同特性越明显,越有利于二者的分离。但另一方面,分解层数越大,重构到的信号失真也会越大,在一定程度上又会影响最终去噪的效果。因此在应用时要格外注意处理好两者之间的矛盾,选择一个合适的分解尺度。

2.3 阈值选取

  在小波域,有效信号对应的系数很大,而噪声对应的系数很小。噪声在小波域对应的系数仍满足高斯白噪分布。因此可以通过小波系数、或者原始信号来进行评估能够消除噪声在小波域的阈值。目前主要有通用阀值(VisuShrink)、SureShrink阀值、Minimax阀值、BayesShrink阀值等。

2.4 阈值函数的选择

   确定了噪声在小波系数(域)的阈值限之后,就需要有个阈值函数对小波系数进行过滤,去除噪声系数。阈值函数就是用来修正小波系数的规则,常用的阈值函数有软阈值和硬阈值方法,基于这两种方法许多学者也进行了改进。

1)硬阈值法:

将绝对值小于阈值的小波系数变为零,而将绝对值大于阈值的小波系数不加任何处理予以保留。硬阈值算法可以很好的保留原始信号边缘等局部特征,由于其收缩函数是不连续的,重构得到的信号可能会产生一些振荡。

2a628cc3adfb94802aac0aaf3f21a91e.png

2)软阈值法:

将绝对值大于阈值的小波系数不完全保留,而是做收缩处理。采用软阈值算法处理,虽然整体连续性好,但分解系数之间总存在恒定的偏差,会影响重构信号与真实信号的逼近程度。

1583ac09abaafe9737e69e4a80b1e8d5.png 10bd35088a0d9e7ca19eeed66dc3dde8.png 622557b9e577a49bfede3f2bad6d7d42.png

3.MATLAB实例

clear all;

clc;

N=5000;

fs=1000;

load xz.mat;

s=xz(1:N);                        %加载信号

%%小波分解

[c,l]=wavedec(s,7,'coif5');            %小波基为coif5,分解层数为7层

ca11=appcoef(c,l,'coif5',7);           %获取低频信号

cd1=detcoef(c,l,1);

cd2=detcoef(c,l,2);

cd3=detcoef(c,l,3);

cd4=detcoef(c,l,4);                  %获取高频细节

cd5=detcoef(c,l,5);

cd6=detcoef(c,l,6);

cd7=detcoef(c,l,7);

sd1=zeros(1, length(cd1));

sd2=zeros(1, length(cd2));            %1-2层置0,3-7层用软阈值函数处理

sd3=wthresh(cd3,'s',0.014);

sd4=wthresh(cd4,'s',0.014);

sd5=wthresh(cd5,'s',0.014);

sd6=wthresh(cd6,'s',0.014);

sd7=wthresh(cd7,'s',0.014);

c2=[ca11,sd7,sd6,sd5,sd4,sd3,sd2,sd1];

s0=waverec(c2,l,'coif5');             %小波重构

save s0.mat s0

figure;

subplot (211); plot(s0);

ff=fs*(0:N/2-1)/N;

Yf= fft(s0);              

Q=2*abs (Yf)/N;

Subplot (212); plot(ff(1:N/2),Q(1:N/2));

444091b8a193e51fc8f54d4719890631.png

参考文献

1.季策, 路学亮,张志伟.一种新的小波阈值去噪算法在弱信号检测中的应用. Diss. 2011.

2.红叶幽香.小波变换和小波阈值法去噪https://blog.csdn.net/zhang0558/article/details/76019832

作者/ 杨晨 

编辑 / 沈萌恩

来源 / 智能故障诊断与预测

8e9164dd6b4b4fa1fef7a3bdd541c079.png
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 小波变换是一种数字图像处理算法,可以对图像进行降噪处理。Matlab是一种常用的编程语言和软件工具,利用Matlab可以方便地实现小波变换和图像处理。 在Matlab中,可以使用Wavelet Toolbox来实现小波变换。首先需要将图像读入Matlab中,并转换为灰度图像。然后可以选择不同的小波基函数和分解层数,对图像进行小波分解。分解得到的系数可以进行阈值处理,将较小的系数设为0,从而抑制图像中的噪声。 接着,可以利用小波重构将处理后的小波系数重建成降噪后的图像。重构过程中也需要选择相同的小波基函数和分解层数,以保证重构结果与分解前的图像尽可能接近。 值得注意的是,小波降噪的效果往往取决于选择合适的小波基函数和阈值。通常需要进行多次实验,比较不同选择下的降噪效果,才能选出最优的方法。 总之,利用Matlab实现小波变换图像降噪需要熟练掌握小波变换的原理和Matlab编程的技巧。优秀的降噪效果需要细致调试和多次实验,才能达到理想的效果。 ### 回答2: Matlab小波变换可以用来降噪图像。首先,将需要处理的图像读入到Matlab中,并将其转换为灰度图像。之后,可以使用Matlab中的小波变换函数对图像进行处理。 小波变换的过程包括将图像分解为多个不同尺度和不同方向的子带信号。然后,可以通过对子带信号进行阈值处理来实现图像降噪阈值处理可以采用硬阈值或软阈值。硬阈值将小于设定阈值的像素值设置为0,而软阈值则将小于设定阈值的像素值进行缩放。这样处理后,将所有子带信号合并重构即可得到降噪后的图像。 需要注意的是,在选择阈值时需要进行一定的参数调整,以达到最优的降噪效果。并且,小波变换是一种复杂的数学方法,需要有一定的数学基础才能掌握。但在Matlab中,仅需几行简单的代码就能进行小波变换图像降噪,非常方便。 ### 回答3: 小波变换是一种频域和时域结合的技术,可被用于信号和图像的处理。在MATLAB中,通过使用小波变换工具箱中的小波方法,可以对图像进行去噪处理。 首先,使用imread函数读取原始图像。然后,使用wavedec2函数进行二维小波变换,将图像分解成不同分辨率的小波系数。这些系数可以通过使用wthcoef2或 wrcoef2函数进行重构。 将小波系数传递到去噪函数中,例如使用wdenoise2函数或sgolayfilt函数进行滤波,以去除噪声。重构处理后的小波系数,使图像恢复到去噪后的版本。最后,使用imshow函数显示原始图像和去噪后的图像以进行比较。 小波变换技术是一种强大的工具,能够自动从复杂的图像中提取有用的信息。使用MATLAB中的小波变换工具箱和相应的函数,可以轻松地对图像进行去噪处理,以提高图像质量和对图像进行更准确的分析和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值