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

波变换

开发平台:

Matlab

  1. function eqTAB = tablseq(LSTable,tolerance)
  2. %TABLSEQ Equality table for lifting schemes.
  3. %   For a cell array of lifting schemes LSCell, 
  4. %   EQTAB = TABLSEQ(LSCell) returns a cell array
  5. %   of vectors which is of the same size.
  6. %   Each vector EQTAB(j) contains all the indices k
  7. %   such that LSCell{k} is equal to LSCell{j}.
  8. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 22-May-2001.
  9. %   Last Revision: 30-Jun-2003.
  10. %   Copyright 1995-2004 The MathWorks, Inc.
  11. %   $Revision: 1.1.6.3 $  $Date: 2004/04/13 00:40:06 $
  12. if nargin<2 , tolerance = 1E-8; end
  13. N = length(LSTable);
  14. eqTAB = cell(1,N);
  15. for i = 1:N
  16.     for j=i+1:N
  17.         if areEQUAL(LSTable{i},LSTable{j},tolerance)
  18.             eqTAB{i}(end+1) = j;
  19.             eqTAB{j}(end+1) = i;
  20.         end
  21.     end
  22. end
  23. %----------------------------------------------------------------
  24. function OK = areEQUAL(LS1,LS2,tolerance)
  25. NBlift = size(LS1,1);
  26. OK = (size(LS1,1) == size(LS2,1)) && ...
  27.     (abs(LS1{NBlift,1}-LS2{NBlift,1})<tolerance);
  28. if ~OK,  return; end
  29. for i=1:NBlift-1
  30.     OK = LS1{i,1}==LS2{i,1} && LS1{i,3}==LS2{i,3} && ...
  31.          isEQ_Filter(LS1{i,2},LS2{i,2},tolerance);
  32.     if ~OK,  return; end
  33. end
  34. %----------------------------------------------------------------
  35. function OK = isEQ_Filter(F1,F2,tolerance)
  36. OK =  (length(F1)==length(F2)) && max(abs(F1-F2))<tolerance;
  37. %----------------------------------------------------------------