📄 sigplot2win.m
字号:
function handle = sigplot2win(sigIn, plotFlag, axesValueType)%SIGPLOT2WIN Plots a 1D- or 2D-slice of a radar signal with GUI.%%--------%Synopsis:% sigplot2win(sigIn)% handle = sigplot2win(sigIn)% %Description:% Plots a 1D- or 2D-slice of a radar signal with a graphical user% interface (GUI) enabling the interactive change of signal part to plot, % plot type, normalization etc.% % See help text of function "sigplot2" for information on the GUI controls.%% To print the graf without the GUI controls there are two possibilities.% 1) Choose "GUI Controlls Off" in the "View" meny. A new window with% the graf but without the GUI controls appear. Print this new window. % Choose "GUI Controlls On" in the "View" meny of this new window.% 2) Use the -noui flag to the MATLAB print command. This is done by the% DBT command "printfm".% % If there are problems with the mapping between graph values and the% available colors, try the Matlab command "caxis('auto')".%%Output and Input:% handle (): Graphic object handles.% sigIn (RxRadarSigT): Radar signal to plot.% plotFlag (): Not used.% axesValueType (StringT): Type of values on the axes.% 'index': Index or subscripts (present or original signal matrix?).% 'physical': Using Hertz for Doppler frequency, meter for range, % degrees for direction and index for the remaining dimensions.% NOTE: Implementation not finnished.%%Function Calls:% sigplot2win -> sigplot2winGUIcb -> sigplot2 OR% "Radar Signal Plot" in DBTLink -> sigplot2win_s -> sigplot2win -> % sigplot2winGUIcb -> sigplot2% "A -> B" means that A calls B.% %--------%Notations:% Data type names are shown in parentheses and they start with a capital% letter and end with a capital T. Data type definitions can be found in ...% [D] = This parameter can be omitted and then a default value is used.% When the [D]-input parameter is not the last used in the call, it must be% given the value [], i.e. an empty matrix.% ... = There can be more parameters. They are explained under respective% method.%%Examples:%%Software Quality:% (About what is done to ascertain software quality. What tests are done.)%%Known Bugs:% %%References:% [1]: Bj鰎klund S.: "DBT, A MATLAB Toolbox for Radar Signal Processing.% Reference Guide", FOA-D--9x-00xxx-408--SE, To be published.%%See Also:% sigplot2% * DBT, A Matlab Toolbox for Radar Signal Processing *% (c) FOA 1994-2000. See the file dbtright.m for copyright notice.% Start : 2000-01-17 Jouni Rantakokko (jounir).% Latest change: $Date: 2000/11/17 12:45:14 $ $Author: svabj $.% $Revision: 1.15 $% *****************************************************************************% This function opens the Graphical User Interface (sigplot2winGUI) and % sets it's UserData property to the input signal matrix sigIn. The Slider's% max properties are also set from the size of the sigIn matrix...if (nargin < 2) plotFlag = 'noplot';end%ifif (nargin < 3) axesValueType = 'index';end%if% ****************** open sigplot2winGUI ******************cfh = sigplot2winGUI; % Using the M-file/MAT-file version of the GUI.% ****************** Add a new menu ******************viewMenu = uimenu(cfh ,'Label','&View', 'Position',3);toggleGUIControlsMenu = uimenu(viewMenu ,'Label','GUI &Controls Off', ... 'Callback','sigplot2winGUIcb(''GUIControlsOff'')');% *********** Assign the radar signal to the 'UserData' property ************%set(findobj('tag','sigplot2win'),'UserData',sigIn);set(cfh,'UserData',sigIn);% ********* Set the GUI controlls according to size of radar signal **********sigSizeIn=sigsize(sigIn);clickSliderStep = 5;if (sigSizeIn(1) > 1) set(findobj(cfh,'Tag','SliderPulse'),'Min',1); set(findobj(cfh,'Tag','SliderPulse'),'Max',sigSizeIn(1)); set(findobj(cfh,'Tag','SliderPulse'),'SliderStep',[1/sigSizeIn(1), ... clickSliderStep*1/sigSizeIn(1)]); set(findobj(cfh,'Tag','SliderPulse'),'Enable','on');else set(findobj(cfh,'Tag','SliderPulse'),'Enable','off');end%ifif (sigSizeIn(2) > 1) set(findobj(cfh,'Tag','SliderRange'),'Min',1); set(findobj(cfh,'Tag','SliderRange'),'Max',sigSizeIn(2)); set(findobj(cfh,'Tag','SliderRange'),'SliderStep',[1/sigSizeIn(2), ... clickSliderStep*1/sigSizeIn(2)]); set(findobj(cfh,'Tag','SliderRange'),'Enable','on');else set(findobj(cfh,'Tag','SliderRange'),'Enable','off');end%ifif (sigSizeIn(3) > 1) set(findobj(cfh,'Tag','SliderSpace'),'Min',1); set(findobj(cfh,'Tag','SliderSpace'),'Max',sigSizeIn(3)); set(findobj(cfh,'Tag','SliderSpace'),'SliderStep',[1/sigSizeIn(3), ... clickSliderStep*1/sigSizeIn(3)]); set(findobj(cfh,'Tag','SliderSpace'),'Enable','on');else set(findobj(cfh,'Tag','SliderSpace'),'Enable','off');end%ifif (sigSizeIn(4) > 1) set(findobj(cfh,'Tag','SliderExtra'),'Min',1); set(findobj(cfh,'Tag','SliderExtra'),'Max',sigSizeIn(4)); set(findobj(cfh,'Tag','SliderExtra'),'SliderStep',[1/sigSizeIn(4), ... clickSliderStep*1/sigSizeIn(4)]); set(findobj(cfh,'Tag','SliderExtra'),'Enable','on');else set(findobj(cfh,'Tag','SliderExtra'),'Enable','off');end%ifif (sigSizeIn(5) > 1) set(findobj(cfh,'Tag','SliderCPI'),'Min',1); set(findobj(cfh,'Tag','SliderCPI'),'Max',sigSizeIn(5)); set(findobj(cfh,'Tag','SliderCPI'),'SliderStep',[1/sigSizeIn(5), ... clickSliderStep*1/sigSizeIn(5)]); set(findobj(cfh,'Tag','SliderCPI'),'Enable','on');else set(findobj(cfh,'Tag','SliderCPI'),'Enable','off');end%ifif (sigSizeIn(6) > 1) set(findobj(cfh,'Tag','SliderTrial'),'Min',1); set(findobj(cfh,'Tag','SliderTrial'),'Max',sigSizeIn(6)); set(findobj(cfh,'Tag','SliderTrial'),'SliderStep',[1/sigSizeIn(6), ... clickSliderStep*1/sigSizeIn(6)]); set(findobj(cfh,'Tag','SliderTrial'),'Enable','on');else set(findobj(cfh,'Tag','SliderTrial'),'Enable','off');end%ifset(findobj(cfh,'tag','EditTextLengthRange'),'String',... num2str(sigSizeIn(2)));set(findobj(cfh,'tag','EditTextLengthSpace'),'String',... num2str(sigSizeIn(3)));%set(findobj('Tag','sigplot2win'),'HandleVisibility','Callback');%set(cfh,'HandleVisibility','Callback');% ********* Set the the axes values **********% NOTE: Implementation not finnished.switch (axesValueType)case 'index' pulAxisPhys = 0; ranAxisPhys = 0; spaAxisPhys = 0;case 'physical' if (isfield(sigIn,'freqPos') & (~isempty(sigIn.freqPos))) set(findobj(cfh,'tag','EditTextAxisValuesPulse'),'String',... num2str(sigIn.freqPos)); pulAxisPhys = 1; end%if if (isfield(sigIn,'ranPos') & (~isempty(sigIn.ranPos))) set(findobj(cfh,'tag','EditTextAxisValuesRange'),'String',... num2str(sigIn.ranPos)); ranAxisPhys = 1; end%if if (isfield(sigIn,'doaPos') & (~isempty(sigIn.doaPos))) %set(findobj(cfh,'tag','EditTextAxisValuesSpace'),'String',... % num2str(sigIn.doaPos(1,:))); set(findobj(cfh,'Tag','EditTextAxisValuesSpace'),'String',... ['[',num2str(r2d(sigIn.doaPos(1,:))),']']); % Only the theta angle is set. spaAxisPhys = 1; end%ifotherwise axesValueType dbterror('Internal error in sigplot2win: invalid axesValueType.')end%switch (axesValueType)% ****************** Plot radar signal ******************set(gca, 'NextPlot','replacechildren') % Keep axes properties when replotting , [Using MATLAB Graphics. Version 5] p. 8-37.sigplot2winGUIcb('replot', cfh)%sigplot2winGUIcb('restoreView', cfh)% ****************** Return figure handle ******************if (nargout > 0) handle = cfh;end%if
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -