📄 compwav.m
字号:
function varargout = compwav(varargin)
%COMPWAV Pattern detection tool using an adapted wavelet versus a well known one.
% VARARGOUT = COMPWAV(VARARGIN)
% COMPWAV M-file for compwav.fig
% COMPWAV, by itself, creates a new COMPWAV or raises the existing
% singleton*.
%
% H = COMPWAV returns the handle to a new COMPWAV or the handle to
% the existing singleton*.
%
% COMPWAV('Property','Value',...) creates a new COMPWAV using the
% given property value pairs. Unrecognized properties are passed via
% varargin to compwav_OpeningFcn. This calling syntax produces a
% warning when there is an existing singleton*.
%
% COMPWAV('CALLBACK') and COMPWAV('CALLBACK',hObject,...) call the
% local function named CALLBACK in COMPWAV.M with the given input
% arguments.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Last Modified by GUIDE v2.5 08-Jul-2003 15:49:15
%
% M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 01-Feb-2003.
% Last Revision: 11-Mar-2005.
% Copyright 1995-2005 The MathWorks, Inc.
% $Revision: 1.1.6.3 $ $Date: 2005/06/16 08:59:48 $
%*************************************************************************%
% BEGIN initialization code - DO NOT EDIT %
% ---------------------------------------- %
%*************************************************************************%
gui_Singleton = 0;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @compwav_OpeningFcn, ...
'gui_OutputFcn', @compwav_OutputFcn, ...
'gui_LayoutFcn', [], ...
'gui_Callback', []);
if nargin & isstr(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
%*************************************************************************%
% END initialization code - DO NOT EDIT %
%*************************************************************************%
%*************************************************************************%
% BEGIN Opening Function %
% ---------------------- %
% --- Executes just before compwav is made visible. %
%*************************************************************************%
function compwav_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin unrecognized PropertyName/PropertyValue pairs from the
% command line (see VARARGIN)
% Choose default command line output for compwav
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes compwav wait for user response (see UIRESUME)
% uiwait(handles.Fig_PatCwtComp);
%%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%
% TOOL INITIALISATION Introduced manualy in the automatic generated code %
%%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%
Init_Tool(hObject,eventdata,handles);
%*************************************************************************%
% END Opening Function %
%*************************************************************************%
%*************************************************************************%
% BEGIN Output Function %
% --------------------- %
% --- Outputs from this function are returned to the command line. %
%*************************************************************************%
function varargout = compwav_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
%*************************************************************************%
% END Output Function %
%*************************************************************************%
%=========================================================================%
% BEGIN Create Functions %
% ---------------------- %
% --- Executes during object creation, after setting all properties. %
%=========================================================================%
function EdiPop_CreateFcn(hObject,eventdata,handles)
def_UIBkCOL = get(0,'defaultUicontrolBackgroundColor');
if ispc
BKCOL = get(hObject,'BackgroundColor');
if isequal(BKCOL,def_UIBkCOL)
set(hObject,'BackgroundColor','white');
end
else
set(hObject,'BackgroundColor',def_UIBkCOL);
end
%--------------------------------------------------------------------------
function Sli_CreateFcn(hObject,eventdata,handles)
def_UIBkCOL = get(0,'defaultUicontrolBackgroundColor');
if isequal(get(hObject,'BackgroundColor'),def_UIBkCOL)
set(hObject,'BackgroundColor',[.9 .9 .9]);
end
%--------------------------------------------------------------------------
%=========================================================================%
% END Create Functions %
%=========================================================================%
%=========================================================================%
% BEGIN Callback Functions %
% ------------------------ %
%=========================================================================%
%--------------------------------------------------------------------------
function Rad_TwoPatterns_Callback(hObject, eventdata, handles)
set(hObject,'Value',1);
set(handles.Rad_Test_Sig,'Value',0);
set([handles.Pop_Test_Sig],'Enable','off')
%--------------------------------------------------------------------------
function Rad_Trans_Callback(hObject, eventdata, handles)
set(hObject,'Value',1);
set(handles.Rad_Super,'Value',0);
%--------------------------------------------------------------------------
function Rad_Super_Callback(hObject, eventdata, handles)
set(hObject,'Value',1);
set(handles.Rad_Trans,'Value',0);
%--------------------------------------------------------------------------
function Rad_Test_Sig_Callback(hObject, eventdata, handles)
set(hObject,'Value',1);
set(handles.Rad_TwoPatterns,'Value',0);
set([handles.Rad_Test_Sig,handles.Pop_Test_Sig],'Enable','on')
%--------------------------------------------------------------------------
function Pop_Test_Sig_Callback(hObject, eventdata, handles)
%--------------------------------------------------------------------------
function Chk_Noise_Callback(hObject, eventdata, handles)
%--------------------------------------------------------------------------
function Chk_Triangle_Callback(hObject, eventdata, handles)
%--------------------------------------------------------------------------
function Pop_Wav_Fam_Callback(hObject, eventdata, handles)
cbanapar('cba_fam',gcbf,[],guidata(gcbo));
%--------------------------------------------------------------------------
function Pop_Wav_Num_Callback(hObject, eventdata, handles)
cbanapar('cba_num',gcbf,[],guidata(gcbo));
%--------------------------------------------------------------------------
function Rad_Contours_Callback(hObject, eventdata, handles)
set(hObject,'Value',1);
set(handles.Rad_Images,'Value',0);
%--------------------------------------------------------------------------
function Sli_Thresh_Callback(hObject,eventdata,handles)
Tresh = get(hObject,'Value');
set(handles.Edi_Thresh,'string',num2str(Tresh,'%1.3f'));
%--------------------------------------------------------------------------
function Edi_Thresh_Callback(hObject, eventdata, handles)
FieldDefault = '0.7';
Val_Thresh = str2double(get(hObject,'String'));
if Val_Thresh < 0.1 || Val_Thresh > 0.9 || isnan(Val_Thresh)
set(hObject,'String',FieldDefault);
set(handles.Sli_Thresh,'Value',str2double(FieldDefault));
else
set(handles.Sli_Thresh,'Value',Val_Thresh);
set(hObject,'string',num2str(Val_Thresh,'%1.3f'));
end
%--------------------------------------------------------------------------
function Rad_Images_Callback(hObject, eventdata, handles)
set(hObject,'Value',1);
set(handles.Rad_Contours,'Value',0);
%--------------------------------------------------------------------------
function Pus_Run_Callback(hObject, eventdata, handles)
% Get figure handle.
%-------------------
hFig = handles.output;
% Cleaning.
%-----------
wwaiting('msg',hFig,'Wait ... cleaning');
cleanTOOL([ ...
handles.Axe_RunSigAdapWave , ...
handles.Axe_RunSigWave , ...
handles.Axe_AdapWaveDetect , ...
handles.Axe_WaveDetect ...
]);
% Get parameter values.
%----------------------
tool_PARAMS = wtbxappdata('get',hObject,'tool_PARAMS');
X = tool_PARAMS.X;
Y = tool_PARAMS.Y;
PSI = tool_PARAMS.PSI;
NC_PSI = tool_PARAMS.NC_PSI;
% Get uicontrol values.
%----------------------
RadTrans = get(handles.Rad_Trans,'Value');
RadSuper = get(handles.Rad_Super,'Value');
ChkNoise = get(handles.Chk_Noise,'Value');
ChkTriangle = get(handles.Chk_Triangle,'Value');
RadContours = get(handles.Rad_Contours,'Value');
RadImages = get(handles.Rad_Images,'Value');
Str_Thresh = get(handles.Edi_Thresh,'String');
Thresh = str2double(Str_Thresh);
% Running signal construction.
%-----------------------------
titleSTR{1} = 'Running Signal';
radSIG = handles.Rad_Test_Sig;
radVAL = get(radSIG,'Value');
if radVAL==1
popSIG = handles.Pop_Test_Sig;
popVAL = get(popSIG,'Value');
popSTR = get(popSIG,'String');
sigNAM = deblank(popSTR(popVAL,:));
switch sigNAM{1}
case 'testsig0' , load pthaar
case 'testsig1' , load ptpssin1
case 'testsig2' , load ptpssin2
case 'testsig3' , load ptsine
case 'testsig4' , load ptsumsin
case 'testsig5' , load ptsinpol
case 'testsig6' , load ptodtri
case 'testsig7' , load ptodlin
case 'testsig8' , load ptodpoly
end
end
if RadTrans
nbFormeBASE = 8; scaleBASE = 8; rapport = 2; PONDERATIONS = [1,1];
signalBASE = getSignal('translate',Y,rapport,PONDERATIONS,nbFormeBASE);
lenSIG = length(signalBASE);
scaleMIN = 1;
scaleMAX = 2*scaleBASE;
NoiseLevel = 1.25;
titleSTR{2} = 'F((t-20)/8) + sqrt(2)\timesF((t-40)/4)';
else
nbFormeBASE = 3; scaleBASE = 32; rapport = 4; PONDERATIONS = [1,1];
signalBASE = getSignal('superpose',Y,rapport,PONDERATIONS,nbFormeBASE);
lenSIG = length(signalBASE);
scaleMIN = 1;
scaleMAX = 2*scaleBASE;
NoiseLevel = 0.75;
titleSTR{2} = 'F((t-40)/32) + 2\timesF((t-40)/8)';
end
if radVAL==1, titleSTR{2} = sigNAM{1}; end
signal = signalBASE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -