📄 ctsimplt.m
字号:
function ctsimplt
% CTSIMPLT Support file for CTSIMGUI.
% ADSP Toolbox: Version 2.0
% For use with "Analog and Digital Signal Processing", 2nd Ed.
% Published by PWS Publishing Co.
%
% Ashok Ambardar, EE Dept. MTU, Houghton, MI 49931, USA
% http://www.ee.mtu/faculty/akambard.html
% e-mail: akambard@mtu.edu
% Copyright (c) 1998
global HNUM HDEN
f = gcf;
ui = get(f,'userdata');
action_pop = ui(13);
num_edt = ui(4);
den_edt = ui(6);
n_edt = ui(10);
xn_edt = ui(12);
ic_edt = ui(20);
t_range = ui(16);
t_step = ui(18);
sig_axs = ui(23);
opr_axs = ui(45);
%num_str = get(num_edt,'string');
%num = eval(['[',num_str,']']);
%den_str = get(den_edt,'string');
%den = eval(['[',den_str,']']);
% Verify Transfer Function
hn_st = get(num_edt,'string');
if isempty(hn_st)
errordlg('Nothing entered.','Input Error');
return
end
%if strcmp(hn_st,'HNUM'),
%num=eval('eval(''HNUM'')');
%else
num = eval(['[',hn_st,']'],'[]');
if isempty(num)
errordlg('MATLAB syntax error.','Input Error');
return
end
%end
hd_st = get(den_edt,'string');
if isempty(hd_st)
errordlg('Nothing entered.','Input Error');
return
end
%if strcmp(hd_st,'HDEN'),
%den=eval('eval(''HDEN'')');
%else
den = eval(['[',hd_st,']'],'[]');
if isempty(den)
errordlg('MATLAB syntax error.','Input Error');
return
end
%end
if ~any(num) | ~any(den) % String of zeros
errordlg('Num and Den must have nonzero elements.','Input Error');
return;
end
while num(1) == 0
num(1) = [];
end
while den(1) == 0
den(1) = [];
end
n_str = get(n_edt,'string');
loc_com = find(n_str == ',');
minn = n_str(1:(loc_com-1));
maxn = n_str((loc_com+1):length(n_str));
% minn = str2num(n_str(1:(loc_com-1)));
% maxn = str2num(n_str((loc_com+1):length(n_str)));
xn_str = get(xn_edt,'string');
xn_str = ['(',xn_str,').*(t>=' minn '& t<=' maxn ')'];
t_str = eval(get(t_range,'string'));
t_stp = eval(get(t_step,'string'));
t_vec = 0:t_stp:t_str;
ic_str = get(ic_edt,'string');
if isempty(ic_str),
IC=zeros(length(den)-1,1);
else
ic = eval(['[',ic_str,']']);
IC = ic(:);
end
ty=get(action_pop,'value');
if ty==1 %edit
return;
elseif ty==2, %rk1
meth='rk1';
elseif ty==3, %cyx
meth='rk2';
elseif ty==4, %rxy
meth='rk4';
elseif ty==5, %ryx
meth='sim';
end
resp=ctsim(num,den,xn_str,t_vec,IC,meth);
t=t_vec;xt=eval(xn_str);
set(ui(23),'xlim',[0 t_str])
set(ui(24),'xdata',t_vec,'ydata',xt)
set(ui(45),'xlim',[0 t_str])
set(ui(21),'xdata',t_vec,'ydata',resp);
%tit_str=['Product(cyan). ' meth '(yellow) starts at t = ' num2str(tst)];
%bot_tit=get(ui(45),'title');
%set(bot_tit,'string',tit_str);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -