【通信】基于Matlab实现动态帧时隙ALOHA(Dynamic Framed Slotted ALOHA)算法

简介: 【通信】基于Matlab实现动态帧时隙ALOHA(Dynamic Framed Slotted ALOHA)算法

 ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测雷达通信 无线传感器

信号处理图像处理路径规划元胞自动机无人机

ALOHA算法

1.1纯ALOHA算法原理

纯ALOHA算法是是最简单最基本的一种防碰撞算法。算法基于时分多路法(TDMA)思想,是一种概率算法。当标签进入阅读器的作用区域时,就主动向阅读器发送其自身的信息,不同的标签发送信息的时间也是随机的,当阅读器准确的识别出唯一的标签就开始与该标签通信。

1.2纯ALOHA基本思想

标签随机发送自身的信息给阅读器,由于这种随机性,发送的数据帧很有可能发生冲突,标签得不到确认响应,也就是可以鉴别出它发送的数据帧被破坏,会重新选择一个时隙发送,等待时间随机。直至所有标签被识别。也可能存在标签饿死的情况。适合用于待识别标签数目不多的情况。

1.3纯ALOHA识别过程

对于有接受功能的标签,标签发送信息的过程中有其他标签也在同时发送数据,信号就会产生重叠,导致部分冲突或者完全冲突。一旦产生冲突,阅读器就发送命令让标签停止发送信息,然后随机等待一段时间再发送信息,不同的标签可能选择不同的时延,从而避免了冲突。如果没有冲突,阅读器正确读取标签信息后,标签进入休眠状态。对于无接收功能的标签,由于标签收不到阅读器发送的信息,在检测期间一直重复发送自己的信息,直到识别结束。

为了避免像纯ALOHA 那样的不完全碰撞,为了提高系统的吞吐量,可将时间划分为一段一段等长的时隙,记为T0。规定数据帧只能在时隙的开始才能发送,这就是时隙ALOHA(Slotted  ALOHA)算法。

每个时隙存在以下三种情况:

1)空闲时隙

2)成功时隙

3)碰撞时隙

image.gif编辑

⛄ 部分代码

% 动态帧时隙 ALOHA(Dynamic Framed-Slotted ALOHA,DFSA)算法的碰撞处理函数

function [ S_succ , S_idle , S_coll ] = DFSA_anti ( TagsNum , FrameLength )

S_succ = 0;  % 成功时隙数

S_idle = 0;  % 空闲时隙数

S_coll = 0;  % 碰撞时隙数

RandSlot = randi( [ 1 , FrameLength ] , 1 , TagsNum );   %每个标签在1-Framelenth中随机选一个时隙进行发送

SlotCounter = ones( 1, TagsNum );

% 处于待识别状态的标签随机的从帧长度 1-N 内选择一个时隙来传送数据,

% 这个数值是通过自身携带的伪随机数发生器随机产生的,并且同时将自身的时隙计数器置 1

SlotCheck = zeros( 1, FrameLength );  % 检测每帧中所有时隙的情况(成功/空闲/碰撞)

for i = 1:FrameLength  % 开始帧内时隙的查询

   Remove = [ ];  % 存储发生碰撞/正确识别的标签序号

   for n = 1:TagsNum

       if RandSlot(n) == SlotCounter(n)  % 开始帧内时隙的查询,每个标签将随机选择的时隙号与自身时隙计数器的号码进行比对

           SlotCheck(i) = SlotCheck(i) + 1;  % 当两者相等时标签响应阅读器,并在此时隙内开始传送数据信息

           Remove = [ Remove , n ];  % 将符合判断条件的标签序号存储到行向量 Remove 中

       end  % 当两者不等时,标签不再传送数据信息而是保留此时隙号,并等待阅读器下一次的时隙查询命令

   end

   

   % 在此阶段中,时隙内存在以下三种情况:

   

   if SlotCheck(i) == 0  % 阅读器未检测到标签的数据信息,也就是无标签在此时隙内传输,此时阅读器结束此时隙的查询

       SlotCounter = SlotCounter +1;  % 并且所有标签将自身时隙计数器进行加 1 操作

       S_idle = S_idle + 1;  % 该时隙为空闲时隙

       

   elseif SlotCheck(i) == 1  % 阅读器检测到数据信息并正确识别,也就是此时时隙内只有一个标签在传送消息

       RandSlot(Remove(1)) = [ ];  % 阅读器接收到标签信息后会向标签发送一休眠指令,使标签进入休眠状态,

       SlotCounter(Remove(1)) = [ ];  % 不再响应阅读器的任何指令。我们将其从 RandSlot 和 SlotCounter 矩阵中删除即可

       SlotCounter = SlotCounter +1;  % 其他还处于待识别状态的标签将自身时隙计数器进行加 1 操作,等待阅读器下一时隙查询命令

       TagsNum = TagsNum - 1;  % 更新本帧内待查询的标签数

       S_succ = S_succ + 1;  % 该时隙为成功时隙

       

   else  % 阅读器检测到数据信息但无法正确识别出来,也就是此时隙内有多个标签在传送信息

       for m = 1:length(Remove)  % 阅读器命令该时隙内的标签等待下一帧查询周期再发送数据

           RandSlot( Remove(m)-(m-1) ) = [ ];

           SlotCounter( Remove(m)-(m-1) ) = [ ];

       end

       SlotCounter = SlotCounter +1;  % 同时其余标签将自身时隙计数器进行加 1 操作

       TagsNum = TagsNum - length(Remove);  % 更新本帧内待查询的标签数

       S_coll = S_coll + 1;  % 该时隙为碰撞时隙

   end

end  % 当查询的时隙数与初始规定的帧长度 N 相等时,阅读器发送结束本帧的查询,

end  % 并根据这一帧的 S_succ、S_idle 和 S_coll 来估计下一帧未被识别的标签数,以此调整下一帧的查询帧长度

⛄ 运行结果

image.gif编辑

image.gif编辑

image.gif编辑

⛄ 参考文献

[1]煤矿安全预警系统中RFID防碰撞算法的研究_赵跃

[2]基于动态帧时隙ALOHA的标签防碰撞算法研究_张晶

[3]基于ALOHA的RFID系统防碰撞算法的研究与设计_孟婕

❤️ 关注我领取海量matlab电子书和数学建模资料

❤️部分理论引用网络文献,若有侵权联系博主删除


相关文章
|
2月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
299 0
|
2月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
218 2
|
2月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
184 8
|
2月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
186 8
|
2月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
197 8
|
2月前
|
机器学习/深度学习 数据采集 负载均衡
结合多种启发式解码方法的混合多目标进化算法,用于解决带工人约束的混合流水车间调度问题(Matlab代码实现)
结合多种启发式解码方法的混合多目标进化算法,用于解决带工人约束的混合流水车间调度问题(Matlab代码实现)
172 0
|
2月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
165 0
|
2月前
|
存储 监控 并行计算
目标跟踪中常用点迹航迹数据关联算法的MATLAB实现
通过计算测量点与预测点之间的欧氏距离,选择最近邻点进行关联,适用于单目标跟踪场景。
|
2月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
146 0
|
2月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
121 0

热门文章

最新文章