资源简介
该代码可以满足基本的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程序
相关资源
- CDMA系统MATLAB仿真
- WCDMA matlab仿真实现
- cdma多用户检测算法的仿真
- ds-cdma系统的多用户检测matlab程序
- CDMA mapinfo邻区插件
- 对整个DS-CDMA系统进行仿真MATLAB
- DS_CDMA通信系统\\DS_CDMA 仿真源程序.d
-
MATLAB SIMUli
nk通信系统建模仿真讲解 - WCDMA系统中随机接入(PRACH)过程的仿
- 老外写的CDMA rake 接收机 MATLAB程序,还
- 基于MATLAB的CDMA通信系统仿真-基于MA
- 一种基于MATLAB的WCDMA信号仿真方法
- 基于MATLAB的CDMA通信系统仿真
- QAMPINP 全数字解调下16QAM信号的频偏估
- JDCHE_and_JDPP_for_TD_SCDMA TD-SCDMA系统联合
- WCDMA仿真程序
- CDMA扩频通信与RAKE接收机仿真程序
- DS-CDMA MATLAB仿真
-
cdma的程序与simuli
nk模型 - 3G-WCDMA和CDMA2000完整MATLAB仿真程序,需
- CDMA-MATLAB-code
评论
共有 条评论