📄 intrpplt.m
字号:
function intrpplt
%INTRPPLT Plot control for INTRPGUI.
% 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
f = gcf;
ui = get(f,'userdata');
hn_edt = ui(3);
inter_edt=ui(5);
meth_pop=ui(7);
r_edt=ui(9);
sig_axs = ui(29);
sig_line = ui([30,31]);
resp_axs = ui(32);
resp_line = ui([33,34]);
add_line = ui([35,36]);
axs_han=get(ui(1),'userdata');
%%%%%%%%
if get(ui(5),'userdata')==1
set(f,'currentaxes',ui(29));
zoom out,zoom reset
set(f,'currentaxes',ui(32));
zoom out,zoom reset
end
%%%%%%%%%%
% Verify Transfer Function
hn_st = get(hn_edt,'string');
if isempty(hn_st)
errordlg('Nothing entered.','Input Error');
return
end
problem=0;if hn_st(1)=='W',
hn_st(1)=[];evalin('base',[hn_st ';'],'problem=1;')
if problem==0, hn=evalin('base',hn_st);
if isstr(hn), hn=eval(['[',hn,']'],'[]');end
else
errordlg('MATLAB Syntax error.','Input Error');
return
end
else
hn = eval(['[',hn_st,']'],'[]');
end
if isempty(hn)
errordlg('MATLAB Syntax error.','Input Error');
return
end
if ~any(hn)
errordlg('Not all entries can be zero.','Input Error');
return
end
val = eval(['[',get(inter_edt,'string'),']'],'[]');
if isempty(val)
errordlg('MATLAB Syntax error.','Input Error');
return
end
if rem(val,1)~=0|val<=0
errordlg('Interpolation factor must be positive integer.','Input Error');
return
end
method=get(meth_pop,'value');
if method ~= 5,
set(ui([8,9]),'vis','off');
else
set(ui([8,9]),'vis','on');
end
if method==1,ty='z';
elseif method==2,ty='c';
elseif method==3,ty='l';
elseif method==4,ty='s';
elseif method==5,ty='r';
r_val = eval(['[',get(r_edt,'string'),']'],'[]');
if isempty(r_val)
errordlg('MATLAB Syntax error.','Input Error');
return
end
if r_val>=1|r_val<=0
errordlg('R must lie between 0 and 1.','Input Error');
return
end
elseif method==6,ty='d';
end
if method ==5
hi=interpol(hn,ty,val,r_val);
else
hi=interpol(hn,ty,val);
end
nn=0:length(hn)-1;
ni=0:length(hi)-1;
nmax=length(hn);
set(sig_axs,'xlim',[0 nmax],'ylim',[min(hn),max(hn)]);
dtstem(sig_line,nn,hn);
set(ui(17),'userdata',[nn(:) hn(:)]);
min1=min(hn);min2=min(hi);minny=min([min1 min2]);
max1=max(hn);max2=max(hi);maxxy=max([max1 max2]);
set(resp_axs,'xlim',[0 val*nmax],'ylim',[minny maxxy]);
%set(resp_axs,'xlim',[0 val*nmax],'ylim',[min([hn,hi]),max([hn,hi])]);
dtstem(resp_line,ni,hi);
dtstem(add_line,val*nn,hn);
set(ui(18),'userdata',[ni(:) hi(:)]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -