1、小波分析中 MATLAB 阈值获取函数 MATLAB 中实现阈值获取的函数有 ddencmp、thselect、w bmpen 和 w w dcbm,下面对它们的用法进行简单的说明。 一、ddencmp的调用格式有以下三种: (1)[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,IN2,X) (2)[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,'w p',X) (3)[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,'w v',X) 函数 ddencmp 用于获取信号在消噪或压缩过程中的默认阈值。输入参数 X为一维或二维信号;IN1 取值为'den'或'cmp','den'表示进行去噪,'cmp'表示进行压缩;IN2 取值为'w v'或'w p',w v 表示选择小波,w p 表示选择小波包。返回值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); 020040060080010001200-1001020x020040060080010001200-5051015xd thr =3.7856;sorh =s;keepapp=1. Err=39.3060 二、函数 w bmpen 的调用格式如下: 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); 0200400600800100...