⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ctsimplt.m

📁 ADSP TOOLBOX: Version 2.0 and gui m-files
💻 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 + -