• NS3仿真wifi网络环境


    https://www.zhihu.com/question/24549780/answer/66061998


    官方文档有一句很概括的话:节点100米以内,要能够通信;200米外不能工作。

    目的节点的收包过程:

    当节点接收到数据包的第一比特时,检测接收能量,如果小于wifiphy的能量检测门限EnergyDetectionThreshold,就会被丢弃。

    能量达到相应的阈值,ns3 最终依据 SNIR (信号与干扰加噪声比)来决定 BER 和 PER 的,即最终决定数据包是否接收成功。这里涉及到一个errorrate model,估计出错的概率,来决定最终决定数据包是否接收成功。

    ns3::YansWifiPhy类可以设置的属性:

    EnergyDetectionThreshold:能量检测门限,默认为-96dbm

    CcaMode1Threshold:确定为CCA busy状态的门限,默认为-99dbm

    TxGain:传输增益,默认为1db

    RxGain:接收增益,默认为1db

    TxPowerLevels:能量的等级数,默认为1.

    TxPowerEnd:最大传输水平,默认为16.0206dbm

    TxPowerStart:最小传输水平,默认为16.0206dbm

    RxNoiseFigure:默认为7db

    ChannelWidth:5MHz, 10MHz, 20MHz, 22MHz, 40MHz,80 MHz or 160 MHz.默认20MHz

    发射功率=TxPowerStart + txPower *(TxPowerEnd - TxPowerStart)/ TxPowerLevels

    txPower 供外部程序调用的接口,比如 MacLow,指定传输采用的功率级数

    所以综合来讲,,来调大距离,可以增大发射功率,发送增益,接受增益。。默认的通信范围取决于传播损耗模型和衰落模型以及一些初始值。。。当然上面只是理论,,你可以通过实践的方法,用ns3建立两个无线节点,,从100开始,慢慢增大距离,看看是多少的时候开始连不上就可以了。

    =================================================================

    利用移动模型mobility model的setpositionallocator方法,设置出来就可以用做范围(看到github上一大牛的写法),虽然感觉只是节点之间的距离。

    =================================================================

    的答案已经很详细了,也比较普适,这里我补充一种简单的方法:
    将信道衰落模型(PropagationLossModel)设置为RangePropagationLossModel,然后它有个属性是“MaxRange”,设置它就几乎是直接设置了通信范围。
    原理是:这个衰落模型是一个很理想化的模型,其核心思想就是小于通信半径(MaxRange)时返回接收增益为0db,大于通信半径时返回接收增益为-1000db,所以就会造成上述效果。
    了解其原理之后题主就可以根据自己的需要选择合适的方法了:如果你的仿真对这一块要求不高,可以用这个方法,否则还请参照1楼的普适方法。
    希望可以帮到你。


    作者:知乎用户
    链接:https://www.zhihu.com/question/24549780/answer/115060702
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


  • 相关阅读:
    如何掌握所有的程序语言
    程序与证明
    卫星通信地面系统构成
    SCIP 环境搭建
    Homebrew install.sh
    macOS 内核之从 I/O Kit 电量管理开始
    matlab练习程序(空间椭圆拟合)
    多进程抢票加锁
    进程间数据传递
    队列用法
  • 原文地址:https://www.cnblogs.com/ztguang/p/12644768.html
Copyright © 2020-2023  润新知