資源簡介
該代碼可以滿足基本的CDMA仿真,讀者可以根據具體問題進行修改代碼
代碼片段和文件信息
s=zeros(1100);
for?M?=1:1:100%M工作站數目
????H=0;
????for?N=1:100
ChannelBusy?=?0;???%信道忙閑標志
Start?=?0;?%有無數據開始發送標志
Collision?=?0;%有無沖突標志
DeferenceTime?=?0;?%發送期
Throughput?=?0;%吞吐量
ArrivalTime?=?zeros(1M?);??%到達時間
PacketLength?=?zeros(1M)?;?%幀長
HasPacket?=?zeros(1M);%有無緩存標志
CW?=?zeros(1M);%爭用窗口
BackoffTimer?=?zeros(1M);%回退時間
PacketBuff?=?zeros(M1501);??%緩存器
CollisionStations?=?zeros(1M+1);????%沖突站記錄
PhyRate?=?2*10^6?;???????????%物理層數據率
SlotTime?=?20*10^(-6);???????%時隙間隔
TotalTime?=?2000;????%觀測總時隙個數
SIFS?=?0.5;????????%SIFS相當于0.5個時隙
DIFS?=?3;????????%DIFS相當于2.5個時隙
ACK?=?0.5;?%ACK?轉化成時隙個數
AverageArrivalTime?=?11;????%平均到達時間
AveragePacketLength?=?5;????%平均幀長
for?i?=?1:M
????ArrivalTime(i)?=?ProPossion(AverageArrivalTime);?%初始化到達時間??
????PacketLength(i)?=ProPossion(AveragePacketLength);%初始化分組長度
????CW(i)?=?32;?%初始化競爭窗口
????BackoffTimer(i)?=?255;?%初始化退避時間?255?
end
for?t?=?1:TotalTime
????for?i?=?1:M
????????if?t?==?ArrivalTime(i)
????????????%目前不能發送,push分組進PackeBuff,修改退避計數器
????????????????PacketBuff?=?Push(PacketBuffiPacketLength(i));
????????????????HasPacket(i)?=?1;
????????????????if?BackoffTimer(i)?==?255
????????????????????BackoffTimer(i)?=?ReSet(CW(i));%退避計數器達到最大255時,重置退避計數器
????????????????end
??????????%??end
????????????%更新到達時間和幀長
????????????ArrivalTime(i)?=?ProPossion(AverageArrivalTime)?+?PacketLength(i)?+?t;
????????????PacketLength(i)?=?ProPossion(AveragePacketLength);
????????end
????end
????for?i?=?1:M
????????if?M~=1
????????if?HasPacket(i)?==?1?&&?ChannelBusy?==?0?%PackeBuff中有數據包發送并且信道空閑
????????????if?BackoffTimer(i)?==?0?%退避時間=0?->?發送
????????????????CollisionStations?=?Add(CollisionStationsi);%加入沖突站點序列中
????????????????Start?=?1;
????????????else
????????????????BackoffTimer(i)?=?BackoffTimer(i
- 上一篇:三相PWM整流matlab仿真
- 下一篇:Powell法最優化設計matlab程序
評論
共有 條評論