125 lteHelper->SetAttribute(
"PathlossModel",
126 StringValue(
"ns3::ConstantSpectrumPropagationLossModel"));
127 lteHelper->SetPathlossModelAttribute(
"Loss",
DoubleValue(0.0));
138 positionAlloc->Add(Vector(0.0, 0.0, 0.0));
139 positionAlloc->Add(Vector(
m_x,
m_y, 0.0));
141 mobility.SetMobilityModel(
"ns3::ConstantPositionMobilityModel");
142 mobility.SetPositionAllocator(positionAlloc);
143 mobility.Install(allNodes);
148 lteHelper->SetSchedulerType(
"ns3::RrFfMacScheduler");
150 lteHelper->SetEnbAntennaModelType(
"ns3::CosineAntennaModel");
153 lteHelper->SetEnbAntennaModelAttribute(
"MaxGain",
DoubleValue(0.0));
156 lteHelper->SetEnbDeviceAttribute(
"DlBandwidth",
UintegerValue(25));
157 lteHelper->SetEnbDeviceAttribute(
"UlBandwidth",
UintegerValue(25));
159 enbDevs = lteHelper->InstallEnbDevice(enbNodes);
160 ueDevs = lteHelper->InstallUeDevice(ueNodes);
163 lteHelper->Attach(ueDevs, enbDevs.
Get(0));
168 lteHelper->ActivateDataRadioBearer(ueDevs, bearer);
176 uePhy->GetDownlinkSpectrumPhy()->AddDataSinrChunkProcessor(testDlSinr);
183 enbphy->GetUplinkSpectrumPhy()->AddDataSinrChunkProcessor(testUlSinr);
191 "/ChannelList/0/PathLoss",
199 const double enbTxPowerDbm = 30;
200 const double ueTxPowerDbm = 10;
201 const double ktDbm = -174;
202 const double noisePowerDbm =
203 ktDbm + 10 * std::log10(25 * 180000);
204 const double ueNoiseFigureDb = 9.0;
205 const double enbNoiseFigureDb = 5.0;
210 double expectedSinrDl = enbTxPowerDbm +
m_antennaGainDb - noisePowerDbm + ueNoiseFigureDb;
211 if (expectedSinrDl > 0)
213 double calculatedSinrDbDl = -INFINITY;
216 calculatedSinrDbDl = 10.0 * std::log10(dlSinrCatcher.
GetValue()->operator[](0));
219 double calculatedAntennaGainDbDl =
220 -(enbTxPowerDbm - calculatedSinrDbDl - noisePowerDbm - ueNoiseFigureDb);
222 <<
" tol " << tolerance);
226 "Wrong DL antenna gain!");
228 double expectedSinrUl = ueTxPowerDbm +
m_antennaGainDb - noisePowerDbm + enbNoiseFigureDb;
229 if (expectedSinrUl > 0)
231 double calculatedSinrDbUl = -INFINITY;
234 calculatedSinrDbUl = 10.0 * std::log10(ulSinrCatcher.
GetValue()->operator[](0));
236 double calculatedAntennaGainDbUl =
237 -(ueTxPowerDbm - calculatedSinrDbUl - noisePowerDbm - enbNoiseFigureDb);
241 "Wrong UL antenna gain!");
245 double measuredLossDl = dlPathlossDb.
GetPathloss(1, 1);
247 double measuredLossUl = ulPathlossDb.
GetPathloss(1, 1);
274 TestCase::Duration::QUICK);
276 TestCase::Duration::QUICK);
278 TestCase::Duration::QUICK);
286 TestCase::Duration::QUICK);
288 TestCase::Duration::QUICK);
290 TestCase::Duration::QUICK);
292 TestCase::Duration::QUICK);
294 TestCase::Duration::QUICK);
296 TestCase::Duration::QUICK);
298 TestCase::Duration::QUICK);
300 TestCase::Duration::QUICK);
302 TestCase::Duration::QUICK);
305 TestCase::Duration::QUICK);
309 TestCase::Duration::QUICK);