% steplfm_gui.m - stepped train of LFM pulses with GUI % written by Eli mozeson and Nadav Levanon % creates signal for use with ambiguity function plotting program % create the signal parameters input figure steplfmfig=figure; set(steplfmfig,'Position',[460 51 520 390],'MenuBar','none','visible','on'); % set default values for the steplfm signal tpdf=3; tpb=18; trovertp=10; nn=8; rv=-1; cost=0; % create tpdf input slider y_tpdf = 175; sli_tpdf = uicontrol(steplfmfig,'Style','Slider','sliderstep',[0.01 0.1],... 'Position',[125 y_tpdf 300 20],'Min',0,'Max',60,'Value',tpdf,'Callback',[... 'set(tpdf_cur,''String'',',... 'num2str(get(sli_tpdf,''Val''))),',... 'tpdf=get(sli_tpdf,''Val'');']); tpdf_cur = uicontrol(steplfmfig,'style','edit','Pos',[ 425 y_tpdf 50 20 ],... 'String',num2str(get(sli_tpdf,'Value')),'Callback',[... 'set(sli_tpdf,''Val'',',... 'str2num(get(tpdf_cur,''String''))),',... 'tpdf=get(sli_tpdf,''Val'');']); tpdf_lbl = uicontrol(steplfmfig,'style','Text',... 'Pos',[ 25 y_tpdf 100 20 ],'String','Txdf'); % create tpB input slider y_tpB = 225; sli_tpB = uicontrol(steplfmfig,'Style','Slider','sliderstep',[0.01 0.1],... 'Position',[125 y_tpB 300 20],'Min',0,'Max',60,'Value',tpb,'Callback',[... 'set(tpB_cur,''String'',',... 'num2str(get(sli_tpB,''Val''))),',... 'tpb=get(sli_tpB,''Val'');']); tpB_cur = uicontrol(steplfmfig,'style','edit','Pos',[ 425 y_tpB 50 20 ],... 'String',num2str(get(sli_tpB,'Value')),'Callback',[... 'set(sli_tpB,''Val'',',... 'str2num(get(tpB_cur,''String''))),',... 'tpb=get(sli_tpB,''Val'');']); tpB_lbl = uicontrol(steplfmfig,'style','Text',... 'Pos',[ 25 y_tpB 100 20 ],'String','TxB'); % create trovertp input slider y_trovertp = 275; sli_trovertp = uicontrol(steplfmfig,'Style','Slider','sliderstep',[0.01 0.1],... 'Position',[125 y_trovertp 300 20],'Min',0,'Max',60,'Value',trovertp,'Callback',[... 'set(trovertp_cur,''String'',',... 'num2str(get(sli_trovertp,''Val''))),',... 'trovertp=get(sli_trovertp,''Val'');']); trovertp_cur = uicontrol(steplfmfig,'style','edit','Pos',[ 425 y_trovertp 50 20 ],... 'String',num2str(get(sli_trovertp,'Value')),'Callback',[... 'set(sli_trovertp,''Val'',',... 'str2num(get(trovertp_cur,''String''))),',... 'trovertp=get(sli_trovertp,''Val'');']); trovertp_lbl = uicontrol(steplfmfig,'style','Text',... 'Pos',[ 25 y_trovertp 100 20 ],'String','Tr/T'); % create nn input slider y_nn = 325; sli_nn = uicontrol(steplfmfig,'Style','Slider','sliderstep',[0.01 0.1],... 'Position',[125 y_nn 300 20],'Min',1,'Max',30,'Value',trovertp,'Callback',[... 'set(nn_cur,''String'',',... 'num2str(floor(get(sli_nn,''Val'')))),',... 'nn=floor(get(sli_nn,''Val''));']); nn_cur = uicontrol(steplfmfig,'style','edit','Pos',[ 425 y_nn 50 20 ],... 'String',num2str(get(sli_nn,'Value')),'Callback',[... 'set(sli_nn,''Val'',',... 'floor(str2num(get(nn_cur,''String'')))),',... 'nn=floor(get(sli_nn,''Val''));']); trovertp_lbl = uicontrol(steplfmfig,'style','Text',... 'Pos',[ 25 y_nn 100 20 ],'String','n'); % create reverse slope push botton y_rv=125; rv_on = uicontrol(steplfmfig,'Style','radio',... 'Pos',[425 y_rv 20 20 ],'Value',(rv+1)/2,'Callback',[... 'set(rv_on,''value'',get(rv_on,''value'')),'... 'rv=2*get(rv_on,''value'')-1;']); rv_text = uicontrol(steplfmfig,'Style','text',... 'String','Reverse slope','Position',[125 y_rv 300 20]); % create linear / costas push botton y_cost=75; cost_on = uicontrol(steplfmfig,'Style','radio',... 'Pos',[425 y_cost 20 20 ],'Value',cost,'Callback',[... 'set(cost_on,''value'',get(cost_on,''value'')),'... 'cost=get(cost_on,''value'');']); cost_text = uicontrol(steplfmfig,'Style','text',... 'String','Linear (=0) or Costas (=1) steps','Position',[125 y_cost 300 20]); % create calculate and draw signal parameters push button pushtocalculatestplfm=uicontrol(steplfmfig,'Style','Push','Position',[140 23 312 20 ],... 'String','Cal. Sig. Amplitude and Frequency ','Callback',[... 'sigflag=0;'... 'steplfm_cal;',... 'set(u_amp_text,''String'',num2str(u_amp));',... 'set(u_amp_on,''Value'',acode);',... 'set(u_phase_text,''String'',num2str(u_phase));',... 'set(u_phase_on,''Value'',pcode);',... 'set(freq_text,''String'',num2str(f_basic));',... 'set(freq_on,''Value'',fcode);']);