
小波分析中MATLAB阈值获取函数及其应用附程序代码.docx
11页本文格式为Word版,下载可任意编辑小波分析中MATLAB阈值获取函数及其应用附程序代码 1、小波分析中MATLAB阈值获取函数 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是熵名(只在选择小波包时使用) 例题1: clear all clc load noisbump; x=noisbump; [c,l]=wavedec(x,5,'sym6'); %对小波举行5层分解 [thr,sorh,keepapp]=ddencmp('den','wv',x) xd=wdencmp('gbl',c,l,'sym6',5,thr,sorh,keepapp);%显示降噪信号 subplot(211),plot(x),title('x','fontsize',10); subplot(212),plot(xd),title('xd','fontsize',10); x xd thr =3.7856;sorh =s;keepapp=1. Err=39.3060 二、函数wbmpen的调用格式如下: THR=wbmpen(C,L,SIGMA,ALPHA); THR=wbmpen(C,L,SIGMA,ALPHA)返回去噪的全局阈值THR。
THR 通过给定的一种小波系数选择规矩计算得到,小波系数选择规矩使用 Birge-Massart的处置算法{C,L]是举行去噪的信号或图像的小波分解布局;SIGMA是零均值的高斯白噪声的标准偏差;ALPHA是用于处置的调整参数,它务必是一个大于1的实数,一般取ALPHA=2 例题2: clear all clc load noisbump; x=noisbump; [c,l]=wavedec(x,5,'sym6'); %对小波举行5层分解 cd1=detcoef(c,l,1); sigma=median(abs(cd1))/0.6745;%以第一层求高斯包噪声的标准偏差; alpha=2; thr=wbmpen(c,l,sigma,alpha);%求取阈值 keepapp=1; sorh='s'; xd1=wdencmp('gbl',x,'sym6',5,thr,sorh,keepapp);%求取降噪信号 err1=norm(xd1-x); subplot(311),plot(x),title('x','fontsize',10); subplot(312),plot(cd1),title('cd1','fontsize',10); subplot(313),plot(xd1),title('xd1:using wbmpen','fontsize',10); x cd1 xd1:using wbmpen err1=35.9768 三、采用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. 例题3: clear all clc load noisbump; x=noisbump; [c,l]=wavedec(x,5,'sym6'); %对小波举行5层分解 %%采用wdcbm提取阈值的分层降噪 [thr2,nkeep]=wdcbm(c,l,2);%提取各层阈值 [xd2,cxd,lxd,perf0,perfl2]=wdencmp('lvd',c,l,'sym6',5,thr2,'s') err2=norm(xd2-x); subplot(211),plot(x),title('x','fontsize',10); subplot(212),plot(xd2),title('xd2:using wdcbm 分层降噪','fontsize',10); 020220060080010001200 -100 10 20 x 020220060080010001200 -50 5 10 15 xd2:using wdcbm 分层去噪 err2= 50.9996 四、采用强制降噪 这里使用强制降噪是将小波分解布局中的高频系数全部置为0,即滤掉全体高频片面,然后对信号举行小波重构,这种方法对比简朴,且去噪后信号对比平滑,但是轻易损失信号中的有用成分。
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,KEEP APP); (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。









![2019版 人教版 高中语文 必修 上册《第一单元》大单元整体教学设计[2020课标]](http://img.jinchutou.com/static_www/Images/s.gif)


