www.gusucode.com > wavelet工具箱matlab源码程序 > wavelet/wavelet/dw1dutil.m
function dw1dutil(option,win_dw1dtool,in3,in4) %DW1DUTIL Discrete wavelet 1-D utilities. % DW1DUTIL(OPTION,WIN_DW1DTOOL,IN3,IN4) % M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 12-Mar-96. % Last Revision: 10-Jun-2013. % Copyright 1995-2013 The MathWorks, Inc. % $Revision: 1.15.4.11 $ $Date: 2013/07/05 04:30:01 $ % Default values. %---------------- max_lev_anal = 12; % MemBloc1 of stored values. %--------------------------- n_param_anal = 'DWAn1d_Par_Anal'; ind_sig_name = 1; ind_sig_size = 2; ind_wav_name = 3; ind_lev_anal = 4; % ind_axe_ref = 5; ind_act_option = 6; ind_ssig_type = 7; % ind_thr_val = 8; % nb1_stored = 8; % Tag property of objects. %------------------------- tag_m_exp_wrks = 'm_exp_wrks'; tag_pus_anal = 'Pus_Anal'; tag_pus_deno = 'Pus_Deno'; tag_pus_comp = 'Pus_Comp'; tag_pus_hist = 'Pus_Hist'; tag_pus_stat = 'Pus_Stat'; tag_pop_viewm = 'View_Mode'; tag_pus_dispopt = 'Pus_Options'; tag_valapp_scr = 'ValApp_Scr'; tag_valdet_scr = 'ValDet_Scr'; tag_declev = 'Pop_DecLev'; % Handles of tagged objects. %--------------------------- children = get(win_dw1dtool,'Children'); option = lower(option); switch option case {'clean','enable','set_gui'} % Handles of tagged objects. %--------------------------- [m_files,m_save] = wfigmngr('getmenus',win_dw1dtool,'file','save'); m_exp_wrks = findobj(m_files,'Tag',tag_m_exp_wrks); m_SAV_EXP = [m_save,m_exp_wrks]; uic_handles = findobj(children,'flat','Type','uicontrol'); pop_handles = findobj(uic_handles,'Style','popupmenu'); pus_handles = findobj(uic_handles,'Style','pushbutton'); pus_dispopt = findobj(uic_handles,'Tag',tag_pus_dispopt); pus_anal = findobj(pus_handles,'Tag',tag_pus_anal); pus_deno = findobj(pus_handles,'Tag',tag_pus_deno); pus_comp = findobj(pus_handles,'Tag',tag_pus_comp); pus_hist = findobj(pus_handles,'Tag',tag_pus_hist); pus_stat = findobj(pus_handles,'Tag',tag_pus_stat); pop_viewm = findobj(pop_handles,'Tag',tag_pop_viewm); pop_app_scr = findobj(pop_handles,'Tag',tag_valapp_scr); pop_det_scr = findobj(pop_handles,'Tag',tag_valdet_scr); pop_lev_dec = findobj(pop_handles,'Tag',tag_declev); end switch option case 'set_par' % Reading Analysis Parameters. %---------------------------- [Wave_Name,Level_Anal] = cbanapar('get',win_dw1dtool,'wav','lev'); % Setting Analysis parameters %----------------------------- wmemtool('wmb',win_dw1dtool,n_param_anal, ... ind_wav_name,Wave_Name, ... ind_lev_anal,Level_Anal ... ); case 'clean' % in3 = type of loading. %----------------------- % 'load_sig' , 'load_dec' % 'load_cfs' , 'demo' %----------------------- if nargin<4 , in4 = ''; end switch in3 case {'load_cfs','synt'} str_btn = getWavMSG('Wavelet:commongui:Str_Synt'); cba_btn = ['dw1dmngr(''synt'',' handle2str(win_dw1dtool) ');']; otherwise str_btn = getWavMSG('Wavelet:commongui:Str_Anal'); cba_btn = ['dw1dmngr(''anal'',' handle2str(win_dw1dtool) ');']; end set(pus_anal,'String',str_btn,'Callback',cba_btn); % Writing Synthesized Signal Type. %---------------------------------- wmemtool('wmb',win_dw1dtool,n_param_anal,ind_ssig_type,'ss'); % Cleaning files. %---------------- dw1dfile('del',win_dw1dtool); % Testing first use. %------------------- active_option = wmemtool('rmb',win_dw1dtool,n_param_anal, ... ind_act_option); if isempty(active_option) , first = 1; else first = 0; end % End of Cleaning when first is true. %------------------------------------ if first , return; end cba_disp = ['dw1ddisp(''create'',' handle2str(win_dw1dtool) ');']; set(pus_dispopt,... 'Style','pushbutton', ... 'String',getWavMSG('Wavelet:dw1dRF:Str_DISPOPT'), ... 'Callback',cba_disp); % Setting enable property of objects. %------------------------------------ set(m_SAV_EXP,'Enable','Off'); cbanapar('Enable',win_dw1dtool,'off'); set([ pus_anal, pus_deno, ... pus_comp, pus_hist, pus_stat, ... pop_viewm, pus_dispopt, ... pop_lev_dec, pop_app_scr, pop_det_scr ... ],... 'Enable','off'... ); cbcolmap('Enable',win_dw1dtool,'off') % Cleaning DynVTool. %------------------- dynvtool('stop',win_dw1dtool); % Cleaning GUI. %-------------- dw1dvmod('ch_vm',win_dw1dtool,1); switch in4 case {'new_anal','new_synt'} set([pop_lev_dec,pop_app_scr,pop_det_scr],'Value',1); otherwise str_lev_data = int2str((1:max_lev_anal)'); cbanapar('set',win_dw1dtool,... 'nam','', ... 'wav','haar', ... 'lev',{'String',str_lev_data,'Value',1}) set([pop_lev_dec,pop_app_scr,pop_det_scr], ... 'String',str_lev_data,'Value',1); end case 'set_gui' % in3 = calling option. % in4 : optional (new_anal or new_synt). %----------------------------------------- if nargin<4 , in4 = ''; end switch in3 case 'load_sig' [Sig_Name,Sig_Size] = ... wmemtool('rmb',win_dw1dtool,n_param_anal,... ind_sig_name,ind_sig_size); Sig_Size = max(Sig_Size); levm = wmaxlev(Sig_Size,'haar'); levmax = min(levm,max_lev_anal); if isempty(in4) lev = min(levmax,5); str_lev_data = int2str((1:levmax)'); cbanapar('set',win_dw1dtool,... 'n_s',{Sig_Name,Sig_Size}, ... 'lev',{'String',str_lev_data,'Value',lev}); set([pop_lev_dec,pop_app_scr,pop_det_scr], ... 'String',str_lev_data); end case {'demo','load_dec'} [Sig_Name,Sig_Size,Wave_Name,Level_Anal] = ... wmemtool('rmb',win_dw1dtool,n_param_anal, ... ind_sig_name,ind_sig_size, ... ind_wav_name,ind_lev_anal); Sig_Size = max(Sig_Size); levm = wmaxlev(Sig_Size,'haar'); if levm<Level_Anal , levm = Level_Anal; end levmax = min(levm,max_lev_anal); str_lev_data = int2str((1:levmax)'); cbanapar('set',win_dw1dtool,... 'n_s',{Sig_Name,Sig_Size},... 'wav',Wave_Name, ... 'lev',{'String',str_lev_data,'Value',Level_Anal}); levels = int2str((1:Level_Anal)'); set(pop_lev_dec,'String',levels,'Value',Level_Anal); set([pop_app_scr,pop_det_scr],'String',levels,'Value',1); dw1dvmod('ini_vm',win_dw1dtool); case 'load_cfs' [Sig_Name,Sig_Size,Level_Anal] = ... wmemtool('rmb',win_dw1dtool,n_param_anal, ... ind_sig_name,ind_sig_size, ... ind_lev_anal); levels = int2str((1:Level_Anal)'); cbanapar('set',win_dw1dtool,... 'n_s',{Sig_Name,Sig_Size},... 'lev',{'String',int2str(Level_Anal)}); set(pop_lev_dec,'String',levels,'Value',Level_Anal); set([pop_app_scr,pop_det_scr],'String',levels,'Value',1); dw1dvmod('ini_vm',win_dw1dtool); case 'synt' Level_Anal = wmemtool('rmb',win_dw1dtool,... n_param_anal,ind_lev_anal); set(pop_lev_dec,'Value',Level_Anal); set([pop_app_scr,pop_det_scr],'Value',1); dw1dvmod('ini_vm',win_dw1dtool); case 'anal' Level_Anal = wmemtool('rmb',win_dw1dtool,... n_param_anal,ind_lev_anal); levels = int2str((1:Level_Anal)'); set(pop_lev_dec,'String',levels,'Value',Level_Anal); set([pop_app_scr,pop_det_scr],'String',levels,'Value',1); dw1dvmod('ini_vm',win_dw1dtool); end case 'enable' % in3 = calling option. %---------------------- switch in3 case 'load_sig' cbcolmap('Enable',win_dw1dtool,'off') cbanapar('Enable',win_dw1dtool,'on'); set(pus_anal,'Enable','On' ); case 'load_cfs' cbcolmap('Enable',win_dw1dtool,'off') cbanapar('Enable',win_dw1dtool,'on'); set(pus_anal,'Enable','On' ); case {'demo','load_dec'} cbcolmap('Enable',win_dw1dtool,'on') cbanapar('Enable',win_dw1dtool,'on'); set([pus_anal, ... pus_deno, pus_comp, pus_hist, ... pus_stat, pop_viewm, pus_dispopt, ... pop_app_scr, pop_det_scr, pop_lev_dec ... ], ... 'Enable','On' ... ); set(m_SAV_EXP,'Enable','on'); case {'anal','synt'} cbcolmap('Enable',win_dw1dtool,'on') set([pus_deno, pus_comp, pus_hist, ... pus_stat, pop_viewm, pus_dispopt, ... pop_app_scr, pop_det_scr, pop_lev_dec ... ],... 'Enable','on'... ); set(m_SAV_EXP,'Enable','on'); case {'comp','deno'} set([m_files , pus_anal , pus_deno , pus_comp],'Enable','off'); case {'return_comp','return_deno'} set([m_files , pus_anal , pus_deno , pus_comp],'Enable','on'); case {'more_disp','end_more_disp'} hdldynV = dynvtool('handles',win_dw1dtool); btnZaxe = hdldynV.Tog_View_Axes; if isequal(in3,'more_disp') , ena = 'off'; else ena = 'on'; end if isequal(in3,'more_disp') , set(btnZaxe,'Enable','Off'); end cbanapar('Enable',win_dw1dtool,ena); set([pus_anal, pus_deno, pus_comp, ... pop_viewm, pus_dispopt, btnZaxe], ... 'Enable',ena ... ); lst_subm = get(m_files,'Children'); pos_subm = get(lst_subm,'Position'); pos_subm = cat(1,pos_subm{:}); set(lst_subm(pos_subm<8),'Enable',ena); if isequal(in3,'end_more_disp') dynvtool('dynvzaxe_BtnOnOff',win_dw1dtool); end end otherwise errargt(mfilename,getWavMSG('Wavelet:moreMSGRF:Unknown_Opt'),'msg'); error(message('Wavelet:FunctionArgVal:Invalid_Input')); end