23 #include "ns3/simulator.h"
27 #include "ns3/spectrum-test.h"
29 #include "ns3/lte-phy-tag.h"
32 #include "ns3/lte-spectrum-signal-parameters.h"
36 #include <ns3/lte-helper.h>
71 sm = Create<SpectrumModel> (bands);
77 (*rxPsd1)[0] = 1.255943215755e-15;
82 (*rxPsd2)[1] = 7.204059965732e-16;
85 (*theoreticalSinr1)[0] = 3.72589167251055;
86 (*theoreticalSinr1)[1] = 3.72255684126076;
96 (*rxPsd3)[0] = 2.505936168136e-17;
101 (*rxPsd4)[1] = 3.610582885110e-17;
104 (*theoreticalSinr2)[0] = 0.0743413124381667;
105 (*theoreticalSinr2)[1] = 0.1865697965291756;
121 :
TestCase (
"SINR calculation in uplink data frame: " + name),
124 m_sm (sv1->GetSpectrumModel ()),
127 NS_LOG_INFO (
"Creating LteUplinkDataSinrTestCase");
143 uint16_t cellId = 100;
144 dlPhy->SetCellId (cellId);
145 ulPhy->SetCellId (cellId);
148 ulPhy->AddDataSinrChunkProcessor (chunkProcessor);
159 const int numOfDataPbs = 2;
160 const int numOfIntfPbs = 4;
161 const int numOfPbs = numOfDataPbs + numOfIntfPbs;
164 const int numOfPkts = 10;
173 uint16_t pbCellId[numOfPbs];
181 for (
int dataPb = 0 ; dataPb < numOfDataPbs ; dataPb++, pb++ )
184 packetBursts[pb] = CreateObject<PacketBurst> ();
185 pbCellId[pb] = cellId;
187 for (
int i = 0 ; i < numOfPkts ; i++ )
189 pkt[pb][i] = Create<Packet> (1000);
191 packetBursts[pb]->
AddPacket ( pkt[pb][i] );
194 for (
int intfPb = 0 ; intfPb < numOfIntfPbs ; intfPb++, pb++ )
197 packetBursts[pb] = CreateObject<PacketBurst> ();
198 pbCellId[pb] = cellId * (pb + 1);
201 for (
int i = 0 ; i < numOfPkts ; i++ )
203 pkt[pb][i] = Create<Packet> (1000);
205 packetBursts[pb]->
AddPacket ( pkt[pb][i] );
216 (*noisePsd)[0] = 5.000000000000e-19;
217 (*noisePsd)[1] = 4.545454545455e-19;
219 (*i1)[0] = 5.000000000000e-18;
220 (*i2)[0] = 5.000000000000e-16;
221 (*i3)[0] = 1.581138830084e-16;
222 (*i4)[0] = 7.924465962306e-17;
223 (*i1)[1] = 1.437398936440e-18;
224 (*i2)[1] = 5.722388235428e-16;
225 (*i3)[1] = 7.204059965732e-17;
226 (*i4)[1] = 5.722388235428e-17;
239 ulPhy->SetNoisePowerSpectralDensity (noisePsd);
250 sp1->packetBurst = packetBursts[0];
251 sp1->cellId = pbCellId[0];
258 sp2->packetBurst = packetBursts[1];
259 sp2->cellId = pbCellId[1];
267 ip1->packetBurst = packetBursts[2];
268 ip1->cellId = pbCellId[2];
275 ip2->packetBurst = packetBursts[3];
276 ip2->cellId = pbCellId[3];
283 ip3->packetBurst = packetBursts[4];
284 ip3->cellId = pbCellId[4];
291 ip4->packetBurst = packetBursts[5];
292 ip4->cellId = pbCellId[5];
305 NS_LOG_INFO (
"Data Frame - Calculated SINR: " << *calculatedSinr);
319 :
TestCase (
"SINR calculation in uplink srs frame: " + name),
322 m_sm (sv1->GetSpectrumModel ()),
344 uint16_t cellId = 100;
345 dlPhy->SetCellId (cellId);
346 ulPhy->SetCellId (cellId);
349 ulPhy->AddCtrlSinrChunkProcessor (chunkProcessor);
361 int numOfDataSignals = 2;
362 int numOfIntfSignals = 4;
363 int numOfSignals = numOfDataSignals + numOfIntfSignals;
365 uint16_t pbCellId[numOfSignals];
373 for (
int dataPb = 0 ; dataPb < numOfDataSignals ; dataPb++, pb++ )
375 pbCellId[pb] = cellId;
378 for (
int intfPb = 0 ; intfPb < numOfIntfSignals ; intfPb++, pb++ )
381 pbCellId[pb] = cellId * (pb + 1);
392 (*noisePsd)[0] = 5.000000000000e-19;
393 (*noisePsd)[1] = 4.545454545455e-19;
395 (*i1)[0] = 5.000000000000e-18;
396 (*i2)[0] = 5.000000000000e-16;
397 (*i3)[0] = 1.581138830084e-16;
398 (*i4)[0] = 7.924465962306e-17;
399 (*i1)[1] = 1.437398936440e-18;
400 (*i2)[1] = 5.722388235428e-16;
401 (*i3)[1] = 7.204059965732e-17;
402 (*i4)[1] = 5.722388235428e-17;
415 ulPhy->SetNoisePowerSpectralDensity (noisePsd);
426 sp1->cellId = pbCellId[0];
433 sp2->cellId = pbCellId[1];
441 ip1->cellId = pbCellId[2];
448 ip2->cellId = pbCellId[3];
455 ip3->cellId = pbCellId[4];
462 ip4->cellId = pbCellId[5];
475 NS_LOG_INFO (
"SRS Frame - Calculated SINR: " << *calculatedSinr);