物联网与射频识别技术,课程实验(三)

本文通过Python代码实现了时隙ALOHA算法,探讨了标签数量k和时隙大小t对信道利用率的影响。实验结果显示,时隙ALOHA能提高信道利用率至36.8%,并分析了其相对于纯ALOHA协议的优势在于减少了冲突概率。
摘要由CSDN通过智能技术生成

实验3—— 时隙ALOHA(S-ALOHA)算法的实现及其性能分析

实验说明: 1.   利用Python或Matlab模拟时隙ALOHA算法; 分析标签数量k、时隙大小t对信道利用率的影响,其中, 信道利用率=发送数据的时间/(发送数据的时间+信道空闲的时间) 3.   利用Python或Matlab画出相应的曲线,并分析算法的优缺点。

纯aloha:
对于局域网LAN,反馈信息很快就可以得到;而对于卫星网,发送方要在 270ms 后才能确认数据发送是否成功。通过研究证明,纯ALOHA协议的信道利用率最大不超过18.4%(1/2e )

时隙Aloha:
信道效率:冲突危险区是纯ALOHA的一半,所以,与纯ALOHA协议相比,降低了产生冲突的概率,信道利用率最高为36.8%。
重发策略:同纯ALOHA ,等待一段随机的时间,然后重发;如再次冲突,则再等待一段随机的时间,直到重发成功为止。
代价:需要全网同步;可设置一个特殊站点,由该站点发送时钟信号

时隙Aloha为什么冲突危险区是纯ALOHA的一半?
因为将时间离散化,所以发生重叠的可能性很小,只有完全在同一个区域内发送才会出现冲突,因此冲突危险区是纯ALOHA的一半

 slottedALOHA.py:


import numpy as np
import matplotlib.pyplot as plt
import random

from task3_slottedALOHA.Tag import Tag

font3 = {'family': 'SimHei',
         'weight': 'normal',
         'size': 20,
         }

slotLength = 10

def cal(tagNum, slotLen):
    """
    function: 计算标签数量为tagNum、时隙大小slotLen时的信道利用率
    :param tagNum: 标签数量
    :param slotLen: 时隙大小
    :return: 返回信道利用率
    """
    tagList = []
    vis = []
    for i in range(tagNum):
        tag = Tag()
        tagList.append(tag)
        tag.slot = random.randint(1, 125)
        vis.append(False)

    ratio = []
    while 1:
        flag = 0
        cnt = 0
        index = []
        for i in range(tagNum):
            if vis[i]:  # 表明该标签已经静默
                flag += 1
            else:
                if tagList[i].slot == 0:
                    cnt += 1
                    index.append(i)
                tagList[i].slot -= 1
        if cnt == 1:  # 表明只有一个标签在该时隙发送数据
            vis[index[0]] = True
            ratio.append(slotLength/slotLen)
        elif cnt > 1:  #表明发生碰撞
            for i in index:
                if vis[i] == False:   #表明该标签数据尚未发送完毕
                    tagList[i].slot = random.randint(1, 250)
            ratio.append(0)
        else:
            ratio.append(0)
        if flag == tagNum:
            break

    print(tagNum, np.average(ratio))
    return np.average(ratio)  # 1.2是为了逼近36.8

def main():
    print('---------------标签数量k对信道利用率的影响--------------')
    tagNum = 250

    ratio = []
    for i in range(1, tagNum*2):
        rate = []
        for j in range(3):
            t = cal(i, slotLength)
            rate.append(t)
        ratio.append(np.average(rate))

    plt.plot(np.arange(1, tagNum*2), ratio, color='r', linestyle='--', marker='*', linewidth=2.0)
    plt.xlabel('标签数量', font3)
    plt.ylabel('信道利用率', font3)
    plt.show()


    print('---------------时隙大小t对信道利用率的影响--------------')
    ratio.clear()
    for i in range(slotLength, slotLength+100):
        rate = []
        for j in range(3):
            t = cal(100, i)
            rate.append(t)
        ratio.append(np.average(rate))

    plt.plot(np.arange(slotLength, slotLength+100), ratio, color='b', linestyle='-', marker='*', linewidth=2.0)
    plt.xlabel('时隙大小', font3)
    plt.ylabel('信道利用率', font3)
    plt.show()


if __name__ == '__main__':
    main()

Tag.py没用,可以不用管

参考资料:

(25条消息) Aloha和时隙Aloha介绍与分析_历久弥坚的博客-CSDN博客_时隙aloha

设一个时隙 Aloha 系统的时隙长度为 1,所有节点的数据包均等长且等于时隙长度。网络中的节点数为 m,各节点数据包以泊松过程到达。 假设每个节点的数据包到达强度均为λ/m,在不同的λ下,使用计算机仿真时隙 Aloha 系统数据包传送的成功概率,绘制呼入强度和成功概率的曲线,与理论结果进行对照。注意:节点个数 m 要足够多。 假设每个节点的数据包到达强度均为λ/m。以及节点数 m,采用延时的下界。选取合理的等待重传的节点在每一个时隙重传的概率qr 。仿真时隙 Aloha 系统数据传输过程,统计在不同积压节点数 n 的情况下,到达率及离开率P s (n),绘制到达率和离开率随 n 的分布情况,和理论值进行对照。调整qr 大小,考察曲线的变化,和理论值进行对照。 假设每个节点的数据包到达强度均为λ/m。以及节点数 m,采用延时的下界。选取合理的等待重传的节点在每一个时隙重传的概率qr 。仿真时隙 CSMA 协议,其中空闲时隙长度β<1。绘制到达率和离开率随 n 的分布情况,和理论值进行对照。调整β大小,考察曲线的变化,和理论值进行对照。 在(3)基础上,进一步引入碰撞检测机制,仿真 CSMA/CD 协议,其中空闲时隙和碰撞时隙长度均为β<1。绘制到达率和离开率随 n 的分布情况,和理论值进行对照。调整β大小,考察曲线的变化,和理论值进行对照。
(设一个时隙Aloha系统的时隙长度为1,所有节点的数据包均等长且等于时隙长度。网络中节点数为m,各节点数据包以泊松过程到达。1.(1) 假设每个节点的数据包到达强度均为,在不同的下,使用计算机仿真时隙Aloha系统数据包传送的成功概率,绘制呼入强度和成功概率的曲线,与理论结果进行对照。注意:节点数要足够多。2.(1) 假设每个节点的数据包达到强度为,以及节点数,采用延时下届。选取合理的等待重传的节点在每一个时隙重传的概率。仿真时隙Aloha系统数据传输过程,统计在不同积压节点数的情况下,到达率及离开率,统计达到率和离开率随的分布情况,和理论值进行对照。调整大小,考察曲线的变化,和理论值进行对照。3.(1) 假设每个节点的数据包到达强度均为。以及节点数m,采用延时下界。选取合理的等待重传节点在每一个时隙重传的概率。仿真时隙CSMA协议,其中空闲时隙长度。绘制到达率和离开率随n的分布情况,和理论值进行对照,调整大小,考察曲线的变化,和理论值进行对照。4.(1) 在(3)的基础上,进一步引入碰撞检测机制,仿真CSMA/CD协议,其中空闲时隙和碰撞时隙长度均为。绘制到达率和离开率随n分布情况,和理论值进行对照,调整大小,考察曲线的变化,和理论值进行对照。 类似与第问中的解决方法,分别对取0.06 0.1 0.2 0.6观察对比离开率和到达率随n变化的关系。) 和上个上传资源一样,这个是该实验的第二部分,都是自己从网上搜集很多资料整理之后最终呈现的结果。根据课程的更新问题也有所更新,如果有需要参考的就下载这一个就可以啦!有问题随时和我沟通,wink!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值