68    struct SnrEfficiencyMcs
 
   79    SnrEfficiencyMcs snrEfficiencyMcs[] = {
 
   80        {-5.00000, 0.08024, -1}, {-4.00000, 0.10030, -1}, {-3.00000, 0.12518, -1},
 
   81        {-2.00000, 0.15589, 0},  {-1.00000, 0.19365, 0},  {0.00000, 0.23983, 2},
 
   82        {1.00000, 0.29593, 2},   {2.00000, 0.36360, 2},   {3.00000, 0.44451, 4},
 
   83        {4.00000, 0.54031, 4},   {5.00000, 0.65251, 6},   {6.00000, 0.78240, 6},
 
   84        {7.00000, 0.93086, 8},   {8.00000, 1.09835, 8},   {9.00000, 1.28485, 10},
 
   85        {10.00000, 1.48981, 12}, {11.00000, 1.71229, 12}, {12.00000, 1.95096, 14},
 
   86        {13.00000, 2.20429, 14}, {14.00000, 2.47062, 16}, {15.00000, 2.74826, 18},
 
   87        {16.00000, 3.03560, 18}, {17.00000, 3.33115, 20}, {18.00000, 3.63355, 20},
 
   88        {19.00000, 3.94163, 22}, {20.00000, 4.25439, 22}, {21.00000, 4.57095, 24},
 
   89        {22.00000, 4.89060, 24}, {23.00000, 5.21276, 26}, {24.00000, 5.53693, 26},
 
   90        {25.00000, 5.86271, 28}, {26.00000, 6.18980, 28}, {27.00000, 6.51792, 28},
 
   91        {28.00000, 6.84687, 28}, {29.00000, 7.17649, 28}, {30.00000, 7.50663, 28},
 
   94    double txPowerDbm = 30; 
 
   95    double txPowerLin = std::pow(10, (txPowerDbm - 30) / 10);
 
   97    double noisePowerDbm =
 
   98        ktDbm + 10 * std::log10(25 * 180000); 
 
   99    double receiverNoiseFigureDb = 9.0;       
 
  100    double noiseLin = std::pow(10, (noisePowerDbm - 30 + receiverNoiseFigureDb) / 10);
 
  104    double loss[] = {81.062444, 134.078605, 144.259958};
 
  105    double dist[] = {100.0, 500.0, 1500};
 
  107    int numOfTests = 
sizeof(loss) / 
sizeof(
double);
 
  108    for (
int i = 0; i < numOfTests; i++)
 
  112        double sinrLin = (txPowerLin / (pow(10, loss[i] / 10))) / noiseLin;
 
  114        double sinrDb = 10 * std::log10(sinrLin);
 
  115        NS_LOG_INFO(
" Ptx " << txPowerDbm << 
" Pn " << noisePowerDbm << 
" Fn " 
  116                            << receiverNoiseFigureDb << 
" Pl " << loss[i] << 
" dist " << dist[i]);
 
  119        int numSnrEfficiencyMcsEntries = 
sizeof(snrEfficiencyMcs) / 
sizeof(SnrEfficiencyMcs);
 
  120        for (
int j = 0; j < numSnrEfficiencyMcsEntries && snrEfficiencyMcs[j].snrDb < sinrDb; ++j)
 
  122            mcs = snrEfficiencyMcs[j].mcsIndex;
 
  125        std::ostringstream name;
 
  126        name << 
" snr= " << sinrDb << 
" dB, " 
  127             << 
" mcs= " << snrEfficiencyMcs[i].mcsIndex;
 
  129                    TestCase::Duration::QUICK);
 
 
  178    lteHelper->SetAttribute(
"PathlossModel",
 
  179                            StringValue(
"ns3::HybridBuildingsPropagationLossModel"));
 
  182    lteHelper->SetEnbDeviceAttribute(
"DlEarfcn", 
UintegerValue(200));
 
  183    lteHelper->SetEnbDeviceAttribute(
"UlEarfcn", 
UintegerValue(18200));
 
  184    lteHelper->SetUeDeviceAttribute(
"DlEarfcn", 
UintegerValue(200));
 
  187    lteHelper->SetPathlossModelAttribute(
"ShadowSigmaOutdoor", 
DoubleValue(0.0));
 
  188    lteHelper->SetPathlossModelAttribute(
"ShadowSigmaIndoor", 
DoubleValue(0.0));
 
  189    lteHelper->SetPathlossModelAttribute(
"ShadowSigmaExtWalls", 
DoubleValue(0.0));
 
  200    mobility.SetMobilityModel(
"ns3::ConstantPositionMobilityModel");
 
  201    mobility.Install(allNodes);
 
  207    lteHelper->SetSchedulerType(
"ns3::RrFfMacScheduler");
 
  208    enbDevs = lteHelper->InstallEnbDevice(enbNodes);
 
  209    ueDevs = lteHelper->InstallUeDevice(ueNodes);
 
  212    mm_enb->SetPosition(Vector(0.0, 0.0, 30.0));
 
  214    mm_ue->SetPosition(Vector(
m_distance, 0.0, 1.0));
 
  218    enbPhy->SetAttribute(
"TxPower", 
DoubleValue(30.0));
 
  219    enbPhy->SetAttribute(
"NoiseFigure", 
DoubleValue(5.0));
 
  224    uePhy->SetAttribute(
"NoiseFigure", 
DoubleValue(9.0));
 
  227    lteHelper->Attach(ueDevs, enbDevs.
Get(0));
 
  232    lteHelper->ActivateDataRadioBearer(ueDevs, bearer);
 
  241    uePhy->GetDownlinkSpectrumPhy()->AddCtrlSinrChunkProcessor(testSinr);
 
  246    lteHelper->EnableMacTraces();
 
  247    lteHelper->EnableRlcTraces();
 
  252    double calculatedSinrDb = 10.0 * std::log10(sinrCatcher.
GetValue()->operator[](0));