📄 nlsegui.m
字号:
set(handles.gShow2,'Enable','on');
set(handles.gT2,'String','')
handles.Play_Index_Display2 = 0;
guidata(hObject,handles);
handles.show_side_by_side(1,1) = 0;
guidata(hObject,handles);
else
s=2;found=0;
[tmp_m,tmp_n]=size(handles.Ploted_Data_Index_Display2);
while ~found && s<=tmp_n,
if n==handles.Ploted_Data_Index_Display2(1,s),
found=1;
end
s=s+1;
end
if found==0,
handles.Ploted_Data_Index_Display2 = [handles.Ploted_Data_Index_Display2,n];
guidata(hObject,handles);
end
[tmp_m,tmp_n]=size(handles.Ploted_Data_Index_Display2);
h=plot( handles.Time,abs(handles.Signal(handles.Ploted_Data_Index_Display2(1,2:tmp_n),:)).^2,'Parent',handles.Display2);
set(get(handles.Display2,'YLabel'),'String','Intensity','FontSize',12,'FontName','Courier New','FontWeight','bold')
set(get(handles.Display2,'XLabel'),'String','Time (T_0)','FontSize',12,'FontName','Courier New','FontWeight','bold')
set(handles.gRefreshDisplay2,'Enable','on','Visible','on');
set(handles.gShowframe2,'Visible','off','Value',1);
set(handles.gShow2,'Enable','on');
set(handles.gT2,'String','')
handles.Play_Index_Display2 = 0;
guidata(hObject,handles);
handles.show_side_by_side(1,1) = 0;
guidata(hObject,handles);
end
else
handles.Ploted_Data_Index_Display2 = [1,n]
guidata(hObject,handles);
h=plot( handles.Time,abs(handles.Signal(n,:)).^2,'Parent',handles.Display2);
set(get(handles.Display2,'YLabel'),'String','Intensity','FontSize',12,'FontName','Courier New','FontWeight','bold')
set(get(handles.Display2,'XLabel'),'String','Time (T_0)','FontSize',12,'FontName','Courier New','FontWeight','bold')
set(handles.gRefreshDisplay2,'Enable','on','Visible','on');
set(handles.gShowframe2,'Visible','off','Value',1);
set(handles.gShow2,'Enable','on');
set(handles.gT2,'String','');
handles.Play_Index_Display2 = 0;
guidata(hObject,handles);
handles.show_side_by_side(1,1) = 0;
guidata(hObject,handles);
end
% --------------------------------------------------------------------
function gSC_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties.
function Loaded_Signals_CreateFcn(hObject, eventdata, handles)
% hObject handle to Loaded_Signals (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: listbox controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
% --- Executes on selection change in Loaded_Signals.
function Loaded_Signals_Callback(hObject, eventdata, handles)
% hObject handle to Loaded_Signals (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns Loaded_Signals contents as cell array
% contents{get(hObject,'Value')} returns selected item from Loaded_Signals
% --- Executes on button press in gIS_Edit.
function gIS_Edit_Callback(hObject, eventdata, handles)
n=get(handles.Loaded_Signals,'Value');
if n==0,
errordlg('No Signal selected!','Error Dialog Box','modal');
elseif ismember(n,handles.Input_Signal_Index)
errordlg('Being used by Launch Module!','Error Dialog Box','modal');
else
if handles.Signal_Spec(n,5)==2,
prompt{1} = 'Width';
prompt{2} = 'Chirp Parameter';
prompt{3} = 'Amplitude'
default_ans = {num2str(handles.Signal_Spec(n,1)),num2str(handles.Signal_Spec(n,2)),num2str(handles.Signal_Spec(n,3))};
title = 'Parameters For Hyperbolic-Secant Pulse';
answer = inputdlg(prompt,title,1,default_ans);
if ~isempty(answer),
%----------- Pulse Parameters ----------------
handles.Signal_Spec(n,1) =str2num(answer{1})
guidata(hObject,handles);
handles.Signal_Spec(n,2) =str2num(answer{2});
guidata(hObject,handles);
handles.Signal_Spec(n,3) =str2num(answer{3});
guidata(hObject,handles);
Tmp_Signal=handles.Signal_Spec(n,3)*sech(handles.Time./handles.Signal_Spec(n,1)).*exp(-((handles.Signal_Spec(n,2)*sqrt(-1))/2)*(handles.Time./handles.Signal_Spec(n,1)).^2);
handles.Signal(n,:)=Tmp_Signal;
guidata(hObject,handles);
%--------Finding FFT of the Signal-----------------------------------
handles.Frequency_Chirp(n,:)=-2*handles.Signal_Spec(n,2)*(handles.Time/handles.Signal_Spec(n,1))/handles.Signal_Spec(n,1);
guidata(hObject,handles);
tmpFFT=fft(Tmp_Signal);
handles.Signal_Spectrum(n,:) = tmpFFT;
handles.Loaded_Signal_Ppty(n,:) =[sqrt(var(handles.Time,abs(Tmp_Signal).^2)),sqrt(var(handles.Frequency,abs(tmpFFT).^2))];
guidata(hObject,handles);
tmpStr=cat(2,handles.Loaded_Signal_List,handles.Empty,num2str(handles.Loaded_Signal_Ppty(:,1)),handles.Empty,num2str(handles.Loaded_Signal_Ppty(:,2)));
set(handles.Loaded_Signals,'String',tmpStr);
end
elseif handles.Signal_Spec(n,5)==1,
prompt{1} = 'Width';
prompt{2} = 'm';
prompt{3} = 'Chirp Parameter';
prompt{4} = 'Amplitude';
default_ans = {num2str(handles.Signal_Spec(n,1)),num2str(handles.Signal_Spec(n,2)),num2str(handles.Signal_Spec(n,3)),num2str(handles.Signal_Spec(n,4))};
title = 'Parameters For Super-Gaussian Pulse';
answer = inputdlg(prompt,title,1,default_ans);
if ~isempty(answer),
%----------- Pulse Parameters ----------------
handles.Signal_Spec(n,1) =str2num(answer{1})
guidata(hObject,handles);
handles.Signal_Spec(n,2) =str2num(answer{2});
guidata(hObject,handles);
handles.Signal_Spec(n,3) =str2num(answer{3});
guidata(hObject,handles);
handles.Signal_Spec(n,4) =str2num(answer{4});
guidata(hObject,handles);
Tmp_Signal=handles.Signal_Spec(n,4)*exp(-((1+handles.Signal_Spec(n,3)*sqrt(-1))/2)*(handles.Time./handles.Signal_Spec(n,1)).^(2*handles.Signal_Spec(n,2)));
handles.Signal(n,:)=Tmp_Signal;
guidata(hObject,handles);
%--------Finding FFT of the Signal-----------------------------------
handles.Frequency_Chirp(n,:)=-2*handles.Signal_Spec(n,3)*handles.Signal_Spec(n,2)*((handles.Time/handles.Signal_Spec(n,1)).^(2*handles.Signal_Spec(n,2)-1))/handles.Signal_Spec(n,1);
guidata(hObject,handles);
tmpFFT=fft(Tmp_Signal);
handles.Signal_Spectrum(n,:) = tmpFFT;
handles.Loaded_Signal_Ppty(n,:) = [sqrt(var(handles.Time,abs(Tmp_Signal).^2)),sqrt(var(handles.Frequency,abs(tmpFFT).^2))];
guidata(hObject,handles);
tmpStr=cat(2,handles.Loaded_Signal_List,handles.Empty,num2str(handles.Loaded_Signal_Ppty(:,1)),handles.Empty,num2str(handles.Loaded_Signal_Ppty(:,2)));
set(handles.Loaded_Signals,'String',tmpStr);
end
elseif handles.Signal_Spec(n,5)==0,
errordlg('Parametrs non-editable','Error Dialog Box','modal');
end
end
% --- Executes on button press in gRemove_IS.
function gRemove_IS_Callback(hObject, eventdata, handles)
% Remove Selected
n=get(handles.Loaded_Signals,'Value');
if n==0,
errordlg('No Signal selected!','Error Dialog Box','modal');
set(handles.gRemove_IS,'Enable','off');
set(handles.gIS_Edit,'Enable','off');
elseif ismember(n,handles.Input_Signal_Index)
errordlg('Being used by Launch Module!','Error Dialog Box','modal');
elseif handles.Signal_num==1,
handles.Signal = [];
guidata(hObject,handles);
handles.Frequency_Chirp = [];
guidata(hObject,handles);
handles.Signal_Spectrum = [];
guidata(hObject,handles);
handles.Frequency_Chirp = [];
guidata(hObject,handles);
handles.Loaded_Signal_List = [];
guidata(hObject,handles);
handles.Loaded_Signal_Ppty = [];
guidata(hObject,handles);
handles.Ploted_Data_Index_Display1 = [];
guidata(hObject,handles);
handles.Ploted_Data_Index_Display2 = [];
guidata(hObject,handles);
handles.Empty = [];
guidata(hObject,handles);
handles.Signal_num = 0;
guidata(hObject,handles);
handles.Signal_Spec = [];
guidata(hObject,handles);
set(handles.Loaded_Signals,'String','','Value',handles.Signal_num);
set(handles.gRemove_IS,'Enable','off');
set(handles.gIS_Edit,'Enable','off');
elseif n==handles.Signal_num,
handles.Signal = handles.Signal(1:(n-1),:);
guidata(hObject,handles);
handles.Frequency_Chirp = handles.Frequency_Chirp(1:(n-1),:);
guidata(hObject,handles);
handles.Signal_Spectrum = handles.Signal_Spectrum(1:(n-1),:);
guidata(hObject,handles);
handles.Loaded_Signal_List = handles.Loaded_Signal_List(1:(handles.Signal_num-1),:);
guidata(hObject,handles);
handles.Loaded_Signal_Ppty = handles.Loaded_Signal_Ppty(1:(n-1),:);
guidata(hObject,handles);
handles.Signal_Spec = handles.Signal_Spec(1:(n-1),:);
guidata(hObject,handles);
s=2;found=0;
[tmp_m,tmp_n] = size(handles.Ploted_Data_Index_Display1);
while ~found && s<=tmp_n,
if n==handles.Ploted_Data_Index_Display1(1,s),
found=1;
end
s=s+1;
end
if found==1&& 2==tmp_n,
handles.Ploted_Data_Index_Display1=[];
guidata(hObject,handles);
elseif found ==1,
handles.Ploted_Data_Index_Display1=[handles.Ploted_Data_Index_Display1(1,1:s-2),handles.Ploted_Data_Index_Display1(1,s:tmp_n)];
guidata(hObject,handles);
end
s=2;found=0;
[tmp_m,tmp_n] = size(handles.Ploted_Data_Index_Display2);
while ~found && s<=tmp_n,
if n==handles.Ploted_Data_Index_Display2(1,s),
found=1;
end
s=s+1;
end
if found==1 && 2==tmp_n,
handles.Ploted_Data_Index_Display2=[];
guidata(hObject,handles);
elseif found ==1,
handles.Ploted_Data_Index_Display2=[handles.Ploted_Data_Index_Display2(1,1:s-2),handles.Ploted_Data_Index_Display2(1,s:tmp_n)];
guidata(hObject,handles);
end
handles.Empty = handles.Empty(1:(n-1),:);
guidata(hObject,handles);
handles.Signal_num = handles.Signal_num - 1;
guidata(hObject,handles);
tmpStr = cat(2,handles.Loaded_Signal_List,handles.Empty,num2str(handles.Loaded_Signal_Ppty(:,1)),handles.Empty,num2str(handles.Loaded_Signal_Ppty(:,2)));
set(handles.Loaded_Signals,'String',tmpStr,'Value',handles.Signal_num);
set(handles.gRemove_IS,'Enable','on');
set(handles.gIS_Edit,'Enable','on');
else
handles.Loaded_Signal_List = handles.Loaded_Signal_List(1:(handles.Signal_num-1),:);
guidata(hObject,handles);
handles.Signal = [handles.Signal(1:(n-1),:);handles.Signal((n+1):handles.Signal_num,:)];
guidata(hObject,handles);
handles.Frequency_Chirp = [handles.Frequency_Chirp(1:(n-1),:);handles.Frequency_Chirp((n+1):handles.Signal_num,:)];
guidata(hObject,handles);
handles.Signal_Spectrum = [handles.Signal_Spectrum(1:(n-1),:);handles.Signal_Spectrum((n+1):handles.Signal_num,:)];
guidata(hObject,handles);
handles.Signal_Spectrum = handles.Signal_Spectrum(1:(n-1),:);
guidata(hObject,handles);
handles.Loaded_Signal_Ppty = [handles.Loaded_Signal_Ppty(1:(n-1),:);handles.Loaded_Signal_Ppty(n+1:(handles.Signal_num),:)];
guidata(hObject,handles);
handles.Empty = [handles.Empty(1:(n-1),:);handles.Empty(n+1:(handles.Signal_num),:)];
guidata(hObject,handles);
handles.Signal_Spec = [handles.Signal_Spec(1:(n-1),:);handles.Signal_Spec(n+1:(handles.Signal_num),:)];
s=2;found=0;
[tmp_m,tmp_n] = size(handles.Ploted_Data_Index_Display1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -