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

📄 sb2slmng.m

📁 经典通信系统仿真书籍《通信系统与 MATLAB (Proakis)》源代码
💻 M
📖 第 1 页 / 共 2 页
字号:
elseif cdn == 4
%  new_system(blkname);
%  set_param(blkname, 'position', posit);
%  st =  setstr(st');
%  indx = find(st=='|');
%  st = st(indx(2)+1:indx(3)-1);
%  % bug fix for '/' in the sequence
%  pt = find(st == '/');
%  if ~isempty(pt)
%    for i = length(pt) : -1 : 1
%      st = [st(1:pt(i)), '/', st(pt(i)+1:length(st))];
%    end;
%  end;
%  if length(st) >= 255
%     st = st(1:254);
%  end;
%  add_block('built-in/Note',[blkname,'/',st]);
%  set_param([blkname,'/',st],'position',[100,50,110,60]);
%  set_param(blkname,'Mask Display',st);

  st =  setstr(st');
  indx = find(st=='|');
  st = st(indx(2)+1:indx(3)-1);
  % bug fix for '/' in the sequence
  pt = find(st == '/');
  if ~isempty(pt)
    for i = length(pt) : -1 : 1
      st = [st(1:pt(i)), '/', st(pt(i)+1:length(st))];
    end;
  end;
  if length(st) >= 255
     st = st(1:254);
  end;
  blkname = [blkname, setstr(10), st];
  add_block('built-in/Note',blkname);
  posit2 = floor([(posit(1)+posit(3))/2, (posit(2)+posit(4))/2]);
  set_param(blkname, 'position', [posit2 posit2]);
  note_name = blkname;
else
  add_block(add1,blkname);
  set_param(blkname, 'position', posit);
  %The following is a long process if...elseif...elseif...elseif...end;
  if in(2) == 1 %  if cdn == 3
    if in(3) == 2
      fprintf('block '); fprintf(blkname); fprintf(' is not ready yet.\n')
      %this block is not ready yet
      err = sb2slerr(blkname,'Condition Block (Not Supported)',1);
      set_param(blkname,'function name','condblk')
    elseif in(3) == 3
      st =  setstr(st');
      indx = find(st=='|');
      st = st(indx(2)+1:indx(3)-1);
      set_param(blkname,'Mask Display',st);
    else
      err = sb2slerr(blkname,'We have never seen this block block before.');
    end;
  elseif in(2) == 2 %  elseif cdn ==5 %general algebraic
    if in(3) == 1
      sb2slga(blkname,in,fl);
    elseif in(3) ==2 %elseif cdn ==6 %Sum
       for i = 1:in(4)/in(5)
          if (in(in(4)*2+in(8)+10+i)>0)
             sig = [sig '+'];
          else
             sig = [sig '-'];
          end;
       end;
       set_param(blkname,'inputs',sig);
    elseif in(3) == 3
      sb2sl121(blkname,in,fl,cod,timer);
    elseif in(3) >= 4 & in(3) <= 7 %  elseif cdn >= 8 & cdn <= 11
      sb2slml(blkname,in);
    elseif in(3) == 8
      sb2sl121(blkname,in,fl,cod,timer);
    else
      err = sb2slerr(blkname,'We have never seen this block block before.');
    end;
  elseif in(2) == 3 
    if in(4) == in(5)
      sb2sl121(blkname,in,fl,cod,timer);
    else
      sb2sl221(blkname,in,fl,cod,timer);
    end;
  elseif in(2) == 4 %  elseif cdn == 21
    if in(3) == 1
      sb2slss(blkname,in,fl,cod,timer);
    elseif in(3) ==2 %  elseif cdn == 22
      sb2sltf(blkname,in,fl,cod,timer);
    elseif in(3) == 3 %  elseif cdn == 23
      sb2slgzp(blkname,in,fl,cod,timer);
    elseif in(3) == 4 %  elseif cdn == 24
      sb2slgzp(blkname,in,fl,cod,timer);
    elseif in(3) == 5 %  elseif cdn == 25
      sb2slint(blkname,in,fl,cod,timer);
    elseif in(3) == 6
      sb2slhys(blkname,in,fl,cod,timer);
    elseif in(3) == 7
      sb2sldly(blkname,in,fl,cod,timer);
    elseif in(3) == 8
      sb2sllti(blkname,in,fl,cod,timer);
    elseif in(3) == 9
      sb2slpid(blkname,in,fl,cod,timer);
    elseif in(3) == 10
      sb2slsc(blkname,in,fl,cod,timer);
    else
      err = sb2slerr(blkname,'We have never seen this block block before.');
    end;
  elseif in(2) == 5
    if in(3) == 1 %  elseif cdn == 31
      set_param(blkname,'Expr','sin(u[1])');
    elseif in(3) == 2 %  elseif cdn == 32
      set_param(blkname,'Expr','cos(u[1])');
    elseif in(3) >= 3 & in(3) <= 5
      sb2sl221(blkname,in,fl);
    elseif in(3) == 6 %  elseif cdn == 36
      set_param(blkname,'Expr','asin(u[1])');
    elseif in(3) == 7 %  elseif cdn == 37
      set_param(blkname,'Expr','cos(asin(u[1]))');
    elseif in(3) == 8 %  elseif cdn == 38
      set_param(blkname,'Expr','acos(u[1])');
    else
      err = sb2slerr(blkname,'We have never seen this block block before.');
    end;
  elseif in(2) == 6,
    sb2slmat(blkname,in,fl,cod,timer);
  elseif in(2) == 7
    set_param(blkname,'Gain',num2str(fl(1)));
  elseif in(2) == 8 %  elseif cdn == 42
    if in(3) == 1
      set_param(blkname,'Expr','sqrt(u[1])');
    elseif in(3) == 2 %  elseif cdn == 43
      set_param(blkname,'Expr','ln(u[1])');
    elseif in(3) == 3 %  elseif cdn == 44
      set_param(blkname,'Expr','power(2.71828182846,u[1])',...
              'Mask Display','     u\ne');
    elseif in(3) == 4 %  elseif cdn == 45
      set_param(blkname,'Expr','u[1]*u[1]',...
              'Mask Display','     2\nu');
    elseif in(3) == 5 %  elseif cdn == 46
      set_param(blkname,'Expr','power(10,u[1])',...
              'Mask Display','       u\n10');
    elseif in(3) == 6  % elseif cdn == 47
      set_param(blkname,...
        'Expr','(u[1]>=0)-(u[1]<0)*sqrt(abs(u[1]))',...
              'Mask Display','sign(sqrt(u))');
    else
      err = sb2slerr(blkname,'We have never seen this block block before.');
    end;
  elseif in(2) == 9
     sb2sl121(blkname,in,fl,cod,timer);
     % in(2) == 9 will not be happened here.
  elseif in(2) == 10
    % input source, 
    sb2slsc(blkname,in,fl,cod,timer);
  elseif in(2) == 11
    if in(3) == 1
       sb2slga(blkname,in,fl);
    elseif in(3) == 2
       sb2slsft(blkname,in,fl,cod,timer);
    elseif in(3) == 3
       sb2sl221(blkname,in,fl,cod,timer);
%       set_param(blkname,'Mask Display','NOR')
    elseif in(3) == 4
       sb2sl221(blkname,in,fl,cod,timer);
    elseif in(3) == 5
        sb2slswt(blkname,in,fl,cod,timer);
    elseif in(3) == 6
       sb2slgtb(blkname,in,fl,cod,timer);
    elseif in(3) == 7 %stop simulation
      % nothing to be done
    elseif in(3) == 8
      err = sb2slerr(blkname,'We have never seen this type of block before');
    elseif in(3) == 9
      delete_block(blkname);
      new_system(blkname);
      set_param(blkname, 'position', posit);
      add_block('built-in/Inport',[blkname,'/input1']);
      set_param([blkname '/input1'],'position',...
		[10,40,30,60],'hide name',0,'Port','1');
      add_block('built-in/Outport',[blkname,'/output1']);
      set_param([blkname '/output1'],...
                'position',[40,40,60,60],'hide name',0,'Port','1');
      err = sb2slerr(blkname,'Fuzzy Block (Not Supported)',1);
    elseif in(3) == 10
      delete_block(blkname);
      new_system(blkname);
      set_param(blkname, 'position', posit);
      add_block('built-in/Inport',[blkname,'/input1']);
      set_param([blkname '/input1'],'position',...
		[10,40,30,60],'hide name',0,'Port','1');
      add_block('built-in/Outport',[blkname,'/output1']);
      set_param([blkname '/output1'],...
                'position',[40,40,60,60],'hide name',0,'Port','1');
      err = sb2slerr(blkname,'Expert System (Not Supported)',1);
    else
      err = sb2slerr(blkname,'We have never seen this type of block before');
    end;
  elseif in(2) == 13
      delete_block(blkname);
      new_system(blkname);
      set_param(blkname, 'position', posit);
      add_block('built-in/Inport',[blkname,'/input1']);
      set_param([blkname '/input1'],'position',...
		[10,40,30,60],'hide name',0,'Port','1');
      add_block('built-in/Outport',[blkname,'/output1']);
      set_param([blkname '/output1'],...
                'position',[40,40,60,60],'hide name',0,'Port','1');
    err = sb2slerr(blkname,'We are not supporting this block');
  elseif in(2) == 14
      delete_block(blkname);
      new_system(blkname);
      set_param(blkname, 'position', posit);
      add_block('built-in/Inport',[blkname,'/input1']);
      set_param([blkname '/input1'],'position',...
		[10,40,30,60],'hide name',0,'Port','1');
      add_block('built-in/Outport',[blkname,'/output1']);
      set_param([blkname '/output1'],...
                'position',[40,40,60,60],'hide name',0,'Port','1');
    err = sb2slerr(blkname,'We are not supporting this block');
  elseif cdn == 82
    set_param(blkname,'inputs',num2str(ios(1)));
  elseif cdn == 83
    set_param(blkname,'outputs',num2str(ios(2)));
  end;
end;

%set_param(blkname, 'position', posit);
if cod(3)
   set_param(blkname, 'orientation', 2);
end;
tmp =  in(in(17)-3);
if tmp
  if tmp >= 0
    tmp = rem(tmp-1,6)+1;
    set_param(blkname, 'BackGround',bg(tmp));
  else
    tmp = rem(abs(tmp)-1,6) + 1;
    set_param(blkname, 'ForeGround',fg(tmp));
  end;
end;





⌨️ 快捷键说明

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