声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2164|回复: 0

[综合讨论] 浅谈小波阈值降噪

[复制链接]
发表于 2022-9-9 16:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

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

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

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

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

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

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

1. 小波基选择

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

2. 分解层数选择

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

3. 阈值选取

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

4. 阈值函数的选择

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

  · 硬阈值法:将绝对值小于阈值的小波系数变为零,而将绝对值大于阈值的小波系数不加任何处理予以保留。硬阈值算法可以很好的保留原始信号边缘等局部特征,由于其收缩函数是不连续的,重构得到的信号可能会产生一些振荡。
3.png
  · 软阈值法:将绝对值大于阈值的小波系数不完全保留,而是做收缩处理。采用软阈值算法处理,虽然整体连续性好,但分解系数之间总存在恒定的偏差,会影响重构信号与真实信号的逼近程度。
4.png
图2 硬阈值函数
5.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 s0figure;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));
6.png
参考文献:
1. 季策, 路学亮,张志伟.一种新的小波阈值去噪算法在弱信号检测中的应用. Diss. 2011.

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

来源:装备智能运维与健康管理微信公众号(ID:PHM-CUMT),原文来自智能故障诊断与预测,作者:杨晨。

回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-27 22:59 , Processed in 0.106918 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表