亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sbiterr.m

?? 介紹了通信系統中各個通信模塊的MATLAB實現
?? M
?? 第 1 頁 / 共 2 頁
字號:
function [sys, x0, str, ts] = sbiterr(t,x,u,flag, numLine, K, timeDelay, sampleTime)
% SBITERR: S-function for display symbol and bit error
% This M-file is designed to be used in a Simulink S-function block.
%
%WARNING: This is an obsolete function and may be removed in the future.

% [SYS, X0, STR, TS] = SBITERR(T, X, U, FLAG, NUMLINE, K, TIMEDELAY, SAMPLETIME)
%    NUMLINE:   number of lines on display.
%    K:         bit number. Input/Output are in the range (0, K-1)
%    TIMEDELAY: time delay from Input to Output
%    SAMPLETIME:sample time of the input signal
%
% See also: PlOT, SFUNYST, SFUNXY.

%   Copyright 1996-2001 The MathWorks, Inc.
%       $Revision: 1.31 $
%   Original designed by Wes Wang 1/14/95
%   Rewritten by Jun Wu 09/16/97

switch flag,

  %%%%%%%%%%%%%%%%%%
  % Initialization %
  %%%%%%%%%%%%%%%%%%
  case 0,
    [sys,x0,ts]=mdlInitializeSizes(numLine, K, timeDelay, sampleTime);
    SetBlockCallbacks(gcbh);

  %%%%%%%%%%
  % Update %
  %%%%%%%%%%
  case 2,
    sys=mdlUpdate(t,x,u,numLine, K, timeDelay, sampleTime);

  %%%%%%%%%
  % Start %
  %%%%%%%%%
  case 'Start'
    LocalBlockStartFcn

  %%%%%%%%
  % Stop %
  %%%%%%%%
  case 'Stop'
    LocalBlockStopFcn

  %%%%%%%%%%%%%%
  % NameChange %
  %%%%%%%%%%%%%%
  case 'NameChange'
    LocalBlockNameChangeFcn
    
  %%%%%%%%%%%%%
  % Load,Copy %
  %%%%%%%%%%%%%
  case { 'LoadBlock', 'CopyBlock' }
    LocalBlockLoadCopyFcn
    
  %%%%%%%%%%%%%%%
  % DeleteBlock %
  %%%%%%%%%%%%%%%
  case 'DeleteBlock'
    LocalBlockDeleteFcn
    
  %%%%%%%%%%%%%%%%
  % DeleteFigure %
  %%%%%%%%%%%%%%%%
  case 'DeleteFigure'
  LocalFigureDeleteFcn

  %%%%%%%%%%%%%%%%%%%
  % Unhandled flags %
  %%%%%%%%%%%%%%%%%%%
  case { 3, 9 }
    sys=[];

  %%%%%%%%%%%%%%%%%%%%
  % Unexpected flags %
  %%%%%%%%%%%%%%%%%%%%
  otherwise
    if ischar(flag),
      errmsg=sprintf('Unhandled flag: '' %s''', flag);
    else
      errmsg=sprintf('Unhandled flag: 	%d', flag);
    end

    error(errmsg);

end


%%%%%%%%%%%%%%%%%%%%%new %%%%%%%%%%%%%%%%%%%%
str = 1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% end sbiterr

%
%=============================================================================
% mdlInitializeSizes
% Return the sizes, initial conditions, and sample times for the S-function.
%=============================================================================
%
function [sys,x0,ts]=mdlInitializeSizes(numLine, K, timeDelay, sampleTime)

% Keep number of states
numStates = max(0, ceil(timeDelay/sampleTime(1)*(1-10*eps))) + 1;

if timeDelay < 0
  error('Time delay cannot be negative.');
end;

if length(sampleTime) < 1
  error('Sample time cannot be empty.');
elseif length(sampleTime) == 1  
  sampleTime = [sampleTime, 0];
else
  sampleTime = sampleTime(:)';
  sampleTime = sampleTime(1:2);
end;

if rem( timeDelay + sampleTime(2), sampleTime(1) ) == 0
  sampleTime2 = [];
  numSampleTime = 1;
