发布时间:2023-03-02 09:00
阈值去噪法是指首先对含噪信号进行小波分解,对小波系数进行阈值处理,即对于大于(或小于)某阈值的小波系数进行处理,再利用处理后的结构重构原信号。
其中最关键的是阈值函数的选取和阈值T的估计
有三种方法:
法一:小波变换后,在小尺度上具有较高的中心频率,因此小尺度的变换值集中反映了信号高频部分的能量,基于此来估计噪声方差。
法二:用前两个尺度的小波系数相乘得到修正的小波系数,进而估计噪声方差。
法三:图像中噪声方差的估计,平坦的地方进行统计噪声方差。噪声的模拟,可以采用高斯噪声,或者均匀噪声、椒盐噪声等其他噪声。
阈值函数的选取:
1.硬阈值函数
2.软阈值函数
缺点:硬阈值在T点时,函数不连续,用该函数重构信号时会产生震荡;软阈值函数虽然连续性好,但是存在恒定偏差,直接影响重构信号的性质。
3.由软、硬阈值折中法构造
阈值的估计:
1.通用阈值
2.分级阈值
3.Sure阈值
4.GCV阈值
5.Bayes Shrink阈值
MATLAB阈值去噪命令:
一维信号去噪函数[XD,CXD,LXD]=WDEN(X,TPTR,SORH,SCAL,N,\'wname\')
%输入参数:X为原始带噪信号。TPTR为阈值选择准则的字符串:‘rigrsure\'用Stein\'s无偏估计的原理进行的自适应阈值;\'heursure\'是启发式方法;\'sqtwolog\'通用阈值方法,阈值为sqrt(2lnN);\'minimaxi\'最大最小阈值法
%SORH选择\'s\'为软阈值函数,选择\'h\'为硬阈值函数
%SCAL定义多种方法的阈值重新调节:\'one\'表示没有重新调节;\'sln\'表示基于第一层系数进行噪声估计来重新调节;\'mln\'层层独立进行噪声估计来重新调节。
%N为小波分解层数
%‘wname’为小波函数
图像阈值去噪法的MATLAB命令:
默认的自适应阈值获取命令DDENCMP,该命令可用于默认的阈值去噪和压缩中
[THR,SORH,KEEPAPP,CRIT]=DDENCMP(IN1,IN2,X)
输入参数:IN1可以选择\'den\'(去噪)或者\'cmp\'(压缩);
IN2为\'wv\'(单小波)或者\'wp\'(小波包);
X为输入信号,可以是一维信号,也可以是二维的图像。
返回值:THR为阈值;SORH为软阈值或硬阈值;KEEPAPP为允许的逼近系数;CRIT为熵的名字
与默认的自适应选取的去噪阈值命令对应的去噪命令为WDENCMP,该命令也可以用于压缩中
[XC,CXC,LXC,PERF0,PERFL2]=WDENCMP(IN1,X,\'wname\',N,THR,SORH,KEEPAPP)
输入参数:IN1可以选择\'gbl\'(全局阈值)或者\'lvd\'(分层阈值);
X为输入信号,可以是一维信号,也可以是二维的图像;
N为分解层数;
THR为阈值;
SORH为软阈值或者硬阈值;
KEEPAPP为是否压缩低频逼近系数,等于1时不压缩,否则进行压缩
返回值:XC为去噪后的信号;[CXC,LXC]为XC去噪后的结构;PERFL2和PERF0为L2模下重构压缩的百分比
clc,clear all
close all;
load sumsin;
f=[sumsin zeros(1,24)];
lev=4;
n=5;
wf=\'db3\';
%软硬阈值去噪
%一维信号去噪函数[XD,CXD,LXD]=WDEN(X,TPTR,SORH,SCAL,N,\'wname\')
%输入参数:X为原始带噪信号。TPTR为阈值选择准则的字符串:‘rigrsure\'用Stein\'s无偏估计的原理进行的自适应阈值;\'heursure\'是启发式方法;\'sqtwolog\'通用阈值方法,阈值为sqrt(2lnN);\'minimaxi\'最大最小阈值法
%SORH选择\'s\'为软阈值函数,选择\'h\'为硬阈值函数
%SCAL定义多种方法的阈值重新调节:\'one\'表示没有重新调节;\'sln\'表示基于第一层系数进行噪声估计来重新调节;\'mln\'层层独立进行噪声估计来重新调节。
%N为小波分解层数
%‘wname’为小波函数
s_s=wden(f,\'heursure\',\'s\',\'one\',lev,wf);
s_h=wden(f,\'heursure\',\'h\',\'one\',lev,wf);
figure,
plot(s_s);grid on;
xlabel(\'t\'),ylabel(\'s_s(t)\');
figure,
plot(s_h);grid on;
xlabel(\'t\'),ylabel(\'s_h(t)\');
P1=psnr(f,s_s);
P2=psnr(f,s_h);
m1=mse(f,s_s);
m2=mse(f,s_h);
与软阈值函数相比,硬阈值函数去噪信号更接近原始信号。
分库分表真的适合你的系统吗?聊聊分库分表和NewSQL如何选择
27.JavaScript的基础类型和对象一样有属性和方法,你知道这是如何实现的吗?
走进“开源SDR实验室” 一起玩转GNU Radio:LimeSDR Source/Sink模块
深度学习中的Attention、MLP、Conv和Re-parameter论文大总结
解决在使用SpringBoot和MyBatis时,用单元测试往MySQL数据库中插入一条数据,实际却插入了两条重复的数据的问题
【阅读笔记】Grad-CAM:通过基于梯度的定位从深度网络得到可视化的解释