您的位置:首页 > 运维架构 > 网站架构

基于ns3的LTE仿真基本架构代码

2014-07-05 21:26 393 查看
#include <ns3/core-module.h>
#include <ns3/network-module.h>
#include <ns3/mobility-module.h>
#include <ns3/lte-module.h>
#include <ns3/config-store.h>

using namespace ns3;

int main (int argc, char *argv[])
{
CommandLine cmd;
cmd.Parse (argc, argv);

// Set the Configure File in input-defaults.txt
ConfigStore inputConfig;
inputConfig.ConfigureDefaults ();
inputConfig.SetFileFormat (ConfigStore::RAW_TEXT);
inputConfig.SetMode (ConfigStore::LOAD);
inputConfig.SetFilename ("input-defaults.txt");

// Create an LteHelper object:
Ptr<LteHelper> lteHelper = CreateObject<LteHelper> ();

// Create Node objects for the eNB(s) and the UEs -- JUST Empty Nodes
NodeContainer enbNodes;
NodeContainer ueNodes;
enbNodes.Create (1);
ueNodes.Create (2);

// Configure the Mobility model for all the nodes:
// The following will place all nodes at the coordinates (0,0,0).
MobilityHelper mobility;
mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
mobility.Install (enbNodes);
mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
mobility.Install (ueNodes);

// Install an LTE protocol stack on the eNB(s) and UEs:
NetDeviceContainer enbDevs;
NetDeviceContainer ueDevs;
enbDevs = lteHelper->InstallEnbDevice (enbNodes);
ueDevs = lteHelper->InstallUeDevice (ueNodes);

// Attach the UEs to an eNB. This will configure each UE according to
// the eNB configuration, and create an RRC connection between them:
lteHelper->Attach (ueDevs, enbDevs.Get (0));

// Activate a data radio bearer between each UE and the eNB it is attached to:
// This method will also activate two saturation traffic generators for that bearer,
// one in uplink and one in downlink.
enum EpsBearer::Qci q = EpsBearer::GBR_CONV_VOICE;
EpsBearer bearer (q);
lteHelper->ActivateDataRadioBearer (ueDevs, bearer);

// Set the stop time -- this is needed otherwise the simulation will last forever:
Simulator::Stop (Seconds (0.05));

// configure all the simulation scenario here...
lteHelper->EnablePhyTraces ();
lteHelper->EnableMacTraces ();
lteHelper->EnableRlcTraces ();
lteHelper->EnablePdcpTraces ();

// Run the simulation:
Simulator::Run ();

// Cleanup and exit:
Simulator::Destroy ();

return 0;
<span style="font-size:14px;">}
</span>

需要在waf执行目录下放置一个配置文本文件input-defaults.txt
文本文件input-defaults.txt内容如下:
default ns3::LteHelper::Scheduler "ns3::PfFfMacScheduler"

default ns3::LteHelper::PathlossModel "ns3::FriisSpectrumPropagationLossModel"

4000

default ns3::LteEnbNetDevice::UlBandwidth "25"

default ns3::LteEnbNetDevice::DlBandwidth "25"

default ns3::LteEnbNetDevice::DlEarfcn "100"

default ns3::LteEnbNetDevice::UlEarfcn "18100"

default ns3::LteUePhy::TxPower "10"

default ns3::LteUePhy::NoiseFigure "9"

default ns3::LteEnbPhy::TxPower "30"

default ns3::LteEnbPhy::NoiseFigure "5"

 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: