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

波变换

开发平台:

Matlab

  1. function varargout = dw1dvdrv(option,win_dw1dtool,in3,in4)
  2. %DW1DVDRV Discrete wavelet 1-D view mode driver.
  3. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 12-Mar-96.
  4. %   Last Revision: 29-May-1998.
  5. %   Copyright 1995-2002 The MathWorks, Inc.
  6. %   $Revision: 1.13 $
  7. %--------------------
  8. % option :
  9. %  'default'
  10. %  'plot_sig'
  11. %  'plot_cfs'
  12. %  'plot_anal'
  13. %  'plot_synt'
  14. %  'get_imgcfs
  15. %  'test_mode'
  16. %--------------------
  17. %--------------------------------------
  18. % mode 1 : scroll mode        = 'scr'
  19. % mode 2 : decomposition mode = 'dec'
  20. % mode 3 : separate mode      = 'sep'
  21. % mode 4 : superimposed mode  = 'sup'
  22. % mode 5 : tree mode          = 'tre'
  23. % mode 6 : cfs mode           = 'cfs'
  24. %--------------------------------------
  25. % Tag property of objects.
  26. %-------------------------
  27. tag_pop_viewm = 'View_Mode';
  28. tag_Def_DispM = 'Default_DispM';
  29. tag_img_cfs   = 'Img_Cfs';
  30. tag_img_sep   = 'Img_Sep';
  31. tag_axecfsCfs = 'Axe_CfsCfs';
  32. tag_stem      = 'Stems';
  33. if strcmp(option,'default')
  34.     % in3 = tab menu
  35.     % in4 = num menu
  36.     %----------------
  37.     set(in3,'Checked','Off','Tag','');
  38.     set(in3(in4),'Checked','On','Tag',tag_Def_DispM);
  39.     return;
  40. end
  41. men = findobj(win_dw1dtool,'type','uimenu','tag',tag_Def_DispM);
  42. DW1D_Display_Mode = get(men,'Userdata');
  43. pop_viewm = findobj(get(win_dw1dtool,'Children'),'flat','tag',tag_pop_viewm);
  44. switch option
  45.    case 'plot_sig'
  46.        % in3 = Signal Anal
  47.        % in4 = view_sig (optional)
  48.        %--------------------------
  49.        vsig = (nargin==3) | (DW1D_Display_Mode==1);
  50.        dw1dscrm('plot_sig',win_dw1dtool,in3,DW1D_Display_Mode,vsig);
  51.    case 'plot_cfs'
  52.        dw1dscrm('plot_cfs',win_dw1dtool,DW1D_Display_Mode);
  53.    case 'plot_anal'
  54.        if DW1D_Display_Mode==1
  55.            dw1dscrm('plot_anal',win_dw1dtool);
  56.        else
  57.            set(pop_viewm,'Value',DW1D_Display_Mode);
  58.            dw1dvmod('ch_vm',win_dw1dtool,1);
  59.        end
  60.    case 'plot_synt'
  61.        if DW1D_Display_Mode==1
  62.            dw1dscrm('plot_synt',win_dw1dtool);
  63.        else
  64.            set(pop_viewm,'Value',DW1D_Display_Mode);
  65.            dw1dvmod('ch_vm',win_dw1dtool,1);
  66.        end
  67.    case 'get_imgcfs'
  68.         view_m_orig  = get(pop_viewm,'Value');
  69.         switch view_m_orig
  70.           case {1,4}
  71.             varargout = {'image' , findobj(win_dw1dtool,'tag',tag_img_cfs)};
  72.           case {2,5}
  73.             varargout = {'image' , []};
  74.           case 3
  75.             varargout = {'image' , findobj(win_dw1dtool,'tag',tag_img_sep)};
  76.           case 6
  77.             hdl = get(findobj(win_dw1dtool,'tag',tag_axecfsCfs),'Children');
  78.             varargout = {'stem' , findobj(hdl,'tag',tag_stem)};
  79.           otherwise
  80.             varargout = {'image' , []};
  81.         end
  82.    case 'test_mode'
  83.        % in3 = 'actual mode'.
  84.        % in4 = test value:
  85.        %   old_mode or 0 (clean).
  86.        %-------------------------
  87.        switch in3
  88.          case {1,'1','scr'}
  89.              if find(in4==[0 2 3 5 6]) , varargout{1} = 1;
  90.              elseif in4==4 , varargout{1} = 2;
  91.              else , varargout{1} = 0;
  92.              end
  93.          case {2,'2','dec'} ,  varargout{1} = any(in4==[0 1 3 4 5 6]);
  94.          case {3,'3','sep'} ,  varargout{1} = any(in4==[0 1 2 4 5 6]);
  95.          case {4,'4','sup'}
  96.              if find(in4==[0 2 3 5 6]) , varargout{1} = 1;
  97.              elseif in4==1 , varargout{1} = 2;
  98.              else , varargout{1} = 0;
  99.              end
  100.          case {5,'5','tre'} ,  varargout{1} = any(in4==[0 1 2 3 4 6]);
  101.          case {6,'6','cfs'} ,  varargout{1} = any(in4==[0 1 2 3 4 5]);
  102.        end
  103. end