91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-02
  • 語言: Matlab
  • 標(biāo)簽: MATLAB??ARQ??重傳??

資源簡介

MATLAB實(shí)現(xiàn)ARQ重傳,實(shí)現(xiàn)時(shí)延的加入及重傳次數(shù)的自定義改動(dòng),注釋詳盡,對(duì)初學(xué)者有一定的幫助。

資源截圖

代碼片段和文件信息

%選擇重傳ARQ
clear
frameNum=100;%幀數(shù)100
frameLength=10;%幀長
frameOrder=0;%幀號(hào)
frameOrderBuff=0;%幀號(hào)緩存
ACK=[0?0];%ACK的組成為第1位幀號(hào),第2位傳輸有效位,第2位等于1時(shí)表示該幀發(fā)送正確,等于0是表示發(fā)送錯(cuò)誤需要重傳
ACKQueue=zeros(53);%每行代表一組ACK數(shù)據(jù),第1位是數(shù)據(jù)有效位,第23位為ACK數(shù)據(jù);列數(shù)為隊(duì)列長度
MaxARQNum=3;%最大重傳次數(shù)
ARQNum=zeros(frameNum2);ARQNum(:1)=1:frameNum;%每一幀實(shí)際重傳次數(shù)
frameError=0;%誤幀數(shù)

for?i=1:3%壓入3個(gè)空幀表示2個(gè)幀傳輸時(shí)延
????ACKQueue=QueueIn(ACKQueue[01]);
end
frameQueue=zeros(202+frameLength);%每行代表一組幀數(shù)據(jù)第1位是數(shù)據(jù)有效位第2位為幀號(hào)剩下是幀數(shù)據(jù);列數(shù)為隊(duì)列長度


while(1)
?%%發(fā)送端
?????[ACKQueueACK]=QueueOut(ACKQueue);
?????frameBuff=QueueData(frameQueue1);%幀號(hào)+幀
?????if(ACK(1)==frameBuff(1))
?????????[frameQueueframeBuff]=QueueOut(frameQueue);%讀取緩存隊(duì)列頭部數(shù)據(jù),并將頭部數(shù)據(jù)退出隊(duì)列
?????end
?????if(ACK(2)==1?&&?frameOrderBuffameNum)?%該幀傳輸正確,發(fā)送下一幀
?????????frameOrder=frameOrderBuff+1;
?????????frameOrderBuff=frameOrder;
?????????%TrSeq=[1?0?1?0?1?1?1?0?0?1];??
?????????TrSeq=round(rand(12000));
?????????frameQueue=QueueIn(frameQueue[frameOrder?TrSeq]);%將新生成的幀數(shù)據(jù)加入緩存隊(duì)列
?????elseif(ACK(2)==0)%該幀傳輸錯(cuò)誤,重傳該幀
?????????frameOrder=frameBuff(1);
?????????TrSeq=frameBuff(2:end);
?????????frameQueue=QueueIn(frameQueueframeBuff);%將該幀重新加入緩存隊(duì)列
?????elseif(ACK(2)==1?&&?frameOrderBuff==frameNum)
?????????ACKDeep=QueueDeep(ACKQueue);
?????????if?ACKDeep==sum(ACKQueue(:3))?%ACK隊(duì)列中的所指示的幀全部發(fā)送正確
?????????????break;?%退出循環(huán)
?????????else
?????????????while(1)
?????????????????[ACKQueueACK]=QueueOut(ACKQueue);
?????????????????[frameQueueframeBuff]=QueueOut(frameQueue);
?????????????????if?ACK(2)==0??%尋找ACK隊(duì)列中傳錯(cuò)的那一幀的信息
?????????????????????break;
?????????????????end
?????????????end
?????????????TrSeq=frameBuff(2:end);
?????????????frameQueue=QueueIn(frameQueueframeBuff);%將該幀重新加入緩存隊(duì)列
?????????end?????????
?????end
%%信道簡易模型
????ReSeq=TrSeq;
????ReSeq(1)=randi([0?1]11);
%%接收端
????if(isequal(ReSeqTrSeq))
????????ACK=[frameOrder?1];
????else
????????if(ARQNum(frameOrder2)==MaxARQNum)%重傳數(shù)達(dá)到最大次數(shù)則不再重傳
????????????frameError=frameError+1;%記為誤幀數(shù)加1
????????????ACK=[frameOrder?1];
????????else
????????????ACK=[frameOrder?0];
????????????ARQNum(frameOrder2)=ARQNum(frameOrder2)+1;
????????end???????????????????
????end
%%將ACK重傳至發(fā)送端
????ACKQueue=QueueIn(ACKQueueACK);
end






?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件???????2560??2018-03-10?21:46??ARQ壓入時(shí)延\ARQ.m

?????文件????????281??2014-09-09?16:45??ARQ壓入時(shí)延\QueueClear.m

?????文件????????296??2014-09-09?11:21??ARQ壓入時(shí)延\QueueData.m

?????文件????????343??2014-09-08?23:45??ARQ壓入時(shí)延\QueueDeep.m

?????文件????????516??2014-09-09?00:02??ARQ壓入時(shí)延\QueueIn.m

?????文件????????497??2014-09-09?00:10??ARQ壓入時(shí)延\QueueOut.m

?????文件???????1954??2018-03-09?13:43??ARQ壓入時(shí)延\transmit.m

?????目錄??????????0??2018-03-10?20:27??ARQ壓入時(shí)延

-----------?---------??----------?-----??----

?????????????????6447????????????????????8


評(píng)論

共有 條評(píng)論