wpbmpen.m
上传用户:haiyisale
上传日期:2013-01-09
资源大小:3246k
文件大小:2k
源码类别:

波变换

开发平台:

Matlab

  1. function suggthr = wpbmpen(t,sigma,alpha,arg)
  2. %WPBMPEN Penalized threshold for wavelet packet de-noising.
  3. %   THR = WPBMPEN(T,SIGMA,ALPHA) returns a global 
  4. %   threshold THR for de-noising. THR is obtained by a wavelet  
  5. %   packet coefficients selection rule using a penalization 
  6. %   method provided by Birge-Massart.
  7. %
  8. %   T is a wptree object corresponding to the wavelet packet 
  9. %   decomposition structure of the signal or image to be 
  10. %   de-noised. 
  11. %
  12. %   SIGMA is the standard deviation of the zero mean Gaussian 
  13. %   white noise in the de-noising model (see WNOISEST for more
  14. %   information).
  15. %
  16. %   ALPHA is a tuning parameter for the penalty term, it 
  17. %   must be a real number greater than 1. The sparsity of the
  18. %   wavelet packet representation of the de-noised signal or image 
  19. %   grows with ALPHA. Typically ALPHA = 2.
  20. %
  21. %   THR minimizes the penalized criterion given by:
  22. %   let t* be the minimizer of
  23. %   crit(t) = -sum(c(k)^2,k<=t) + 2*SIGMA^2*t*(ALPHA + log(n/t))
  24. %   where c(k) are the wavelet packet coefficients sorted   
  25. %   in decreasing order of their absolute value and n is the    
  26. %   number of coefficients, then THR = |c(t*)|.
  27. %
  28. %   WPBMPEN(T,SIGMA,ALPHA,ARG) computes the global threshold,
  29. %   and in addition plots three curves: 
  30. %   2*SIGMA^2*t*(ALPHA + log(n/t)), sum(c(k)^2,k<=t) and crit(t).
  31. %   
  32. %   See also WBMPEN, WDEN, WDENCMP, WPDENCMP.
  33. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 02-Jul-99.
  34. %   Last Revision: 14-May-2003.
  35. %   Copyright 1995-2004 The MathWorks, Inc.
  36. %   $Revision: 1.5.4.2 $  $Date: 2004/03/15 22:43:14 $
  37. % Retrieve coefficients.
  38. tnods = leaves(t);  % Keep terminal nodes.
  39.                     % Sort terminal nodes from left to right.
  40.                     % Approximation index is 1.
  41. app_coefs = read(t,'data',tnods(1));
  42. last   = length(app_coefs);
  43. c      = read(t,'data');
  44. nbcfs  = length(c);
  45. c      = c(last+1:end);
  46. thresh = sort(abs(c));
  47. thresh = thresh(end:-1:1);
  48. rl2scr = cumsum(thresh.^2);
  49. xpen   = [1:length(thresh)];
  50. pen    = 2*sigma^2*xpen.*(alpha + log(nbcfs./xpen));
  51. [dummy,indmin] = min(pen-rl2scr);
  52. suggthr = thresh(indmin);
  53. if nargin==4
  54.     h = figure;
  55.     subplot(311),plot(xpen,pen),xlabel('pen')
  56.     subplot(312),plot(xpen,rl2scr),xlabel('rl2scr')
  57.     subplot(313),plot(xpen,pen-rl2scr),xlabel('crit')
  58. end