matlab 小波阈值去噪函数简介

文章目录

目录

文章目录

前言

一、基于小波的各函数简介

1.小波分解函数dwt和wavedec

1)dwt:单尺度(单级)离散一维小波变换

2)wavedec:多尺度(多级)一维小波分解

2.提取各层系数函数appcoef和detcoef

1)appcoef:提取一维信号的某层近似系数(低频系数)

2)detcoef:提取一维细节系数(高频系数)

3.阈值获取函数thselect,ddencmp,wbmpen

1)thselect:该阈值选择用于去噪

2)ddencmp:用于获取去噪或压缩的默认阈值

4.阈值处理函数wthcoef,wthresh

1)wthcoef:一维(1-D)信号小波系数阈值处理

2)wthresh:软阈值或硬阈值处理

5.小波重构函数upcoef,waverec

1)upcoef:直接从一维小波系数重建

2)waverec:多层一维小波重构

6.去噪函数wden,wdencmp

1)wden:用小波进行自动1-D去噪

2)wdencmp:用小波进行去噪或压缩(分析信号或图像)



前言

        在数据采集之后,我们需要对数据进行处理,使用小波变换对数据处理的效果比较好,而且在matlab中已经集成了小波工具箱,可以方便的对信号进行处理。


一、基于小波的各函数简介

        小波阈值去噪的步骤为首先是小波分解,其次是阈值处理(小波系数),最后是小波重构。

1.小波分解函数dwt和wavedec

1)dwt:单尺度(单级)离散一维小波变换

形式1:[CA,CD]=dwt(X,'wname')

CA:近似系数向量;

CD:细节系数向量;

X:需要分解的向量;

“wname”:小波名称的字符串。

形式2:[CA,CD]=dwt(X,Lo_D,Hi_D)

Lo_D:分解低通滤波器。

Hi_D:分解高通滤波器。

2)wavedec:多尺度(多级)一维小波分解

形式:[C,L] = wavedec(X,N,'wname')

C:存放的是近似系数(CA)和细节系数(CD)向量;

L:存放的是CA和CD对应的长度;

X:需分解的信号

N:分解尺度(层数)

'wname':小波名称的字符串。

2.提取各层系数函数appcoef和detcoef

1)appcoef:提取一维信号的某层近似系数(低频系数)

形式1:A = appcoef(C,L,'wname',N)

A:提取的近似系数

C,L:小波分解的结构,见上;

N:分解尺度(层数)

'wname':小波名称的字符串。

2)detcoef:提取一维细节系数(高频系数)

形式:D=detcoef(C,L,N)

提取在小波分解结构[C,L]的N级(尺度)细节系数;

3.阈值获取函数thselect,ddencmp,wbmpen

1)thselect:该阈值选择用于去噪

形式:THR=thselect(X,TPTR)

X:需去噪的信号;

TPTR:阈值选取规则;

TPTR='rigrsure',自适应阈值选择使用Stein的无偏风险估计原理;

TPTR='heursure',使用启发式阈值选择;

TPTR='sqtwolog',阈值等于sqrt(2*log(length(X)));

TPTR='minimaxi',用极大极小原理选择阈值;

阈值选择规则基于底层模型y=f(t)+e,其中e是白噪声N(0,1)。

2)ddencmp:用于获取去噪或压缩的默认阈值

形式:[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,IN2,X)

THR:返回去噪或压缩的默认阈值;

SORH:代表软或硬阈值化,‘s’表示软阈值化;

KEEPAPP:是否对近似系数进行阈值处理,0表示不进行,1表示进行。

CRIT:选取的熵函数(仅用于小波包);

IN1:'den' (信号去噪)or  'cmp'(信号压缩);

IN2:'wv' (使用小波分解)or  'wp'(使用小波包分解)

X:输入信号;

4.阈值处理函数wthcoef,wthresh

1)wthcoef:一维(1-D)信号小波系数阈值处理

形式1:NC=wthcoef('d',C,L,N)

返回小波分解结构[C,L]经过向量N中指定的细节系数置0后的小波分解向量NC;

'd':应该是处理细节系数;

形式2:NC = wthcoef('a',C,L) 

返回小波分解结构[C,L]经过近似系数置0后的小波分解向量NC。

'a':应该是处理近似系数;

N:包含要压缩的细节级别;

2)wthresh:软阈值或硬阈值处理

形式:Y=wthresh(X,SORH,T)

如果SORH='s'表示软阈值处理,如果SORH='h'表示硬阈值处理;

X:需要处理的小波系数;

T:阈值;

5.小波重构函数upcoef,waverec

1)upcoef:直接从一维小波系数重建

形式:Y=upcoef(O,X,'wname',N)

Y:重构后的信号

O:如果O='a',则重构近似系数;如果O='d',则重构细节系数。

Y = upcoef(O,X,'wname') 等价于 Y = upcoef(O,X,'wname',1).

2)waverec:多层一维小波重构

形式:X=waverec(C,L,'wname')

基于多级小波分解结构[C,L]

X:重构后的信号;

6.去噪函数wden,wdencmp

1)wden:用小波进行自动1-D去噪

形式1:XD=wden(X,TPTR,SORH,SCAL,N,WNAME)

XD:去噪后的信号;

X:原始信号;

TPTR:阈值选择规则,同上;

SORH:同上;

SCAL:定义阈值重缩放的类型;

'one'没有重缩放。

“sln”使用基于第一级的噪声估计值重新缩放系数。

“mln”使用每一层噪声的相关估计进行重新缩放。

N:小波变换的级别(尺度);

WNAME:小波基(指定为字符串);

形式2:XD=wden(C,L,TPTR,SORH,SCAL,N,WNAME)

2)wdencmp:用小波进行去噪或压缩(分析信号或图像)

形式:[XC,CXC,LXC,PERF0,PERFL2] =wdencmp('gbl'  or 'lvd' ,X,'wname',N,THR,SORH,KEEPAPP)

XC:处理后信号;

CXC,LXC:XC的小波分解结构;

PERF0:是L^2(范数)压缩分数以百分比表示。

PERFL2:是L^2(范数)恢复分数以百分比表示。

'gbl':每层采用相同阈值处理;

'lvd':每层采用不同阈值处理;

KEEPAPP:为0时表示不对近似系数进行阈值处理,为1时表示对近似系数进行阈值处理;

关于小波的基础知识博客很详细(非常感谢)(5条消息) 小波变换和小波阈值法去噪_红叶幽香的博客-CSDN博客_小波变换去噪https://blog.csdn.net/zhang0558/article/details/76019832

(5条消息) 基于MATLAB的小波阈值去噪_方克明的博客-CSDN博客_小波软阈值matlabhttps://blog.csdn.net/godloveyuxu/article/details/53160922

你可能感兴趣的:(matlab信号处理,matlab)