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

📄 gljjit.m

📁 GLJ调度算法的实现
💻 M
字号:
function jitter=gljjit(schedul,schedullen,T)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                  输入调度表schedul和调度表长度schedullen                         %
%                        本函数针对BV分解,计算抖动                                 %
%                源流量矩阵constbackT的行列元素之和可以大于10                       %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fprintf('Start! Please waiting ...\n');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%						Parameters for system configuration						%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
constbackT=T;
N=4;
jitter=0;
individualjitter=0;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% 		 						Start  										%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:N
      for j=1:N          
          if constbackT(i,j)>1
              mininterval=schedullen;
			  maxinterval=1;
			  starttag=0;
			  endlen=schedullen;
              m=1;
              tag=0;
              for m=1:schedullen
                  if tag==0&schedul(i,m)~=j
                      endlen=endlen+1;
                  elseif tag==0&schedul(i,m)==j
                      tag==1;
                      endlen=endlen+1;
                      break;
                  end
              end 
              for k=1:endlen
                  if k>schedullen                     
                  t=mod(k,schedullen+1)+1;
                  else
                      t=k;
                  end
                  if starttag==0&&schedul(i,t)==j 
					  starttag=1;
					  tempinterval=0;
				  elseif starttag==1&&schedul(i,t)==j 
                      tempinterval=tempinterval+1;
					  if tempinterval<mininterval 
                          mininterval=tempinterval;
                      end
                      if tempinterval>maxinterval 
						  maxinterval=tempinterval;
                      end 
                      tempinterval=0; 
                  elseif starttag==1&schedul(i,t)~=j 
                      tempinterval=tempinterval+1; 
                  end %if  
              end %for
              individualjitter=maxinterval-mininterval; 
          else
              individualjitter=0;
          end %if 
          jitter=jitter+individualjitter;
      end
end
  jitsize=0;
  for i=1:N
      for j=1:N
          if T(i,j)>1
              jitsize=jitsize+1;
          end
      end
  end              
  jitter=jitter/jitsize; 
  fprintf('此调度表的抖动等于');
  jitter

⌨️ 快捷键说明

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