資源簡介
此算法為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
- 上一篇:小游戲貪吃蛇的matlab編程
- 下一篇:CDMA mapinfo鄰區插件
評論
共有 條評論