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

波变换

开发平台:

Matlab

  1. function a = appcoef2(c,s,varargin)
  2. %APPCOEF2 Extract 2-D approximation coefficients.
  3. %   APPCOEF2 computes the approximation coefficients of a
  4. %   two-dimensional signal.
  5. %
  6. %   A = APPCOEF2(C,S,'wname',N) computes the approximation
  7. %   coefficients at level N using the wavelet decomposition
  8. %   structure [C,S] (see WAVEDEC2). 
  9. %   'wname' is a string containing the wavelet name.
  10. %   Level N must be an integer such that 0 <= N <= size(S,1)-2. 
  11. %
  12. %   A = APPCOEF2(C,S,'wname') extracts the approximation
  13. %   coefficients at the last level size(S,1)-2.
  14. %
  15. %   Instead of giving the wavelet name, you can give the filters.
  16. %   For A = APPCOEF2(C,S,Lo_R,Hi_R) or 
  17. %   A = APPCOEF2(C,S,Lo_R,Hi_R,N),
  18. %   Lo_R is the reconstruction low-pass filter and
  19. %   Hi_R is the reconstruction high-pass filter.
  20. %   
  21. %   See also DETCOEF2, WAVEDEC2.
  22. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 12-Mar-96.
  23. %   Last Revision: 14-May-2003.
  24. %   Copyright 1995-2004 The MathWorks, Inc.
  25. % $Revision: 1.12.4.2 $
  26. % Check arguments.
  27. nbIn = nargin;
  28. if nbIn < 2
  29.   error('Not enough input arguments.');
  30. elseif nbIn > 5
  31.   error('Too many input arguments.');
  32. end
  33. rmax = size(s,1);
  34. nmax = rmax-2;
  35. if ischar(varargin{1})
  36.     [Lo_R,Hi_R] = wfilters(varargin{1},'r'); next = 2;
  37. else
  38.     Lo_R = varargin{1}; Hi_R = varargin{2};  next = 3;
  39. end
  40. if nargin>=(2+next) , n = varargin{next}; else, n = nmax; end
  41. if (n<0) | (n>nmax) | (n~=fix(n))
  42.     error('Invalid level value.');
  43. end
  44. % Initialization.
  45. nl   = s(1,1);
  46. nc   = s(1,2);
  47. a    = zeros(nl,nc);
  48. a(:) = c(1:nl*nc);
  49. % Iterated reconstruction.
  50. rm   = rmax+1;
  51. for p=nmax:-1:n+1
  52.     [h,v,d] = detcoef2('all',c,s,p);
  53.     a = idwt2(a,h,v,d,Lo_R,Hi_R,s(rm-p,:));
  54. end