小波阈值去噪

小波阈值去噪目录1.概念2.原理3.影响降噪效果的因素3.1小波基的选择3.2分解层数的选择3.3阈值的选择3.4阈值函数的选择4.MATLAB代码参考文献1.概念小波分析即用Mallat塔式算法对信号进行降阶分解。该算法在每尺度下将信号分解成近似分量与细节分量。近似分量表示信号的高尺度,即低频信息;细节分量表示信号的低尺度,即高频信息。对含有噪声的信号,噪声分量的主要能量集中在小波分解的细节分量中。2.原理小波阈值去噪的实质为抑制信号中无用部分、增强有用部分的过

大家好,又见面了,我是你们的朋友全栈君。

目录

1.概念

2.原理

3.影响降噪效果的因素

3.1小波基的选择

3.2分解层数的选择

3.3阈值的选择

3.4阈值函数的选择

4.MATLAB代码

参考文献


1.概念

小波分析即用Mallat塔式算法对信号进行降阶分解。该算法在每尺度下将信号分解成近似分量与细节分量。近似分量表示信号的高尺度,即低频信息;细节分量表示信号的低尺度,即高频信息。

对含有噪声的信号,噪声分量的主要能量集中在小波分解的细节分量中。


2.原理

小波阈值去噪的实质为抑制信号中无用部分、增强有用部分的过程。小波阈值去噪过程为:(1)分解过程,即选定一种小波对信号进行n层小波分解;(2)阈值处理过程,即对分解的各层系数进行阈值处理,获得估计小波系数;(3)重构过程,据去噪后的小波系数进行小波重构,获得去噪后的信号。

小波阈值去噪
小波阈值去噪过程
小波阈值去噪
小波分解重构过程

小波分解:X->ca3,cd3,cd2,cd1;小波重构:ca3,cd3,cd2,cd1->X。其中ca为低频信息、近似分量,cd为高频、细节分量。


3.影响降噪效果的因素

3.1小波基的选择

在对信号进行小波分解时需要选择合适的小波基,由于没有任何一种小波基可以对不同类型的信号达到最优的分解效果,因此,如何选择小波基成为小波分解的一个重点。针对现实中的信号,小波基的选择一般要考虑以下几个因素:支撑长度、对称性、消失矩、正则性、相似性。针对一维信号,例如语音信号,通常选择dB小波和sym小波。


3.2分解层数的选择

在对信号进行小波分解时,分解的层数取得越大,则噪声和信号表现的不同特性越明显,越有利于二者的分离,但是分解的层数越大,经过重构的信号失真也会越大,在一定程度上会对信号去噪的效果产生较差的影响。因此,如何选择分解层数以解决信噪分离效果和重构信号失真之间的矛盾呢?

小波分解的频段范围与采样频率有关。若进行N层分解,则各个频段范围为:

小波阈值去噪

假设原始信号X的采样频率为1000Hz,则信号的最大频率为500,对该信号做3层小波分解,则各个频段范围如下图所示。

小波阈值去噪


3.3阈值的选择

在小波域,有效信号对应的系数很大,而噪声对应的系数很小并且仍满足高斯分布。因此可以通过设定阈值将信号在小波域某段区间内的系数置零,就能最大程度的抑制噪声,同时只是稍微损伤有效信号

阈值选择规则基于模型\large y=f(t)+e\large e是高斯白噪声。

 

目前常见的阈值选择方法有:无偏风险估计阈值、极大极小阈值、固定阈值、启发式阈值。

MATLAB自带的自适应阈值选择函数,调用格式如下:

        thr=thselect(X,str);

根据字符串str定义的阈值选择方法求信号X的自适应阈值thr。

        str= ‘rigrsure‘:无偏风险估计阈值;

        str= ‘minimaxi’:极大极小阈值;

        str= ‘sqtwolog’:固定阈值;

        str= ‘heursure’:启发式阈值。

小波阈值去噪

一般来讲,极大极小阈值无偏风险估计阈值比较保守,当噪声在信号的高频段分布较少时,这两种阈值估计方法效果较好,可以将微弱的信号提取出来。而固定阈值和启发式阈值去噪比较彻底,在去噪时显得更为有效,但是也容易把有用的信号误认为噪声去掉。


3.4阈值函数的选择

确定了高斯白噪声在小波域的阈值门限之后,就需要有个阈值函数对含有噪声系数的小波系数进行过滤,去除高斯噪声系数,常用的阈值函数有硬阈值函数和软阈值函数。

3.4.1硬阈值函数

当小波系数的绝对值大于给定阈值时,小波系数不变;小于阈值时,小波系数置零。

小波阈值去噪

3.4.2软阈值函数

当小波系数的绝对值大于给定阈值时,令小波系数减去阈值;小于阈值时,小波系数置零。

小波阈值去噪

MATLAB自带的阈值处理函数,调用格式如下:

        Y=wthresh(X,SORH,thr);

返回输入向量或矩阵X经过软阈值(SORH=’s’)或硬阈值(SORH=’h’)处理后的信号Y,thr是阈值。


4.MATLAB代码

%% 基于小波变换的阈值去噪
clc;
clear;
close all;
%% 产生仿真信号
Fs=100;   %数据采样率Hz
t=(1:1/Fs:4096*1/Fs)'; %对数据进行采样,将t转置为1列
N = length(t);  %数据的采样数目
f1 =0.8; %信号的频率
f2=0.05;
x=2*sin(2*pi*f1*t+cos(2*pi*f2*t));    %产生原始信号
nt=0.9*randn(N,1);  %高斯白噪声生成
y=x+nt; %含噪信号
%% 用db4小波对含噪信号进行5层分解并提取系数
[c,l]=wavedec(y,5,'db4'); 
%取第5层低频近似系数
ca5=appcoef(c,l,'db4',5);
%取各层高频细节系数
cd5=detcoef(c,l,5);
cd4=detcoef(c,l,4);
cd3=detcoef(c,l,3);
cd2=detcoef(c,l,2);
cd1=detcoef(c,l,1);
thr=thselect(y,'sqtwolog'); % 阈值获取
%% 进行软阈值处理
ysoft5=wthresh(cd5,'s',thr);
ysoft4=wthresh(cd4,'s',thr);
ysoft3=wthresh(cd3,'s',thr);
ysoft2=wthresh(cd2,'s',thr);
ysoft1=wthresh(cd1,'s',thr);
c1=[ca5;ysoft5;ysoft4;ysoft3;ysoft2;ysoft1];
Y=waverec(c1,l,'db4');
%% 画图
% 时域波形对比图
figure;
subplot(3,1,1);plot(t,x);xlabel('t/s');ylabel('幅值');title('模拟信号x(t)');
subplot(3,1,2);plot(t,y);xlabel('t/s');ylabel('幅值');title('含噪信号y(t)');
subplot(3,1,3);plot(t,Y);xlabel('t/s');ylabel('幅值');title('去噪后信号x(t)');
% 频谱对比图
figure;
fs=5;      % 采样频率为5Hz
[f,A] = PinPu(x,fs);
subplot(3,1,1);plot(f,A);xlabel('频率/Hz');ylabel('幅值/V');
[f,A] = PinPu(y,fs);
subplot(3,1,2);plot(f,A);xlabel('频率/Hz');ylabel('幅值/V');
[f,A] = PinPu(Y,fs);
subplot(3,1,3);plot(f,A);xlabel('频率/Hz');ylabel('幅值/V');
%% 降噪指标
% 降噪前信噪比
p1=sum(abs(y).^2)/N;
p2=sum(abs(nt).^2)/N;
SNR(1)=10*log10(p1/p2);
% 降噪后信噪比
p3=sum(abs(Y).^2)/N;
p4=sum(abs(Y-x).^2)/N;
SNR(2)=10*log10(p3/p4);
% 均方根误差
RMSE=sqrt(mean((Y-x).^2));
% 相关系数
CR=corr(Y,x,'type','Pearson');

参考文献

[1]司莉,毕贵红,魏永刚等.基于RQA与SVM的声发射信号检测识别方法[J].振动与冲击,2016,35(2):98.

[2]有关小波的几个术语及常见的小波基介绍

[3]小波变换和小波阈值法去噪

[4]基于MATLAB的小波阈值去噪

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149288.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(1)


相关推荐

  • vs2013下载及安装教程_VS2012

    vs2013下载及安装教程_VS2012对于编程人员,vs2013是一款不错的软件,可以开发java,c#,c++,功能强大,下面我就为大家讲讲如何让下载与安装方法:1.官方下载地址http://download.microsoft.com/download/9/3/E/93EA27FF-DB02-4822-8771-DCA0238957E9/vs2013.5_ult_chs.

  • [非官方]ArcGIS10.2 for Desktop扩展工具包——XTools Pro

    [非官方]ArcGIS10.2 for Desktop扩展工具包——XTools Pro

    2021年12月14日
  • MySQL Community Server_应用安装失败怎么解决

    MySQL Community Server_应用安装失败怎么解决官网下载先去官网下载MySQL链接跳转的是mysql的下载地址:https://dev.mysql.com/downloads/mysql/目前最新版的就是8.0.21解压好,是下图的样式初始化配置由于下载好且解压的文件夹没有my.ini文件,所以我这边新建一个,配置我已经给出,大家直接复制根据自己的实际修改即可。好了,准备工作已经完成,现在开始我们正式的初始化吧。直接在地址栏输入cmd,进入命令行界面进行安装操作。可能有些小伙伴会遇上没有权限的情况,就只好以管理员运行了我

  • centos7.4安装docker_pythondocker

    centos7.4安装docker_pythondocker前言当我们在一台电脑上搭建了python3.6的环境,下次换台电脑,又得重新搭建一次,设置环境变量等操作。好不容易安装好,一会提示pip不是内部或外部命令,一会又提示pip:commandno

  • 中文字体的种类_漂亮的中文字体

    中文字体的种类_漂亮的中文字体简单来分的话,大致可分为三类:1.古代字体:宋体,楷体等2.现代字体:各种黑体3.形变字体:各种美术字。按照衬线体来分的话:衬线体:宋体非衬线体:楷体,黑体。详情:宋体:宋体是一种衬

  • 垃圾图像分类流程图yolov4-tiny_用python编写垃圾分类系统

    垃圾图像分类流程图yolov4-tiny_用python编写垃圾分类系统数据下载链接https://pan.baidu.com/s/1wr3h2Wc720uqUeIroTCIJA百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.baidu.com/s/1wr3h2Wc720uqUeIroTCIJA提取码:mqic为什么要进行垃圾分类?当废物处理不当-时,就会发生回收污染-,就像回收带有油的比萨盒(堆肥)一样。或者当废物得到正确处理但未正确准备.

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号