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

📄 ctsiggen.m

📁 trabajos en matlab para verificar son muy buenos
💻 M
字号:
function [new_y,p_range] = ctsiggen(p_range,mode)
%CTSIGGEN Support file for CTSIGGUI


% 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');
ele_mat = get(ui(1),'userdata');
axs_han = get(ui(6),'userdata');
ele_axs = get(ui(12),'userdata');
ele_sld = get(ele_axs,'userdata');
[r,c] = size(ele_mat);
i = sqrt(-1);

   dn =str2num(get(ui(19),'string'));
   if isempty(dn),dn=0.01;end


% obtain plotting range values
if nargin == 1,
   mode = p_range;
   p_str = get(ui(9),'string');
   p_range = eval(['[' , p_str, ']']);

   p_range = p_range(1):dn:p_range(2);

% store recent and correct string
   set(get(axs_han,'title'),'userdata',p_str); % for conv & dtsys?

end

new_y = zeros(size(p_range));

for k = 1:r,
   val1 = ele_mat(k,1);
   val2 = ele_mat(k,2);
   val3 = ele_mat(k,3);
   val4 = ele_mat(k,4);
   val5 = ele_mat(k,5);
   val6 = ele_mat(k,6);
   val7 = ele_mat(k,7);
   val8 = ele_mat(k,8);
   val9 = ele_mat(k,9);

   if val6 == 1, % general form
     y = val1*exp(-val2*p_range).* (p_range .^ val3).*cos(p_range*val4+val5);
     new_y = new_y + y.*(p_range>=val7 & p_range<=val9);

   elseif val6 == 2  % Matlab array
     xn_str = get(val1,'userdata');

     problem=0;if xn_str(1)=='W',
     xn_str(1)=[];xn_st=xn_str;evalin('base',[xn_str ';'],'problem=1;')
        if problem==0, xn_str=evalin('base',xn_str);
           else
           errordlg('MATLAB Syntax error.','Input Error');
           return
        end
if get(ui(10),'userdata') == 3
if ~isstr(xn_str),
   errordlg([xn_st ' is not a string variable.'],'Input Error');
   return
end
end
end
t = p_range;len=length(t);
if ~isstr(xn_str)
   ytmp=xn_str;

   else                  
   ytmp = eval(['[',xn_str,']']);
end
  if length(ytmp) ~=1
     ttmp=val7:dn:val9;
         if val7>t(1),i=find(t>=val7);i1=i(1);ytmp=[ zeros(1,i1-1) ytmp];
         elseif t(1)>val7,i=find(ttmp>=t(1));i1=i(1);ytmp(1:i1-1)=[];
         end
       len2=length(ytmp);
         if len2>len,ytmp=ytmp(1:len);
         elseif len>len2,ytmp=[ytmp zeros(1,len-len2)];
         end
  else
    ytmp = ytmp*ones(size(t));
  end
  new_y = new_y + ytmp.*(p_range>=val7 & p_range<=val9);
%  new_y = new_y + ytmp;

%else                  
%   ytmp = eval(['[',xn_str,']']);
%    if length(ytmp) == 1
%       ytmp = ytmp*ones(size(t));
%    end
%    ytmp = ytmp(:).';y=ytmp;
%    new_y = new_y + y.*(p_range>=val7 & p_range<=val9);
%end

end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -