NS3无线模块参数设置

在用NS3做无线的实验时,总会碰到一些参数设置,本文档主要涉及到PHY层和MAC层的参数设置,只是在脚本编写的过程中一边编写一边查找各个API,还有更多的NS3无线有待学习!
无线仿真中的一些参数
上表是无线实验中可能会出现的一些参数设置情况,其中:
(1)Transmission range、Radiofrequency、Propagationloss model、Delaymodel均是在wifiNetDevice创建时设定的。(phy和mac层)
(2)traffic、packetsize、DataRate是可在应用层的设定(on-offapplication)
(3)mobility、speed of the node都是在node创建时设定的
2,3容易理解并且可以比较容易的直接设定,1中的参数设定说明如下:
(以下摘自博客:http://blog.sina.cn/dpool/blog/s/blog_8ecca79b0101d7i6.html?cre=blogpagew&mod=f&loc=2&r=ar&rfunc=5
几个实验中的wifiNetDevice设置的例子列举如下(可以作为参考):
图1
图2
设置的参数包括:无线链路标准、发送数据速率和模式、channel frequency、channel speed、发送和接收的功率等。
WifiNetDevicein NS3 -使用ns3中的Helper函数创建Wifi network device流程:
1.初始化信道
YansWifiChannelHelper myWifiCannelHelper =YansWifiChannelHelper::Default();
myWifiCannelHelper.SetPropagationDelay(‘ns3::ConstantSpeedPropagationDelayModel’);
myWifiCannelHelper.AddPropagationLoss(‘ns3::FixedRssLossModel’,’Rss’,DoubleValue(rss));
说明:
PropagationLoss Models:
FriisPropagationLossModel、TwoRayGroundPropagationLossModel、LogDistancePropagationLossModel、FixedRssLossModel、RangePropagationLossModel等等,更多的传输损耗模型可以查看文件propagation/model/propagation-loss-model.cc,里面有详细的说明,也可以查看官网说明:
https://www.nsnam.org/doxygen-release/classns3_1_1_propagation_loss_model.html
里面有更多的传输损耗模型的说明。
通过ns3::RangePropagationLossMode可以设置最大传输距离。
(另外,有ns3 中如何设置传输距离 :http://fajun82.blog.163.com/blog/,但是我觉得有点繁琐)
2.初始化wifi物理层
YansWifiPhyHelper myWifiPhyHelper = YansWifiChannelHelper::Default();
myWifiPhyHelper.SetChannel(myWifiChannelHelper.Create();
说明:
(涉及到发送和接收的功率的一些设置)
wifiPhy.Set (‘TxPowerStart’, DoubleValue(16.0206));
wifiPhy.Set (‘TxPowerEnd’, DoubleValue(16.0206));
wifiPhy.Set (‘TxPowerLevels’, UintegerValue(1));
wifiPhy.Set (‘TxGain’, DoubleValue(0) );
wifiPhy.Set (‘RxGain’, DoubleValue (0) );
wifiPhy.Set (‘EnergyDetectionThreshold’, DoubleValue(-71.9842));
wifiPhy.Set (‘CcaMode1Threshold’, DoubleValue(-74.9842));
wifiPhy.SetPcapDataLinkType(enum SupportedPcapDataLinkTypes dlt一种)//pcap类型设定
3. Mac层设置(我使用没有QoS保障的Mac层机制)
NqosWifiMacHelper myWifiMacHelper =NqosWifiMacHelper::Default();
myWifiMacHelper.SetType(‘ns3::AdhocWifiMac’);//NqapWifiMac,NqstaWifiMac,MeshWifiInterfaceMac
4. 装备到DevicContainer中
WifiHelper myWifiPhyHelper= WifiHelper::Default();
NetDeviceContainermyDevices;
myDevices = myWifiHelper.Install (myWifiPhyHelper, myWifiMacHelper, myNodes); //myNodes为之前初始化好的NodeContainer
(涉及到无线链路标准、发送数据速率和模式)
WifiHelper提供的函数:(以下wifi均替代为myWifiPhyHelper)
wifi.SetStandard(WIFI_PHY_STANDARD_80211b); //默认为802.11a
wifi.SetRemoteStationManager(‘ns3::ConstantRateWifiManager’,
‘DataMode’, StringValue(‘OfdmRate6Mbps’),
‘RtsCtsThreshold’, UintegerValue (0));
说明:NS3缺省的设置是802.11a采用的频段,即5.15 GHZ, 速度是真空光速3e8m/s。 但是你如果在channel设置时,采用FriisPropagationLossModel,可以通过SetLambda函数来改变frequency和speed设置
Forthe class ns3::WifiRemoteStationManager set:
•theFragmentation Threshold, •theRTS/CTS threshold •thePHY mode for non-unicast mode

  • 8
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在ns-3,AODV路由协议模块的WiFi模型可以通过设置节点的移动模型来实现。ns-3支持多种WiFi模型,包括两种最常用的模型:ConstantRateWifiManager和AdhocWifiMac。你可以通过以下代码设置节点的移动模型和WiFi模型: ``` // 创建节点 Ptr<Node> node = CreateObject<Node>(); // 设置节点的移动模型 MobilityHelper mobility; mobility.SetPositionAllocator ("ns3::GridPositionAllocator", "MinX", DoubleValue (0.0), "MinY", DoubleValue (0.0), "DeltaX", DoubleValue (5.0), "DeltaY", DoubleValue (10.0), "GridWidth", UintegerValue (3), "LayoutType", StringValue ("RowFirst")); mobility.SetMobilityModel ("ns3::RandomWalk2dMobilityModel", "Bounds", RectangleValue (Rectangle (-50, 50, -50, 50))); // 设置节点的WiFi模型 WifiHelper wifi; wifi.SetStandard (WIFI_PHY_STANDARD_80211g); wifi.SetRemoteStationManager ("ns3::ConstantRateWifiManager", "DataMode", StringValue ("DsssRate1Mbps"), "ControlMode", StringValue ("DsssRate1Mbps")); wifi.SetMac ("ns3::AdhocWifiMac"); // 安装移动模型和WiFi模型到节点上 NetDeviceContainer devices = wifi.Install (mobility.Install (node)); ``` 在上面的代码,我们先创建了一个节点,然后使用MobilityHelper设置了节点的移动模型,这里使用的是RandomWalk2dMobilityModel。接下来,我们使用WifiHelper设置了节点的WiFi模型,这里使用的是ConstantRateWifiManager和AdhocWifiMac。最后,我们通过调用wifi.Install(mobility.Install(node))安装了移动模型和WiFi模型到节点上。 需要注意的是,以上代码只是一个示例,实际应用需要根据具体情况设置节点的移动模型和WiFi模型。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值