【2023华为杯A题】WLAN网络信道接入机制建模(代码、思路.....)

2023-09-22 10:06:16

  💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 背景

1.1 分布式信道接入和二进制指数退避

1.2 基于Markov chain的DCF机制建模和系统性能分析

📚2 WLAN组网中的多BSS建模问题

🎉3 参考文献

🌈4 Matlab代码、Python代码、思路实现


💥1 背景

无线局域网(WLAN, wireless local area network)也即Wi-Fi广泛使用,提供低成本、高吞吐和便利的无线通信服务。基本服务集(BSS, basic service set)是WLAN的基本组成部分。处于某一特定覆盖区域内的站点(STA, station)与一个专职管理BSS的无线接入点(AP, access point)组成一个BSS,称STA关联到AP。常见的AP有无线路由器、WiFi热点等,手机、笔记本、物联设备等是STA。AP给STA发送数据叫作下行方向,反之是上行方向,本文将AP和STA统称为节点,每个节点的发送和接收不能同时发生。各节点共享信道,通过载波侦听多址接入/退避(CSMA/CA, carrier sense multi-access and collision avoidance)的机制避免冲突,称为分布式协调功能(DCF, distributed coordination function)。

1.1 分布式信道接入和二进制指数退避

DCF机制提供了一种分布式、基于竞争的信道接入功能。可将每个节点接入信道进行数据传输的过程分为3个阶段,信道可用评估(CCA,clear channel assessment)、随机回退、数据传输。

(1)CCA:当一个节点打算发送时,首先进行一个固定时长的载波侦听,这个固定时长被称为DCF帧间距(DIFS,DCF inter-frame space),43μs。如果DIFS时段内接收到的信号能量强度(RSSI,received signal strength indication)低于CCA门限(-82dBm),判断信道为空闲,否则,判断信道为繁忙。

(2)随机回退:信道空闲时,可能有多个节点准备好了数据,为避免碰撞,节点从[0, CW-1]的均匀分布选取一个随机数作为回退数,等待该回退数个时隙长度slotTime(9μs),随机回退时段时长为回退数乘以slotTime。CW被称为竞争窗口(contention window)。如果信道在随机回退时段保持空闲,则节点开始一次数据传输。在随机回退时段节点持续监听信道,如果期间信道变繁忙,则节点将回退暂停,直到信道在一个DIFS时长重新变为空闲,再继续前面没有回退完的时间。

(3)数据传输:回退到0的节点发送一个数据帧,接收节点成功接收到数据之后等待短帧帧间距(SIFS, Short inter-frame space)16μs后,回复ACK确认帧(32μs)。如果发送节点收到ACK,则数据发送成功。如果发送数据帧没有被接收节点成功接收,或者ACK发送失败,或者ACK没有被发送节点收到,则数据传输失败,发送节点需要在等待超时后重传数据。等待超时时间ACKTimeout为65μs。

随机回退采用二进制指数退避算法确定回退时间。CW的初始值为CWmin,每次数据传输失败后重传数据帧时,CW翻倍。如果CW达到了CWmax,则保持此值,直到被重置为止。每次数据传输成功时CW重置,开始下一个数据帧的回退。若传输连续失败,重传次数达到r后,数据帧被丢弃,CW重置传输下一个数据帧。可见,重传r次时,无论成功还是失败,CW都会重置。

1.2 基于Markov chain的DCF机制建模和系统性能分析

对于单BSS,N个STA给AP发送上行数据,Bianchi(1998)最早基于Markov chain建模。Bianchi模型假设理想信道,不因信道质量差而丢包。当2个及以上节点同时回退到0发送数据时,由于碰撞而丢包。那么信道可能处于三种状态:空闲、成功传输、碰撞,如图1.2所示。将每个状态看作一个虚拟时隙,那么信道在三种虚拟时隙中转化。将退避器所处的阶数和随机回退数用二维Markov chain表示,推导节点在每个虚拟时隙的发送概率τ和发生碰撞的条件概率p,从而评估BSS的吞吐[1]。

📚2 WLAN组网中的多BSS建模问题

节点发送数据后,电磁波信号在自由空间中传播,随着距离的增加,能量衰减越严重。周围节点收到该信号后,根据RSSI是否高于CCA门限,判断信道为忙或闲。一个节点发出信号的RSSI高于CCA门限的区域叫作通信区域,位于该通信区域内的节点与该发送节点互听。随着设备数量、应用类型、网络流量的飞速增长,AP部署日趋高密,如企业办公、工厂、教育场景。如图2.2(a)所示,将信道号为36、44、52、60、149、157的六个信道分配给区域内12个BSS,由于可用信道数有限,不同的BSS复用同一个信道。同频AP(使用相同信道号的AP)之间通信区域存在重叠时,存在相互干扰问题,叫作同频干扰。同频干扰是WLAN组网最显著的干扰问题,本题不考虑异频干扰的情况。家庭或宿舍等单BSS场景中,STA距离AP较近,RSSI较强,互听,假设理想信道,不会因信道质量差而丢包,只有在2个及以上STA同时发送数据时导致碰撞而丢包。而在教学区等场景,同频多BSS场景的情况更复杂。

完整题目下载:

链接:https://pan.baidu.com/s/1FIy-KH-Qrp12ACUdgFoDjw 
提取码:eft5 
--来自百度网盘超级会员V4的分享

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1] Bianchi Giuseppe. IEEE 802.11-Saturation Throughput Analysis [J]. IEEE Communications Letters, 1998, 2(12):318-320.

[2] P. Chatzimisios, V. Vitsas and A. C. Boucouvalas, "Throughput and delay analysis of IEEE 802.11 protocol," Proceedings 3rd IEEE International Workshop on System-on-Chip for Real-Time Applications, 2002, pp. 168-174, doi: 10.1109/IWNA.2002.1241355.

[3] Hung, Fu-Yi, and Ivan Marsic. "Performance analysis of the IEEE 802.11 DCF in the presence of the hidden stations." Computer Networks 54.15 (2010): 2674-2687.

[4] D. R. Chen and Y. J. Zhang, "Is Dynamic Backoff Effective for Multi-Rate WLANs?" in IEEE Communications Letters, vol. 11, no. 8, pp. 647-649, August 2007

🌈4 Matlab代码、Python代码、思路实现

回复:专业A题

更多推荐

Linux 软件包管理器-yum使用

文章目录前言一、yum使用1、什么是软件包2、yum源3、yumlist指令4、yuminstall指令5、yumremove指令二、git的使用1、gitee中仓库的创建2、仓库的克隆3、提交代码到远程仓库4、提交时可能遇到的问题5、.gitignore文件6、删除文件前言一、yum使用1、什么是软件包在Linux下

SLAM从入门到精通(消息传递)

【声明:版权所有,欢迎转载,请勿用于商业用途。联系信箱:feixiaoxing@163.com】前面我们只是编写了一个publisher节点,以及一个subscribe节点。有了这两个节点,它们之间就可以通信了。在实际生产中,我们除了简单的通信之外,要传递的数据可能还有很多。这个时候,我们就要构建一个消息体。这个消息体

C# 流Stream详解(3)——FileStream源码

【FileStream】构造函数如果创建一个FileStream,常见的参数例如路径Path、操作方式FileMode、权限FileAccess。这里说下FileShare和SafeFileHandle。我们知道在读取文件时,通常会有两个诉求:一是如何更快的读取文件内容;二是如何减少读取文件的消耗。常见的加快读取文件的

在ubuntu20.04中创建虚拟机:Oracle VirtualBox - 7中安装Windows-10(64bit)

问题描述之前一直在用ubuntu20.04,但是今天遇到一个需求:需要判定.exe文件是否可以正常运行,这样一来可能就需要一个虚拟机来佐助了,当然也搜了一些其他的处理办法,但是我大概看了一下,并不能满足我的需求。如果有需要请看:linux下如何完美运行exe文件?https://www.zhihu.com/questi

C#实现异步方式

在异步程序中,程序代码不需要严格按照编写时的顺序执行为了改善代码性能,有时候需要在一个新的线程中运行一部分代码有时候无需创建新的线程,但为了更好的利用单个线程的能力,需要改变代码的执行顺序也就是说:异步编程赋予代码非顺序执行的能力,让程序能够在部分耗时操作的同时,干其他的事情一、通过委托实现异步如果委托对象在调用列表中

【LeetCode-困难题】239. 滑动窗口最大值

文章目录题目方法一:单调双端队列题目方法一:单调双端队列if(deque.peekFirst()==nums[i-k])deque.removeFirst();这一步很关键,当队首元素(最大元素)是滑动窗口后要被抛弃的元素时,他就不能再是最大值了,就必须去掉,如果队首元素(最大元素)不是滑动窗口被抛弃的元素,则继续充当

linux部署页面内容

/bin:该目录包含了常用的二进制可执行文件,如ls、cp、mv、rm等等。/boot:该目录包含了启动Linux系统所需的文件,如内核文件和引导加载程序。/dev:该目录包含了所有设备文件,如硬盘、光驱、鼠标、键盘等等。/etc:该目录包含了系统的配置文件,如网络配置、用户账户、安全设置等等。/home:该目录是所有

PT@Bernoulli概型@古典概型之伯努利概型

文章目录abstract伯努利概型伯努利试验n重伯努利试验例样本空间样本空间的重要划分成功k次的n重Bernoulli试验例例例abstractBernoulli概型是结合独立事件和n重Bernoulli试验概念的古典概型伯努利概型Bernoulli概型是基于bernoulli试验的一类古典概型这类概型的等可能性体现在

定时任务框架-xxljob

1.定时任务spring传统的定时任务@Scheduled,但是这样存在这一些问题:做集群任务的重复执行问题cron表达式定义在代码之中,修改不方便定时任务失败了,无法重试也没有统计如果任务量过大,不能有效的分片执行解决这些问题的方案为:xxl-job分布式任务调度框架2.分布式任务调度2.1什么是分布式任务调度当前软

R语言贝叶斯非参数模型:密度估计、非参数化随机效应META分析心肌梗死数据...

全文链接:http://tecdat.cn/?p=23785最近,我们使用贝叶斯非参数(BNP)混合模型进行马尔科夫链蒙特卡洛(MCMC)推断(点击文末“阅读原文”获取完整代码数据)。概述相关视频在这篇文章中,我们通过展示如何使用具有不同内核的非参数混合模型进行密度估计。在后面的文章中,我们将采用参数化的广义线性混合模

idea快捷键

目录前言一.Ctrl相关二.Alt相关三.Shift相关四.Ctrl+Alt相关五.Ctrl+Shift相关六.Alt+Shift相关七.其他汇总前言IDEA中提供了很多快捷键,点击File-->Settings-->keymap便可进入看到IDEA提供的快捷键。我们也可以搜索和自定义所有快捷键,下面给出的是IDEA中

热文推荐