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

📄 intrpplt.m

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