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

波变换

开发平台:

Matlab

  1. function varargout = wtbxmngr(option,varargin)
  2. %WTBXMNGR Wavelet Toolbox manager.
  3. %   WTBXMNGR or WTBXMNGR('version') displays the current
  4. %   version of the Toolbox mode (Version 1.x vs. 2.x).
  5. %   WTBXMNGR('V1') or WTBXMNGR('v1') sets the
  6. %   wavelet packets management mode to Version 1.x
  7. %   (This is the obsolete mode).
  8. %   WTBXMNGR('V2') or WTBXMNGR('v2') sets the
  9. %   wavelet packets management mode to Version 2.x
  10. %   The wavelet packets objects are used (see WPTREE).
  11. %   WTBXMNGR('V3'), WTBXMNGR('v2') or WTBXMNGR('CurrentVersion') 
  12. %   sets the wavelet packets management mode to Current
  13. %    Version(V3.0) which is the same as in Version 2.x.
  14. %
  15. %   WTBXMNGR('LargeFonts') sets the size of the next created
  16. %   figures in such a way that they can accept Large Fonts. 
  17. %
  18. %   WTBXMNGR('DefaultSize') restores the default figure size 
  19. %   for the next created figures.
  20. %
  21. %   WTBXMNGR('FigRatio',ratio) changes the size of the next 
  22. %   created figures multiplying the default size by "ratio", 
  23. %   with 0.75 <= ratio <= 1.25.
  24. %
  25. %   WTBXMNGR('FigRatio') returns the current ratio value.
  26. % INTERNAL OPTIONS:
  27. %-----------------
  28. %   OPTION = 'load' , 'ini' , 'is_on' , 'get' , 'clear'
  29. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 22-Feb-98.
  30. %   Last Revision: 22-May-2003.
  31. %   Copyright 1995-2004 The MathWorks, Inc.
  32. %   $Revision: 1.14.4.2 $  $Date: 2004/03/15 22:43:34 $
  33. global WTBX_Glob_Info Wavelets_Info DWT_Attribute
  34. %----------------------%
  35. % Wavelets Structures. %
  36. %------------------------------------------%
  37. % WTBX_Glob_Info is a structure.
  38. % WTBX_Glob_Info = ...
  39. %   struct(...
  40. %     'name'        char = 'WTBX'
  41. %     'version'     integer
  42. %     'objVersion'  integer
  43. %     );
  44. %------------------------------------------%
  45. % Wavelets_Info is a  structure array 
  46. % with size = [nb_fam 1]
  47. %
  48. % Wavelet_Struct =
  49. %   struct(...
  50. %     'index'           integer
  51. %     'familyName'      string
  52. %     'familyShortName' string
  53. %     'type'            integer
  54. %     'tabNums'         matrix of string
  55. %     'typNums'         string
  56. %     'file'            string
  57. %     'bounds'          string
  58. %     );
  59. %------------------------------------------%
  60. % DWT_Attribute is a structure.
  61. %   struct(...
  62. %     'extMode'   'sym' , 'zpd' , 'spd' ...
  63. %     'shift1D'   integer
  64. %     'shift2D'   [integer integer]
  65. %     );
  66. %------------------------------------------%
  67. okInit = ...
  68.     ~isempty(WTBX_Glob_Info) && ...
  69.     ~isempty(Wavelets_Info)  && ...
  70.     ~isempty(DWT_Attribute);
  71. if nargin==0 , option = 'version'; end 
  72. switch lower(option)
  73.     case 'load'
  74.       switch nargin
  75.         case 1
  76.           fileName = 'wtbx_gbl.v1';
  77.           s = which(fileName,'-all');
  78.           if ~isempty(s) ,
  79.                VersfileName = 'wtbx_gbl.v1';
  80.           else
  81.                VersfileName = 'wtbx_gbl.v3';
  82.           end
  83.            
  84.         case 2
  85.           wtbxVER = varargin{1};
  86.           switch wtbxVER
  87.              case {'v1','V1'} , VersfileName = 'wtbx_gbl.v1';
  88.              otherwise        , VersfileName = 'wtbx_gbl.v3';
  89.           end
  90.       end
  91.       try
  92.          load(VersfileName,'-mat');
  93.       catch
  94.          WTBX_Glob_Info.name       = 'WTBX';
  95.          WTBX_Glob_Info.version    = 3.0;
  96.          WTBX_Glob_Info.objVersion =   1;
  97.       end
  98.       if nargout>0
  99.           varargout{1} = ['V' int2str(WTBX_Glob_Info.objVersion+1)];
  100.       end
  101.     case 'ini'
  102.       if okInit , return; end
  103.       wtbxmngr('load');
  104.       wavemngr('load');
  105.       dwtmode('load');
  106.     case 'is_on'
  107.       varargout{1} = okInit;
  108.     case 'get'
  109.       if ~okInit , wtbxmngr('ini'); end
  110.       nbout   = nargout;
  111.       nbin    = nargin-1;
  112.       for k=1:min([nbin,nbout])
  113.           switch varargin{k}
  114.             case 'AppName'
  115.               varargout{k} = [WTBX_Glob_Info.name '_V' ...
  116.                               sprintf('%2.1f',WTBX_Glob_Info.version)];            
  117.             case 'name'       , varargout{k} = WTBX_Glob_Info.name;            
  118.             case 'version'    , varargout{k} = WTBX_Glob_Info.version;
  119.             case 'objVersion' ,
  120.               okObj = ~isempty(what('@wptree'));
  121.               varargout{k} = WTBX_Glob_Info.objVersion & okObj;
  122.             case 'wavelets'   , varargout{k} = Wavelets_Info;
  123.             case 'dwtAttrb'   , varargout{k} = DWT_Attribute;
  124.           end
  125.       end
  126.     case 'version'
  127.       objVers  = wtbxmngr('get','objVersion');
  128.       wtbxVers = wtbxmngr('get','version');
  129.       switch objVers
  130.           case 0    , numVers = objVers + 1;
  131.           otherwise , numVers = wtbxVers;
  132.       end
  133.       numVers = ['V' int2str(numVers)];
  134.       if nargin<2 , dispMessage(numVers); end
  135.       if nargout>0 , varargout{1} = numVers; end
  136.     case 'v1'
  137.       clear global WTBX_Glob_Info
  138.       fileName = 'wtbx_gbl.v3';
  139.       s = which(fileName);
  140.       n = findstr(s,'wavedemo');
  141.       addV1_path = [s(1:n-1) 'waveobsolete'];
  142.       path(addV1_path,path);
  143.       wtbxVers = wtbxmngr('load','V1');
  144.       if nargin==1 , dispMessage(wtbxVers,'warning'); end
  145.       if nargout>0 , varargout{1} = wtbxVers; end
  146.     case {'v2','v3','currentversion'}
  147.       clear global WTBX_Glob_Info
  148.       fileName = 'wtbx_gbl.v1';
  149.       s = which(fileName,'-all');
  150.       if ~isempty(s)
  151.          for k = 1:size(s,1)
  152.             d = s{k};
  153.             n = findstr(d,fileName);
  154.             rmpath(d(1:n-1));
  155.          end
  156.      end
  157.      wtbxVers = wtbxmngr('load','V3');
  158.      if nargin==1 , dispMessage(wtbxVers,'warning'); end
  159.      if nargout>0 , varargout{1} = wtbxVers; end
  160.     case {'largefonts','defaultsize'}
  161.       if isequal(lower(option),'largefonts')
  162.           CurScrPixPerInch = get(0,'ScreenPixelsPerInch');
  163.           StdScrPixPerInch = 96;
  164.           RatScrPixPerInch = CurScrPixPerInch / StdScrPixPerInch;
  165.       else
  166.           RatScrPixPerInch = 1;
  167.       end
  168.       wtbxmngr('figratio',RatScrPixPerInch);
  169.     case 'figratio'
  170.       if length(varargin)>0  
  171.         ResizeRatioWTBX_Fig = varargin{1};
  172.         dispMSG = -1;  % No display for correct value
  173.       else
  174.         ResizeRatioWTBX_Fig = getappdata(0,'ResizeRatioWTBX_Fig');
  175.         if isempty(ResizeRatioWTBX_Fig) , ResizeRatioWTBX_Fig = 1; end
  176.         dispMSG = 0;  % No display for correct value
  177.       end
  178.       OK = length(ResizeRatioWTBX_Fig)==1 && isnumeric(ResizeRatioWTBX_Fig) && ...
  179.            isreal(ResizeRatioWTBX_Fig);
  180.       if OK
  181.           if     ResizeRatioWTBX_Fig<0.75 , ResizeRatioWTBX_Fig = 0.75; dispMSG = 1; 
  182.           elseif ResizeRatioWTBX_Fig>1.25 , ResizeRatioWTBX_Fig = 1.25; dispMSG = 2;             
  183.           end
  184.           
  185.       else
  186.           dispMSG = 3; 
  187.           oldFigRatio = getappdata(0,'ResizeRatioWTBX_Fig');
  188.           if isempty(oldFigRatio) , oldFigRatio = 1; end
  189.           ResizeRatioWTBX_Fig = oldFigRatio; 
  190.       end
  191.       setappdata(0,'ResizeRatioWTBX_Fig',ResizeRatioWTBX_Fig);
  192.       if dispMSG>0
  193.           msg = strvcat(...
  194.               'Invalid value for fig_RATIO',...
  195.               'choose a value between 0.75 and 1.25', ...
  196.               ['current value is: ' num2str(ResizeRatioWTBX_Fig) ]);
  197.           warndlg(msg)                   
  198.       elseif dispMSG==0
  199.           msg = strvcat(...
  200.               'The current value for Wavelet Toolbox', ...
  201.               ['Figure Ratio is :' num2str(ResizeRatioWTBX_Fig)]);
  202.           msgbox(msg)                   
  203.       end
  204.   
  205.     case 'clear'
  206.       clear global WTBX_Glob_Info
  207.       wavemngr('clear');
  208.       dwtmode('clear');
  209. end
  210. %----------------------------------------------------------------------------%
  211. % Internal Function(s)
  212. %----------------------------------------------------------------------------%
  213. function dispMessage(wtbxVers,dummy)
  214. % Display Extension Mode.
  215. msg = ['Wavelet Toolbox Version: V3'];
  216. switch wtbxVers
  217.     case {'v1','V1'}
  218.        msg = strvcat(msg,...
  219.           'The Wavelet Toolbox is now compatible with versions 1.x',...
  220.           'Obsolete functions are now available.');
  221.       
  222.     case {'v2','V2','v3','V3'}
  223. end
  224. sizeMSG = size(msg);
  225. nbLINES = sizeMSG(1);
  226. lenMSG  = sizeMSG(2);
  227. n = lenMSG+8;
  228. b = '  ';
  229. c = '*';
  230. s = c(ones(1,n));
  231. c  = c(ones(1,nbLINES),:); b  = b(ones(1,nbLINES),:);
  232. msg1 = strvcat(' ',s,[c c b msg b c c],s,' ');
  233. clc;
  234. if nargin>1
  235.     dummy  = '!  WARNING: Changed Wavelet Toolbox Version  !';
  236.     lenDUM = length(dummy);
  237.     addLEN = floor((lenMSG-lenDUM)/2);
  238.     disp(' ');
  239.     disp([blanks(addLEN), '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!']);
  240.     disp([blanks(addLEN), '!  WARNING: Changed Wavelet Toolbox Version  !']);
  241.     disp([blanks(addLEN), '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!']);
  242. end
  243. disp(msg1);
  244. %----------------------------------------------------------------------------%