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

📄 dtsiggen.m

📁 trabajos en matlab para verificar son muy buenos
💻 M
字号:
function [new_y,p_range] = dtsiggen(p_range,mode)
%DTSIGGEN Support file for DTSIGGUI and DTSYSGUI.


% 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);

if nargin == 1,
   mode = p_range;
   p_str = get(ui(9),'string');
   p_range = eval(['[' , p_str, ']']);
   p_range = p_range(1):p_range(2);
   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);
   ttt  = 0;


   if val6 == 1, % general form
    y = val1*(val2 .^ p_range).*(p_range .^ val3).*cos(val4*p_range+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
     end
   n = p_range;len=length(n);
 if ~isstr(xn_str)
        ytmp=xn_str;
 else 
        ytmp = eval(['[',xn_str,']']);
 end
     if length(ytmp) ~=1
         ttmp=val7:val9;
         if val7>n(1),i=find(n>=val7);i1=i(1);ytmp=[ zeros(1,i1-1) ytmp];
            elseif n(1)>val7,i=find(ttmp>=n(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(n));
     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(n));
%           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 + -