Hi,
I am modifying the example "lena-simple-epc.cc" to make it a single eNB, multi UE scenario.
I further want to distribute the UEs (without mobility) in the cell and hence am using the "ListPositionAllocator" to allocate the coordinates of eNB and UEs and set their position in the cell.
eNodeB is at (0,0) and the range of cell is assumed to be 1.8KM (high value assumed to check whether MCS is lower for the cell-edge UEs). I am not setting the position of PGW and remote host.
Somehow I am getting samples of MCS 28 for UEs that are at a distance from eNB. Any help here? I somehow suspect the position allocation of UEs and how it is installed in mobility object.. Any help would be highly appreciated.
I am using the following configurations for UE and eNB:
lteHelper->SetSchedulerType("ns3::PfFfMacScheduler");
lteHelper->SetEnbDeviceAttribute ("DlEarfcn", UintegerValue (100));
lteHelper->SetEnbDeviceAttribute ("UlEarfcn", UintegerValue (100 + 18000));
Config::SetDefault ("ns3::LteHelper::PathlossModel", StringValue ("ns3::OkumuraHataPropagationLossModel"));
Config::SetDefault ("ns3::LteEnbNetDevice::UlBandwidth", UintegerValue(100));
Config::SetDefault ("ns3::LteEnbNetDevice::DlBandwidth", UintegerValue(100));
Config::SetDefault ("ns3::LteEnbRrc::DefaultTransmissionMode", UintegerValue (2));
Config::SetDefault ("ns3::LteUePhy::TxPower", DoubleValue (23));
Config::SetDefault ("ns3::LteEnbPhy::TxPower", DoubleValue (43));
Config::SetDefault ("ns3::LteAmc::AmcModel", EnumValue (LteAmc::PiroEW2010));
lteHelper->SetEnbAntennaModelType ("ns3::CosineAntennaModel");
lteHelper->SetEnbAntennaModelAttribute ("Orientation", DoubleValue (-45.0));
lteHelper->SetEnbAntennaModelAttribute ("Beamwidth", DoubleValue (60));
lteHelper->SetEnbAntennaModelAttribute ("MaxGain", DoubleValue (14.0));
Thanks,
Rama
***************CODE for setting the position of the eNB and UEs***************
NodeContainer ueNodes;
NodeContainer enbNodes;
enbNodes.Create(numberOfeNBs); // numberOfeNBs = 1
ueNodes.Create(numberOfUEs); // numberOfUEs = 10 --> This creates 10 UE NodeContainers
MobilityHelper mobility;
mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
Ptr<ListPositionAllocator> positionAlloc = CreateObject<ListPositionAllocator> ();
// Position of eNBs
Vector v (0, 0, eNBHeight); //eNBHeight = 30
positionAlloc->Add (v);
mobility.SetPositionAllocator (positionAlloc);
mobility.Install (enbNodes);
// Position of UEs attached to eNB
for (uint32_t i = 0; i < numberOfeNBs; i++) //Works for 1 eNB only. Need to review for more
{
Ptr<UniformRandomVariable> posX = CreateObject<UniformRandomVariable> ();
posX->SetAttribute ("Min", DoubleValue (500));
posX->SetAttribute ("Max", DoubleValue (range));
Ptr<UniformRandomVariable> posY = CreateObject<UniformRandomVariable> ();
posY->SetAttribute ("Min", DoubleValue (500));
posY->SetAttribute ("Max", DoubleValue (range));
positionAlloc = CreateObject<ListPositionAllocator> ();
for (uint32_t j = 0; j < numberOfUEs; j++)
{
double xcoordinate = posX->GetValue ();
double ycoordinate = posY->GetValue ();
printf("UE %d XCoordinate %f YCoordinate %f\n", j, xcoordinate, ycoordinate);
positionAlloc->Add (Vector (xcoordinate, ycoordinate, ueHeight)); //ueHeight = 1.5
mobility.SetPositionAllocator (positionAlloc);
}
mobility.Install (ueNodes); // Is there an issue here?
}