www.gusucode.com > wavelet工具箱matlab源码程序 > wavelet/wavelet/dw1dvdrv.m
function varargout = dw1dvdrv(option,win_dw1dtool,in3,in4) %DW1DVDRV Discrete wavelet 1-D view mode driver. % M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 12-Mar-96. % Last Revision: 20-Jul-2010. % Copyright 1995-2010 The MathWorks, Inc. %-------------------- % option : % 'default' % 'plot_sig' % 'plot_cfs' % 'plot_anal' % 'plot_synt' % 'get_imgcfs % 'test_mode' %-------------------- %-------------------------------------- % mode 1 : scroll mode = 'scr' % mode 2 : decomposition mode = 'dec' % mode 3 : separate mode = 'sep' % mode 4 : superimposed mode = 'sup' % mode 5 : tree mode = 'tre' % mode 6 : cfs mode = 'cfs' %-------------------------------------- % Tag property of objects. %------------------------- tag_pop_viewm = 'View_Mode'; tag_Def_DispM = 'Default_DispM'; tag_img_cfs = 'Img_Cfs'; tag_img_sep = 'Img_Sep'; tag_axecfsCfs = 'Axe_CfsCfs'; tag_stem = 'Stems'; if strcmp(option,'default') % in3 = tab menu % in4 = num menu %---------------- set(in3,'Checked','Off','Tag',''); set(in3(in4),'Checked','On','Tag',tag_Def_DispM); return; end men = findobj(win_dw1dtool,'Type','uimenu','Tag',tag_Def_DispM); DW1D_Display_Mode = get(men,'UserData'); if isempty(DW1D_Display_Mode) , DW1D_Display_Mode = 1; end pop_viewm = findobj(get(win_dw1dtool,'Children'),'flat','Tag',tag_pop_viewm); switch option case 'plot_sig' % in3 = Signal Anal % in4 = view_sig (optional) %-------------------------- vsig = (nargin==3) | (DW1D_Display_Mode==1); dw1dscrm('plot_sig',win_dw1dtool,in3,DW1D_Display_Mode,vsig); case 'plot_cfs' dw1dscrm('plot_cfs',win_dw1dtool,DW1D_Display_Mode); case 'plot_anal' if DW1D_Display_Mode==1 dw1dscrm('plot_anal',win_dw1dtool); else set(pop_viewm,'Value',DW1D_Display_Mode); dw1dvmod('ch_vm',win_dw1dtool,1); end case 'plot_synt' if DW1D_Display_Mode==1 dw1dscrm('plot_synt',win_dw1dtool); else set(pop_viewm,'Value',DW1D_Display_Mode); dw1dvmod('ch_vm',win_dw1dtool,1); end case 'get_imgcfs' view_m_orig = get(pop_viewm,'Value'); switch view_m_orig case {1,4} varargout = {'image' , findobj(win_dw1dtool,'Tag',tag_img_cfs)}; case {2,5} varargout = {'image' , []}; case 3 varargout = {'image' , findobj(win_dw1dtool,'Tag',tag_img_sep)}; case 6 hdl = get(findobj(win_dw1dtool,'Tag',tag_axecfsCfs),'Children'); varargout = {'stem' , findobj(hdl,'Tag',tag_stem)}; otherwise varargout = {'image' , []}; end case 'test_mode' % in3 = 'actual mode'. % in4 = test value: % old_mode or 0 (clean). %------------------------- switch in3 case {1,'1','scr'} if find(in4==[0 2 3 5 6]) , varargout{1} = 1; elseif in4==4 , varargout{1} = 2; else varargout{1} = 0; end case {2,'2','dec'} , varargout{1} = any(in4==[0 1 3 4 5 6]); case {3,'3','sep'} , varargout{1} = any(in4==[0 1 2 4 5 6]); case {4,'4','sup'} if find(in4==[0 2 3 5 6]) , varargout{1} = 1; elseif in4==1 , varargout{1} = 2; else varargout{1} = 0; end case {5,'5','tre'} , varargout{1} = any(in4==[0 1 2 3 4 6]); case {6,'6','cfs'} , varargout{1} = any(in4==[0 1 2 3 4 5]); end end