www.gusucode.com > wavelet工具箱matlab源码程序 > wavelet/wavelet/lwtcoef.m

    function OUT = lwtcoef(type,xDEC,LS,level,levEXT)
%LWTCOEF Extract or reconstruct 1-D LWT wavelet coefficients.
%   Y = LWTCOEF(TYPE,XDEC,LS,LEVEL,LEVEXT) returns the coefficients
%   or the reconstructed coefficients of level LEVEXT, extracted 
%   from XDEC, the LWT decomposition at level LEVEL obtained with 
%   the lifting scheme LS.
%   The valid values for TYPE are:
%      - 'a'  for approximations
%      - 'd'  for details
%      - 'ca' for coefficients of approximations
%      - 'cd' for coefficients of details
%
%   Y = LWTCOEF(TYPE,XDEC,W,LEVEL,LEVEXT) returns the same output
%   using W which is the name of a "lifted wavelet".
%
%   See also ILWT, LWT.

%   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 03-Feb-2000.
%   Last Revision: 30-Jun-2003.
%   Copyright 1995-2004 The MathWorks, Inc.

firstIdxAPP = 1;
firstIdxDET = 1+mod(firstIdxAPP,2);
DELTA = firstIdxAPP-1;
indCFS = [1:length(xDEC)];
indEXT = (1-DELTA)*ones(1,levEXT);
switch type
  case {'a','ca'}
  case {'d','cd'} , indEXT(levEXT) = DELTA;
end

% Extract coefficients.
for k=1:levEXT
    first = 2-indEXT(k);
    indCFS = indCFS(first:2:end);
end

switch type
  case {'a','d'}
    OUT = zeros(size(xDEC));
    OUT(indCFS) = xDEC(indCFS);
    OUT = ilwt(OUT,LS,level);

  case {'ca','cd'}
    OUT = xDEC(indCFS);
    if isequal(type,'ca') & (level>levEXT)
        OUT = ilwt(OUT,LS,level-levEXT);
    end
end