• 大小: 1KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-19
  • 语言: Matlab
  • 标签:

资源简介

此算法为RFID帧时隙的Aloha算法防碰撞仿真,用于MATLAB仿真实验

资源截图

代码片段和文件信息

function y=FSAPB(nLpMPth)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%分组,并记录每组的标签个数到nz
nz=zeros(1M);
Lp_temp=1;
y=0;
   for i=1:n
       tag(i)=floor(rand*M);
       for j=1:M
           if(tag(i)==(j-1))
               nz(j)=nz(j)+1;
           end
       end
   end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%确定第一组标签所在Lp的时隙%%%%%%%%
   for i=1:nz(1)
       tag1(i)=floor(rand*Lp);
   end
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Lp开始%%%%%%%%%%%%%%%%%%%%%%%%%%
     ydxb=1;%已读标签下标
     coll_num=0;
     read_num=0;
     
      while(Lp_temp<=Lp)
          numOfZero=0;
          j=1;
          wz=0;
          tag_hr=zeros(1nz(1));
          for i=1:nz(1)
              if(tag1(i)==0)
                  numOfZero=numOfZero+1;
                  wz(j)=i;
                  j=j+1;
              end
          end
          if(numOfZero==0)
              for i=1:nz(1)
                  tag1(i)=tag1(i)-1;
              end
          
          elseif (numOfZero==1)
              read_num=read_num+1;
               tag_hr(ydxb)=wz(1);
               ydxb=ydxb+1;
              for i=1:nz(1)
                  if(i==wz(1))
                      tag1(i)=-1000;
                  end
                  tag1(i)=tag1(i)-1;
              end
          elseif(numOfZero>1)
              coll_num=coll_num+1;
              for i=1:nz(1)
                  if(shuyu(iwz))tag1(i)=Lp-Lp_temp+2*(coll_num-1)+floor(rand*2);
                  else tag1(i)=tag1(i)-1;
                  end
              end
          end
         Lp_temp=Lp_temp+1;
      end
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%LP阶段结束%%%%%%%%%%%%%%%
      y=Lp;

      %%%%%%%%%%%%%%判断是要用Ladd还是L1%%%%%%%%%%
      if((coll_num/Lp)          while(read_num               numOfZero=0;
               j=1;
               wz=0;
               for i=1:nz(1)
                if(tag1(i)==0)
                  numOfZero=numOfZero+1;
                  wz(j)=i;
                  j=j+1;
                end
              end
              if(numOfZero==0)
                 for i=1:nz(1)
                  tag1(i)=tag1(i)-1;
                 end
                 
              elseif(numOfZero==1)
               
                 read_num=read_num+1;
                 tag_hr(ydxb)=wz(1);
                 ydxb=ydxb+1;
                 for i=1:nz(1)
                    if(i==wz(1))
                        tag1(i)=-1000;
                    end
                    tag1(i)=tag1(i)-1;
                end
                
              elseif(numOfZero>1)
              
                 for i=1:nz(1)
                    if(shuyu(iwz))tag1(i)=floor(rand*2);
                    else tag1(i)=tag1(i)+1;
                    end
                 end
              
              end
              y=y+1;
          end
          
          %%%%%%%%%%%%%%%%%L1
      elseif((coll_num/Lp)>=Pth)
          L1=nz(1)-read_num;
          for i=1:nz(1)
              if(~shu

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5909  2009-09-04 16:42  FSAPB.m

----------- ---------  ---------- -----  ----

                 5909                    1


评论

共有 条评论

相关资源