目录
文章目录
前言
一、基于小波的各函数简介
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:[CA,CD]=dwt(X,'wname')
CA:近似系数向量;
CD:细节系数向量;
X:需要分解的向量;
“wname”:小波名称的字符串。
形式2:[CA,CD]=dwt(X,Lo_D,Hi_D)
Lo_D:分解低通滤波器。
Hi_D:分解高通滤波器。
形式:[C,L] = wavedec(X,N,'wname')
C:存放的是近似系数(CA)和细节系数(CD)向量;
L:存放的是CA和CD对应的长度;
X:需分解的信号
N:分解尺度(层数)
'wname':小波名称的字符串。
形式1:A = appcoef(C,L,'wname',N)
A:提取的近似系数
C,L:小波分解的结构,见上;
N:分解尺度(层数)
'wname':小波名称的字符串。
形式:D=detcoef(C,L,N)
提取在小波分解结构[C,L]的N级(尺度)细节系数;
形式: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)。
形式:[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,IN2,X)
THR:返回去噪或压缩的默认阈值;
SORH:代表软或硬阈值化,‘s’表示软阈值化;
KEEPAPP:是否对近似系数进行阈值处理,0表示不进行,1表示进行。
CRIT:选取的熵函数(仅用于小波包);
IN1:'den' (信号去噪)or 'cmp'(信号压缩);
IN2:'wv' (使用小波分解)or 'wp'(使用小波包分解)
X:输入信号;
形式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:包含要压缩的细节级别;
形式:Y=wthresh(X,SORH,T)
如果SORH='s'表示软阈值处理,如果SORH='h'表示硬阈值处理;
X:需要处理的小波系数;
T:阈值;
形式:Y=upcoef(O,X,'wname',N)
Y:重构后的信号
O:如果O='a',则重构近似系数;如果O='d',则重构细节系数。
Y = upcoef(O,X,'wname') 等价于 Y = upcoef(O,X,'wname',1).
形式:X=waverec(C,L,'wname')
基于多级小波分解结构[C,L]
X:重构后的信号;
形式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)
形式:[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