matlabwpdencmp,MATLAB阈值获取函数ddencmp、
thselect、w。。。
MATLAB中实现阈值获取的函数有ddencmp、thselect、wbmpen和wwdcbm,下⾯对它们的⽤法进⾏简单的说明。
⼀、ddencmp的调⽤格式有以下三种:
(1)[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,IN2,X)
(2)[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,''wp'',X)
(3)[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,''wv'',X)
函数ddencmp⽤于获取信号在消噪或压缩过程中的默认阈值。
输⼊参数X为⼀维或⼆维信号;
IN1取值为''den''或''cmp'',''den''表⽰进⾏去噪,''cmp''表⽰进⾏压缩;
IN2取值为''wv''或''wp'',wv表⽰选择⼩波,wp表⽰选择⼩波包。
返回值THR是返回的阈值;SORH是软阈值或硬阈值选择参数;KEEPAPP表⽰保存低频信号;CRIT是熵名(只在选择⼩波包时使⽤)。
⼆、函数thselect的调⽤格式如下:
THR=thselect(X,TPTR);
THR=thselect(X,TPTR)根据字符串TPTR定义的阈值选择规则来选择信号X的⾃适应阈值。
⾃适应阈值的选择规则包括以下四种:
*TPTR=''rigrsure'',⾃适应阈值选择使⽤Stein的⽆偏风险估计原理。
*TPTR=''heursure'',使⽤启发式阈值选择。
*TPTR=''sqtwolog'',阈值等于sqrt(2*log(length(X))).
*TPTR=''minimaxi'',⽤极⼤极⼩原理选择阈值。
阈值选择规则基于模型 y = f(t) + e,e是⾼斯⽩噪声N(0,1)。
三、函数wbmpen的调⽤格式如下:
THR=wbmpen(C,L,SIGMA,ALPHA);
THR=wbmpen(C,L,SIGMA,ALPHA)返回去噪的全局阈值THR。THR通过给定的⼀种⼩波系数选择规则计算得到,⼩波系数选择规则使⽤Birge-Massart的处罚算法。{C,L]是进⾏去噪的信号或图像的⼩波分解结构;SIGMA是零均值的⾼斯⽩噪声的标准偏差;ALPHA是⽤于处罚的调整参数,它必须是⼀个⼤于1的实数,⼀般去ALPHA=2。
设t*使crit(t)=-sum(c(k)^2,k<=t) + 2 * SIGMA^2 * t*(ALPHA+log(n/t))的最⼩值,其中c(k)是按绝对值从⼤到⼩排列的⼩波包系数,n 是系数的个数,则THR=|c(t*)|。
wbmpen(C,L,SIGMA,ALPHA,ARG)计算阈值并画出三条曲线。
2 * SIGMA^2 * t*(ALPHA+log(n/t))
sum(c(k)^2, k<=t)
crit(t)
wdcbm的调⽤格式有以下两种:
(1)[THR,NKEEP]=wdcbm(C,L,ALPHA);
(2)[THR,NKEEP]=wdcbm(C,L,ALPHA,M);
字符串比较函数实现函数wdcbm是使⽤Birge-Massart算法获取⼀维⼩波变换的阈值。返回值THR是与尺度⽆关的阈值,NKEEP是系数的个数。[C,L]是要进⾏压缩或消噪的信号在j=length(L)-2层的分解结构;LAPHA和M必须是⼤于1的实数;THR是关于j的向量,THR(i)是第i层的阈值;NKEEP也是关于j的向量,NKEEP(i)是第i层的系数个数。⼀般压缩时ALPHA取1.5,去噪时ALPHA取3.
2.信号的阈值去噪
MATLAB中实现信号的阈值去噪的函数有wden、wdencmp、wthresh、wthcoef、wpthcoef以及wpdencmp。下⾯对它们的⽤法作简单的介绍。
函数wden的调⽤格式有以下两种:
(1)[XD,CXD,LXD]=wden(X,TPTR,SORH,SCAL,N,''wname'')
(2)[XD,CXD,LXD]=wden(C,L,TPTR,SORH,SCAL,N,''wname'')
函数wden⽤于⼀维信号的⾃动消噪。X为原始信号,[C,L]为信号的⼩波分解,N为⼩波分解的层数。
THR为阈值选择规则:
*TPTR=''rigrsure'',⾃适应阈值选择使⽤Stein的⽆偏风险估计原理。
*TPTR=''heursure'',使⽤启发式阈值选择。
*TPTR=''sqtwolog'',阈值等于sqrt(2*log(length(X))).
*TPTR=''minimaxi'',⽤极⼤极⼩原理选择阈值。
SORH是软阈值或硬阈值的选择(分别对应''s''和''h'')。
SCAL指所使⽤的阈值是否需要重新调整,包含下⾯三种:
*SCAL=''one'' 不调整;
*SCAL=''sln'' 根据第⼀层的系数进⾏噪声层的估计来调整阈值。
*SCAL=''mln'' 根据不同的噪声估计来调整阈值。
XD为消噪后的信号,[CXD,LXD]为消噪后信号的⼩波分解结构。格式(1)返回对信号X经过N层分解后的⼩波系数进⾏阈值处理后的消噪信号XD和信号XD的⼩波分解结构[CXD,LXD]。格式(2)返回参数与格式(1)相同,但其结构是由直接对信号的⼩波分解结构[C,L]进⾏阈值处理得到的。
函数wdencmp的调⽤格式有以下三种:
(1)[XC,CXC,LXC,PERF0,PERFL2]=wdencmp(''gbl'',X,''wname'',N,THTR,SORH,KEEPAPP);
(2)[XC,CXC,LXC,PERF0,PERFL2]=wdencmp(''lvd'',X,''wname'',N,THTR,SORH);
(3)[XC,CXC,LXC,PERF0,PERFL2]=wdencmp(''lvd'',C,L,''wname'',N,THTR,SORH);
函数wdencmp⽤于⼀维或⼆维信号的消噪或压缩。wname是所⽤的⼩波函数,gbl(global的缩写)表⽰每⼀层都采⽤同⼀个阈值进⾏处理,lvd表⽰每层采⽤不同的阈值进⾏处理,N表⽰⼩波分解的层数,THR为阈值向量,对于格式(2)和(3)每层都要求有⼀个阈值,因此阈值向量THR的长度为N,SORH表⽰选择软阈值或硬阈值(分别取值为''s''和''h''),参数KEEPAPP取值为1时,则低频系数不进⾏阈值量化,反之,低频系数要进⾏阈值量化。XC是要进⾏消噪或压缩的信号,[CXC,LXC]是XC的⼩波分解结构,PERF0和PERFL2是恢复或压缩L^2的范数百分⽐。如果[C,L]是X的⼩波分解结构,则PERFL2=100*(CXC向量的范数/C向量的范数)^2;如果X是⼀维信号,⼩波wname是⼀个正交⼩波,则PERFL2=100||XC||^2/||X||^2。
函数wthresh的调⽤格式如下:
Y=wthresh(X,SORH,T)
Y=wthresh(X,SORH,T) 返回输⼊向量或矩阵X经过软阈值(如果SORH=''s'')或硬阈值(如果SORH=''h'')处理后的信号。T是阈值。
Y=wthresh(X,''s'',T)返回的是Y=SIG(X)*(|X|-T)+,即把信号的绝对值与阈值进⾏⽐较,⼩于或等于阈值的点变为零,⼤于阈值的点为该点值与阈值的差值。
Y=wthresh(X,''h'',T)返回的是Y=X*1(|X|>T),即把信号的绝对值和阈值进⾏⽐较,⼩于或等于阈值的点变为零,⼤于阈值的点保持不变。⼀般来说,⽤硬阈值处理后的信号⽐⽤软阈值处理后的信号更粗糙。
函数wthcoef的调⽤格式下⾯四种:
(1)NC=wthcoef(''d'',C,L,N,P)
(2)NC=wthcoef(''d'',C,L,N)
(3)NC=wthcoef(''a'',C,L)
(4)NC=wthcoef(''t'',C,L,N,T,SORH)
函数wthcoef⽤于⼀维信号⼩波系数的阈值处理。
格式(1)返回⼩波分解结构[C,L]经向量N和P定义的压缩率处理后的新的⼩波分解向量NC,[NC,L]构成⼀个新的⼩波分解结构。N包含被压缩的细节向量,P是把较⼩系数置0的百分⽐信息的向量。N和P的长度必须相同,向量N必须满⾜1<=N(i)<=length(L)-2。
格式(2)返回⼩波分解结构[C,L]经过向量N中指定的细节系数置0后的⼩波分解向量NC。
格式(3)返回⼩波分解结构[C,L]经过近似系数置0后的⼩波分解向量NC。
格式(4)返回⼩波分解结构[C,L]经过将向量N作阈值处理后的⼩波分解向量NC。如果SORH=’s‘,则为软阈值;如果SORH=''h''则为硬阈值。N包含细节的尺度向量,T是N相对应的阈值向量。N和T的长度必须相等。
函数wpdencmp的调⽤格式有以下两种:
(1)[XD,TREED,PERF0,PERFL2]=wpdencmp(X,SORH,N,''wname'',CRIT,PAR,KEEPAPP)
(2)[XD,TREED,PERF0,PERFL2]=wpdencmp(TREE,SORH,CRIT,PAR,KEEPAPP)
函数wpdencmp⽤于使⽤⼩波包变换进⾏信号的压缩或去噪。
格式(1)返回输⼊信号X(⼀维或⼆维)的去噪或压缩后的信号XD。输出参数TREED是XD的最佳⼩波包分解树;PERFL2和PERF0是恢复和压缩L2的能量百分⽐。PERFL2=100*(X的⼩波包系数范数/X的⼩波包系数)^2;如果X是⼀维信号,⼩波wname是⼀个正交⼩波,则PERFL2=100*||XD||^2/||X||^2。SORH的取值为''s''或''h'',表⽰的是软阈值或硬阈值。
输⼊参数N是⼩波包的分解层数,wname是包含⼩波名的字符串。函数使⽤由字符串CRIT定义的熵和阈值参数PAR实现最佳分解。如果KEEPAPP=1,则近似信号的⼩波系数不进⾏阈值量化;否则,进⾏阈值量化。
格式(2)与格式(1)的输出参数相同,输⼊选项也相同,只是它从信号的⼩波包分解树TREE进⾏去噪或压缩。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。