您的位置:首页 > 其它

NS3无线模块参数设置

2015-07-01 16:10 232 查看
在用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设置的例子列举如下(可以作为参考):







设置的参数包括:无线链路标准、发送数据速率和模式、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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: