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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章