声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1960|回复: 6

[综合讨论] (阀值去噪)小波去噪的指令应用2

[复制链接]
发表于 2013-5-29 10:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本帖最后由 wdhd 于 2016-6-30 09:47 编辑

  上接阀值获取
  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进行去噪或压缩。

点评

赞成: 3.0
赞成: 3
  发表于 2014-3-31 22:59

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2014-3-13 15:21 | 显示全部楼层
你好,我想用这个小波降噪,之前没接触过,能不能给一个完整的程序?
发表于 2014-3-18 18:30 | 显示全部楼层
同求程序,谢谢
发表于 2014-3-27 09:24 | 显示全部楼层
snr=3;init=2055615866;

%产生原始信号,并叠加标准高斯白噪声

[xref,x]=wnoise(3,11,snr,init);

%对x使用sym8小波进行5层分解,得到高频系数。使用SURE阀值、软阀值进行降噪

lev=5;

xd=wden(x,'heursure','s','one',lev,'sym8');

figure(1);

set(gcf,'color','w');

%画出原始信号

subplot(311),plot(xref),axis([1 2048 -10 10]);

title('原始信号');

subplot(312),plot(x), axis([1 2048 -10 10]);

title(['降噪信号-信噪比为',num2str(fix(snr))]);

subplot(313),plot(xd), axis([1 2048 -10 10]);

title('降噪信号-heuristic SURE');

% 使用软SURE阀值降噪

xd=wden(x,'heursure','s','one',lev,'sym8');

%画出信号

figure(2);

set(gcf,'color','w');

subplot(311),plot(xd), axis([1 2048 -10 10]);

title('降噪信号-SURE');

% 对噪声标准差进行单层估计,使用fixed form 阀值降噪

xd=wden(x,'sqtwolog','s','sln',lev,'sym8');

% 画出信号

subplot(312),plot(xd), axis([1 2048 -10 10]);

title('降噪信号-Fixed form 阀值');

% 对噪声标准差进行单层估计,使用minimax 阀值降噪

xd=wden(x,'minimaxi','s','sln',lev,'sym8');

% 画出信号

subplot(313),plot(xd), axis([1 2048 -10 10]);

title('De-noised signal-Minimax');

发表于 2014-7-11 10:59 | 显示全部楼层
Good!!!!!
发表于 2014-7-24 19:30 | 显示全部楼层
赞赞赞
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-25 13:50 , Processed in 0.077920 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表