else
  sampleTime2 = [ sampleTime(1), rem( timeDelay + sampleTime(2), sampleTime(1) ) ];
  if sampleTime2(2) / sampleTime2(1) < sqrt(eps)
    sampleTime2(2) = 0;
  end;
  numSampleTime = 2;
  if ( abs(sampleTime(1) - sampleTime2(1)) < sqrt(eps) ) ...
	& ( abs(sampleTime(2) - sampleTime2(2)) < sqrt(eps) )
    numSampleTime = 1;
    sampleTime2 = [];
  end;
end;

%
% initialize the array of sample times
%
if sampleTime <= 0
  error('Sample Time for error rate meter has to be larger than zero.');
end;    
ts = [ sampleTime; sampleTime2 ];

%
% call simsizes for a sizes structure, fill it in and convert it to a sizes array.
%
sizes = simsizes;

sizes.NumContStates  = 0;
sizes.NumDiscStates  = numStates + 6;
sizes.NumOutputs     = 0;
sizes.NumInputs      = -1;  % dynamically sized input vector
sizes.DirFeedthrough = 0;   % the meter does not have direct feedthrough
sizes.NumSampleTimes = numSampleTime;

sys = simsizes(sizes);

if isempty(sampleTime2)
  sampleTime2 = sampleTime;
end;

%
% initialize the initial condition
%
x0 = [0; numStates; 			% figure number. 0 indicates the first
    zeros(numStates, 1);
    numSampleTime; sampleTime(1);
    sampleTime(2); sampleTime2(2)]; 	% number of states

%
% str is always an empty matrix
%
str = [];

% end mdlInitializeSizes

%
%=============================================================================
% mdlUpdate
% Handle discrete state updates, sample time hits, and major time step
% requirements.
%=============================================================================
%
function sys=mdlUpdate(t, x, u, numLine, K, timeDelay, sampleTime)

sys = [];

%
% Locate the figure window associated with this block. If it's not a valid
% handle (it may have been closed by the user), then return.
%
figureHandle = GetSBiterrFigure(gcbh);
if ~ishandle(figureHandle)
  return;
end;  

%
%timing control.
%
colorMap = ['blue ';'black';'red  '];
positionNumSampleTime = x(2) + 3;
sampleTime1 = [ x( positionNumSampleTime + [1:2] ) ];

if x(positionNumSampleTime) == 1
  sampleTime2 = sampleTime1;
else
  sampleTime2 = [ x(positionNumSampleTime + [1;3]) ];
end;

relError = rem(t, sampleTime1(1)) / sampleTime1(1);
test1 = abs(relError - sampleTime1(2) /sampleTime1(1));
test2 = abs(relError - sampleTime1(2) /sampleTime1(1));

if (test1 < .0000001) | (abs(test1 - 1)< .0000001)
  % storage part
  if x(2) > 0
    x(3:2+x(2)) = [x(4:2+x(2)); u(1)];
  else
    x(3) = u(1);
  end;
  sys = x;
end;

% get the number of inputs.
inputLength = length(u);
if inputLength < 2
  error('Source or destination is empty.');
end;
if K == 1;
  bitLength = 3;
  hdlRcdLength = 2 * inputLength - 1;
else
  bitLength = 6;
  hdlRcdLength = 4 * inputLength - 2;
end;

% This part is only for giving user a warning about the size of the window
if x(1) == 0
  if numLine >= 40 | inputLength >= 7
    warnmsg=sprintf('Please resize your Bit Error Meter to get a better looking.');
    warning(warnmsg);
  end;
end;  

if (test2 < .0000001) | (abs(test2 - 1)< .0000001)
  % plot part
  if t < timeDelay
    sys = x;
    return;
  end;

  % initialize graph.
  if x(1) == 0  
    sl_name = gcs;
    block = get_param(sl_name, 'CurrentBlock');
    
    [n_b, m_b] = size(block);
    if n_b < 1
      error('Cannot delete block during simulation.')
    elseif n_b > 1
      error('Something wrong in get_param. You don''t have the current Simulink.')
    end;
    
    % test if figure exists
    allFiguresExist = allchild(0);
    new_figure = 1;
    i = 1;
    while ((new_figure) & (i <= length(allFiguresExist)))
      if strcmp(get(allFiguresExist(i), 'Type'), 'figure')
	if strcmp(get(allFiguresExist(i), 'Name'), sl_name)
	  figureHandle = allFiguresExist(i);
	  handles = get(figureHandle,'UserData');
	  new_figure = 0;
	  % refresh all handles.
	  if (length(handles) == 1+length(u) * (num_lin + 2) - ((K>1) + 1)*2)
	    %use the old one.
	    for ii = 3 : length(handles)
	      set(handles(ii), 'String', ' ');
	    end
	    current_point = 0;
	    if K == 1
	      h_sym_bit = handles(2 : length(u)*2);
	      handleRecord = handles(length(u)*2+1 : length(handleRecord));
	      for i = 1 : 2: length(u) * 2
		set(h_sym_bit(i) , 'UserData', 0);
	      end;
	    else
	      h_sym_bit = handles(2 : length(u)*4-1);
	      handleRecord = handles(length(u)*4 : length(handleRecord));
	      t_tras(1) = get(h_sym_bit, 'UserData') + 1;
	      t_tras(2) = get(h_sym_bit(length(u)*2), 'UserData') + K;
	    end;
	    set(figureHandle, 'UserData', [current_point, h_sym_bit, handleRecord]);
	    set_param(sl_name, 'userdata', figureHandle);
	  else
	    delete(get(figureHandle,'child'));
	    old_figure = 1;
	    new_figure = 1;
	  end;
	end;
      end;
      i = i + 1;
    end;
     
    % Input/Output
    if numLine < 0
      numLine = 0;
    end;
    totalLine = 1 + numLine + bitLength + 1;
    
    set(figureHandle, ...
	'Visible', 'on');    
    handleAxes = axes(...
	'position', [0 0 1 1],...
	'visible',  'off',...
	'Parent',   figureHandle...
	);
  
    tmp_x = [];
    tmp_y = [];
    for ii = 1 : totalLine
      tmp_x = [tmp_x            0             1   NaN];
      tmp_y = [tmp_y  ii/totalLine  ii/totalLine  NaN];
    end;
    
    linePlot = plot(...
	tmp_x, tmp_y, 'k-', ...
	'Parent', handleAxes,...
	'linewidth',1);
    set(handleAxes,...
	'Xtick',    [],...
	'Ytick',    []... 
	);
  
    for i = 1 : inputLength
      % title string
      if i == 1
	titleString = 'Sender';
      else
	% only display 8 digits of the amount of receivers      
	titleString = ['Receiver',num2str(i-1, 8)];
	if inputLength == 2
	  titleString = 'Receiver';
	end
	if numLine > 0
	  set(linePlot, ...
	      'XData', [get(linePlot, 'XData')    ...
		  [1 1]*(i-1)/inputLength           NaN],...
	      'YData', [get(linePlot, 'YData') ...
		  (totalLine-numLine-1)/totalLine 1 NaN]...
	      );
	end;
      end;
      
      % set up the title of both of sender and receivers    
      p_beg1 = (i - 1) / inputLength + .001;
      p_wid = 1 / inputLength - .002;
      uicontrol(...
	  figureHandle, ...
	  'Style',   'text', ...
	  'Horiz',   'center',...
	  'Unit',    'normalized',...
	  'position',[p_beg1, ...
	      (totalLine - 1)/totalLine+.001, p_wid, 1/totalLine-.002], ...
	  'String',  titleString);
      
      %space for list of transferred number.
      p_beg = (2*i - 1) / 2 / inputLength;
      if numLine > 0
	for ii = 1 : numLine
	  index = (ii-1) * inputLength;	
	  handleRecord(index + i) = text(...
	      p_beg, (2*totalLine - 2*ii - 1)/2/totalLine, ' ',...
	      'Parent', handleAxes);
	  set(...
	      handleRecord(index + i), ...
	      'FontSize', 9,...
	      'Color',[0 0 0],...
	      'HorizontalA','Center',...
	      'VerticalA',  'Middle');
	end;
	set(handleRecord(1), 'UserData',1);
      elseif numLine == 0
	handleRecord = [];
      end;
      
      % transfer error rate 
      if K > 1
	len_rate = 2;
      else
	len_rate = 1;
      end;
      kk = 0;
      for ii = 1 : len_rate
	if i == 1
	  if ii == 1
	    titleString = 'Symbol Transferred';
	    trsf = 1;
	    indx = 1;
	  else
	    titleString = 'Bit Transferred';
	    trsf = K;
	    indx = inputLength * 2;
	  end;
	  
	  % Symbol/bit transferred title
	  uicontrol(...
	      figureHandle, ...
	      'Style', 'text', ...
	      'Units', 'normalized',...
	      'Position',[0, ((len_rate - ii) * 3 + 2 + 1)/totalLine+.001,...
		  .499, 1/totalLine-.002],...
	      'String',titleString, ...
	      'BackgroundColor','yellow');
	  set(...
	      linePlot, ...
	      'XData', [get(linePlot, 'XData') .5 .5 NaN],...
	      'YData', [get(linePlot, 'YData'),...
		  ((len_rate - ii)* 3 + 2 + 1)/totalLine,...
		  ((len_rate - ii)* 3 + 3 + 1)/totalLine,...
		  NaN]...
	      );
	  
	  % Symbol/bit transferred data
	  h_sym_bit(indx) = text(...
	      .75, ...
	      ((len_rate-ii)*3*2 + 5 + 2)/2/totalLine,...
	      num2str(trsf, 8),...
	      'Parent', handleAxes);
	  set(h_sym_bit(indx),...
	      'FontSize', 9,...
	      'UserData', 0,...
	      'Color',[0 0 0],...
	      'HorizontalA','Center',...

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
高清不卡一二三区| 麻豆久久久久久| 在线一区二区三区四区| 《视频一区视频二区| 一本色道综合亚洲| 亚洲一区二区不卡免费| 宅男在线国产精品| 看电视剧不卡顿的网站| 精品国产乱码久久久久久蜜臀 | 91亚洲国产成人精品一区二区三| 国产精品久久久久久久久免费樱桃| 成人黄色在线网站| 一区二区三区四区激情| 欧美日韩久久久久久| 久久国产视频网| 国产日产欧美一区二区视频| 91视频com| 日韩福利视频网| 久久久精品黄色| 色天使色偷偷av一区二区| 欧美男男青年gay1069videost| 日韩专区欧美专区| 久久人人97超碰com| av在线播放不卡| 偷窥国产亚洲免费视频| 久久在线免费观看| 欧美在线一二三四区| 国模无码大尺度一区二区三区| 中文字幕av资源一区| 欧美熟乱第一页| 国产乱人伦偷精品视频不卡 | 国产高清亚洲一区| 亚洲一区在线观看网站| 精品成人在线观看| 在线免费观看视频一区| 国产综合色在线| 亚洲一区二区三区三| 国产亚洲污的网站| 911国产精品| 99re这里只有精品6| 精一区二区三区| 亚洲综合视频网| 中文字幕欧美日韩一区| 欧美一区二区三区四区视频| av网站一区二区三区| 精品一区二区免费| 亚洲一区二区免费视频| 国产精品高潮呻吟| 日韩精品一区二区三区三区免费| 91麻豆精品在线观看| 国产激情一区二区三区| 久久av资源网| 午夜精品aaa| 亚洲精品乱码久久久久久黑人| 26uuu久久天堂性欧美| 欧美色电影在线| 色综合久久综合网97色综合| 国产69精品久久久久777| 极品少妇xxxx偷拍精品少妇| 婷婷中文字幕综合| 亚洲国产日韩一级| 亚洲男人天堂av网| 国产精品国产自产拍在线| 久久婷婷综合激情| 精品成人免费观看| 欧美大白屁股肥臀xxxxxx| 欧美精三区欧美精三区| 欧美影片第一页| 在线一区二区三区四区五区| 91蜜桃视频在线| 波多野结衣中文字幕一区二区三区 | 中文字幕亚洲电影| 国产欧美一区二区三区沐欲| 精品乱人伦一区二区三区| 欧美一区二区在线看| 欧美日韩国产首页在线观看| 在线精品观看国产| 欧美在线色视频| 欧美色综合天天久久综合精品| 色女孩综合影院| 欧美专区亚洲专区| 欧美日韩亚洲不卡| 日韩亚洲欧美在线| 精品国产一区二区三区不卡| 精品久久久久久久人人人人传媒| 日韩欧美国产小视频| 精品福利在线导航| 国产无遮挡一区二区三区毛片日本 | 久久99精品国产麻豆婷婷| 麻豆精品视频在线观看免费| 九色综合狠狠综合久久| 国产一区二区不卡老阿姨| 国产91精品一区二区麻豆亚洲| 国产福利一区二区| 91亚洲永久精品| 欧美性大战久久久久久久蜜臀| 欧美日韩国产精品自在自线| 日韩一级二级三级| 中文在线免费一区三区高中清不卡| 国产精品丝袜久久久久久app| 亚洲色图一区二区| 亚洲大片在线观看| 国产综合一区二区| 91麻豆国产福利精品| 欧美日韩在线不卡| 久久亚洲春色中文字幕久久久| 亚洲欧美综合另类在线卡通| 亚洲二区在线视频| 久久国产成人午夜av影院| 成人免费观看视频| 欧美日韩精品一区二区三区蜜桃| 精品国产91乱码一区二区三区| 国产精品理伦片| 婷婷亚洲久悠悠色悠在线播放| 国产真实乱子伦精品视频| 色综合色综合色综合色综合色综合| 777欧美精品| 中文字幕精品一区二区精品绿巨人| 亚洲综合色丁香婷婷六月图片| 久久精品国产999大香线蕉| av在线不卡免费看| 欧美一级生活片| 亚洲天堂福利av| 久久爱另类一区二区小说| 色综合久久综合网| 久久天堂av综合合色蜜桃网| 亚洲卡通动漫在线| 国产精品自在欧美一区| 欧美日韩一级二级三级| 国产精品视频第一区| 日本aⅴ免费视频一区二区三区| 成人黄色软件下载| 欧美成人三级电影在线| 一区二区三区鲁丝不卡| 国产真实乱偷精品视频免| 国产精品私人自拍| 日韩黄色小视频| 色综合天天综合网天天狠天天| 中文字幕一区二区三| 麻豆精品一二三| 欧美日韩亚洲丝袜制服| 亚洲欧美日韩综合aⅴ视频| 国产一本一道久久香蕉| 欧美亚洲另类激情小说| 亚洲色欲色欲www| 国产福利视频一区二区三区| 日韩精品一区二区三区老鸭窝| 一区二区三区中文字幕在线观看| 国产成人精品免费| 精品噜噜噜噜久久久久久久久试看| 亚洲超丰满肉感bbw| 日本道精品一区二区三区| 国产精品久久久久久久久晋中 | 一区二区三区免费看视频| 国产精品18久久久久| 日韩三级视频中文字幕| 亚洲第一二三四区| 欧美日韩在线一区二区| 一区二区三区四区亚洲| 色综合天天综合色综合av| 中文字幕一区二| 不卡一卡二卡三乱码免费网站| 欧美国产激情一区二区三区蜜月| 久久精品国产亚洲a| 日韩女优av电影在线观看| 秋霞国产午夜精品免费视频| 欧美美女一区二区在线观看| 午夜久久福利影院| 51精品视频一区二区三区| 午夜欧美一区二区三区在线播放| 在线观看免费成人| 亚洲成av人综合在线观看| 在线观看www91| 首页综合国产亚洲丝袜| 欧美一级二级三级蜜桃| 日韩av不卡一区二区| 欧美电视剧在线看免费| 国产一区二区精品久久99| 久久久久久久综合狠狠综合| 国产美女精品人人做人人爽| 国产人成一区二区三区影院| 风流少妇一区二区| 亚洲视频在线一区二区| 欧美无砖专区一中文字| 日本三级韩国三级欧美三级| 精品美女一区二区| 成人a免费在线看| 一区二区三国产精华液| 宅男噜噜噜66一区二区66| 激情文学综合插| 国产精品久久久久一区二区三区| 色婷婷综合久久久久中文| 午夜久久久久久久久 | 久久久久久久电影| 成人一级视频在线观看| 亚洲一区二区三区中文字幕 | 毛片一区二区三区| 国产欧美日韩视频一区二区| 色综合久久88色综合天天| 日本系列欧美系列|