src/lte/test/test-lte-antenna.cc
author Vedran Miletić <rivanvx@gmail.com>
Sat, 01 Sep 2012 20:57:21 +0200
changeset 9063 32755d0516f4
parent 9047 284d30c8dd42
child 9105 760da66d6f5c
permissions -rw-r--r--
Bug 1237 - code cleanups related to includes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8506
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     2
/*
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     3
 * Copyright (c) 2011, 2012 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     4
 *
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     8
 *
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    12
 * GNU General Public License for more details.
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    13
 *
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    17
 *
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    18
 * Author: Manuel Requena <manuel.requena@cttc.es>
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    19
 *         Nicola Baldo <nbaldo@cttc.es>
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    20
 */
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    21
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    22
#include "ns3/simulator.h"
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    23
#include "ns3/log.h"
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    24
#include "ns3/string.h"
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    25
#include "ns3/double.h"
9042
ae924de31cbd Update SRS-CQI management in RR and PF Schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9035
diff changeset
    26
#include "ns3/enum.h"
9043
9130e2dbe601 Add PCFICH-PDCCD Error model based on 3GPP R4-081920
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9042
diff changeset
    27
#include "ns3/boolean.h"
8506
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    28
#include "ns3/test.h"
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    29
#include "ns3/mobility-helper.h"
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    30
#include "ns3/lte-helper.h"
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    31
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    32
#include "ns3/lte-ue-phy.h"
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    33
#include "ns3/lte-ue-net-device.h"
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    34
#include "ns3/lte-enb-phy.h"
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    35
#include "ns3/lte-enb-net-device.h"
9042
ae924de31cbd Update SRS-CQI management in RR and PF Schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9035
diff changeset
    36
#include "ns3/ff-mac-scheduler.h"
8506
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    37
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    38
#include "lte-test-sinr-chunk-processor.h"
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    39
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    40
NS_LOG_COMPONENT_DEFINE ("LteAntennaTest");
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    41
8822
49d3a0979d43 fixed Bug 1439 - exclude headers for tests from installation
Nicola Baldo <nbaldo@cttc.es>
parents: 8729
diff changeset
    42
namespace ns3 {
8506
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    43
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    44
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    45
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    46
class LteEnbAntennaTestCase : public TestCase
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    47
{
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    48
public:
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    49
  static std::string BuildNameString (double orientationDegrees, double beamwidthDegrees, double x, double y);
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    50
  LteEnbAntennaTestCase (double orientationDegrees, double beamwidthDegrees, double x, double y, double antennaGainDb);
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    51
  LteEnbAntennaTestCase ();
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    52
  virtual ~LteEnbAntennaTestCase ();
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    53
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    54
private:
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    55
  virtual void DoRun (void);
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    56
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    57
  double m_orientationDegrees;
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    58
  double m_beamwidthDegrees;
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    59
  double m_x;
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    60
  double m_y;
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    61
  double m_antennaGainDb;
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    62
};
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    63
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    64
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    65
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    66
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    67
std::string LteEnbAntennaTestCase::BuildNameString (double orientationDegrees, double beamwidthDegrees, double x, double y)
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    68
{
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    69
  std::ostringstream oss;
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    70
  oss <<  "o=" << orientationDegrees
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    71
      << ", bw=" << beamwidthDegrees  
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    72
      << ", x=" << x 
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    73
      << ", y=" << y;
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    74
  return oss.str ();
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    75
}
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    76
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    77
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    78
LteEnbAntennaTestCase::LteEnbAntennaTestCase (double orientationDegrees, double beamwidthDegrees, double x, double y, double antennaGainDb)
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    79
  : TestCase (BuildNameString (orientationDegrees, beamwidthDegrees, x, y)),
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    80
    m_orientationDegrees (orientationDegrees),
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    81
    m_beamwidthDegrees (beamwidthDegrees),
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    82
    m_x (x),
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    83
    m_y (y),
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    84
    m_antennaGainDb (antennaGainDb)
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    85
{
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    86
  NS_LOG_FUNCTION (this);
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    87
}
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    88
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    89
LteEnbAntennaTestCase::~LteEnbAntennaTestCase ()
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    90
{
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    91
}
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    92
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    93
void
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    94
LteEnbAntennaTestCase::DoRun (void)
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    95
{
9043
9130e2dbe601 Add PCFICH-PDCCD Error model based on 3GPP R4-081920
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9042
diff changeset
    96
  Config::SetDefault ("ns3::LteSpectrumPhy::CtrlErrorModelEnabled", BooleanValue (false));
9130e2dbe601 Add PCFICH-PDCCD Error model based on 3GPP R4-081920
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9042
diff changeset
    97
  Config::SetDefault ("ns3::LteSpectrumPhy::DataErrorModelEnabled", BooleanValue (false));
8506
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    98
  Ptr<LteHelper> lteHelper = CreateObject<LteHelper> ();
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    99
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   100
  // use 0dB Pathloss, since we are testing only the antenna gain
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   101
  lteHelper->SetAttribute ("PathlossModel", StringValue ("ns3::ConstantSpectrumPropagationLossModel"));
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   102
  lteHelper->SetPathlossModelAttribute ("Loss", DoubleValue (0.0));
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   103
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   104
  // Create Nodes: eNodeB and UE
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   105
  NodeContainer enbNodes;
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   106
  NodeContainer ueNodes;
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   107
  enbNodes.Create (1);
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   108
  ueNodes.Create (1);
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   109
  NodeContainer allNodes = NodeContainer ( enbNodes, ueNodes );
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   110
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   111
  // Install Mobility Model
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   112
  Ptr<ListPositionAllocator> positionAlloc = CreateObject<ListPositionAllocator> ();
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   113
  positionAlloc->Add (Vector (0.0, 0.0, 0.0));  // eNB
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   114
  positionAlloc->Add (Vector (m_x, m_y, 0.0));  // UE
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   115
  MobilityHelper mobility;
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   116
  mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   117
  mobility.SetPositionAllocator (positionAlloc);
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   118
  mobility.Install (allNodes);
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   119
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   120
  // Create Devices and install them in the Nodes (eNB and UE)
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   121
  NetDeviceContainer enbDevs;
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   122
  NetDeviceContainer ueDevs;
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   123
  lteHelper->SetSchedulerType ("ns3::RrFfMacScheduler");
9042
ae924de31cbd Update SRS-CQI management in RR and PF Schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9035
diff changeset
   124
  lteHelper->SetSchedulerAttribute ("UlCqiFilter", EnumValue (FfMacScheduler::PUSCH_UL_CQI));
8506
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   125
  lteHelper->SetEnbAntennaModelType ("ns3::CosineAntennaModel");
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   126
  lteHelper->SetEnbAntennaModelAttribute ("Orientation", DoubleValue (m_orientationDegrees));
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   127
  lteHelper->SetEnbAntennaModelAttribute ("Beamwidth",   DoubleValue (m_beamwidthDegrees));
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   128
  lteHelper->SetEnbAntennaModelAttribute ("MaxGain",     DoubleValue (0.0));
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   129
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   130
  enbDevs = lteHelper->InstallEnbDevice (enbNodes);
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   131
  ueDevs = lteHelper->InstallUeDevice (ueNodes);
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   132
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   133
  // Attach a UE to a eNB
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   134
  lteHelper->Attach (ueDevs, enbDevs.Get (0));
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   135
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   136
  // Activate the default EPS bearer
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   137
  enum EpsBearer::Qci q = EpsBearer::NGBR_VIDEO_TCP_DEFAULT;
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   138
  EpsBearer bearer (q);
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   139
  lteHelper->ActivateEpsBearer (ueDevs, bearer, EpcTft::Default ());
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   140
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   141
  // Use testing chunk processor in the PHY layer
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   142
  // It will be used to test that the SNR is as intended
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   143
  Ptr<LtePhy> uePhy = ueDevs.Get (0)->GetObject<LteUeNetDevice> ()->GetPhy ()->GetObject<LtePhy> ();
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   144
  Ptr<LteTestSinrChunkProcessor> testDlSinr = Create<LteTestSinrChunkProcessor> (uePhy);
9035
e40974228d94 Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8729
diff changeset
   145
  uePhy->GetDownlinkSpectrumPhy ()->AddDataSinrChunkProcessor (testDlSinr);
8506
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   146
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   147
  Ptr<LtePhy> enbphy = enbDevs.Get (0)->GetObject<LteEnbNetDevice> ()->GetPhy ()->GetObject<LtePhy> ();
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   148
  Ptr<LteTestSinrChunkProcessor> testUlSinr = Create<LteTestSinrChunkProcessor> (enbphy);
9035
e40974228d94 Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8729
diff changeset
   149
  enbphy->GetUplinkSpectrumPhy ()->AddDataSinrChunkProcessor (testUlSinr);
8506
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   150
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   151
8729
74de12409ee5 Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents: 8728
diff changeset
   152
  Simulator::Stop (Seconds (0.020));
8506
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   153
  Simulator::Run ();
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   154
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   155
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   156
  const double enbTxPowerDbm = 30; // default eNB TX power over whole bandwdith
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   157
  const double ueTxPowerDbm  = 10; // default UE TX power over whole bandwdith
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   158
  const double ktDbm = -174;    // reference LTE noise PSD
9063
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 9047
diff changeset
   159
  const double noisePowerDbm = ktDbm + 10 * std::log10 (25 * 180000); // corresponds to kT*bandwidth in linear units
8506
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   160
  const double ueNoiseFigureDb = 9.0; // default UE noise figure
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   161
  const double enbNoiseFigureDb = 5.0; // default eNB noise figure
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   162
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   163
  double calculatedSinrDbDl = -INFINITY;
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   164
  if (testDlSinr->GetSinr () != 0)
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   165
    {
9063
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 9047
diff changeset
   166
      calculatedSinrDbDl = 10.0 * std::log10 (testDlSinr->GetSinr ()->operator[] (0));
8506
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   167
    }
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   168
  double calculatedSinrDbUl = -INFINITY;
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   169
  if (testUlSinr->GetSinr () != 0)
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   170
    {
9063
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 9047
diff changeset
   171
      calculatedSinrDbUl = 10.0 * std::log10 (testUlSinr->GetSinr ()->operator[] (0));
8506
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   172
    }
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   173
  
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   174
  // remember that propagation loss is 0dB
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   175
  double calculatedAntennaGainDbDl = - (enbTxPowerDbm - calculatedSinrDbDl - noisePowerDbm - ueNoiseFigureDb);
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   176
  double calculatedAntennaGainDbUl = - (ueTxPowerDbm - calculatedSinrDbUl - noisePowerDbm - enbNoiseFigureDb);
9063
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 9047
diff changeset
   177
  double tolerance = (m_antennaGainDb != 0) ? std::abs (m_antennaGainDb)*0.001 : 0.001;
8634
dbca952552d2 updated reference values for test-lte-antenna
Nicola Baldo <nbaldo@cttc.es>
parents: 8506
diff changeset
   178
  NS_TEST_ASSERT_MSG_EQ_TOL (calculatedAntennaGainDbDl, m_antennaGainDb, tolerance, "Wrong DL antenna gain!");
dbca952552d2 updated reference values for test-lte-antenna
Nicola Baldo <nbaldo@cttc.es>
parents: 8506
diff changeset
   179
  NS_TEST_ASSERT_MSG_EQ_TOL (calculatedAntennaGainDbUl, m_antennaGainDb, tolerance, "Wrong UL antenna gain!");
8506
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   180
  
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   181
  Simulator::Destroy ();
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   182
}
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   183
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   184
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   185
class LteAntennaTestSuite : public TestSuite
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   186
{
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   187
public:
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   188
  LteAntennaTestSuite ();
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   189
};
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   190
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   191
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   192
LteAntennaTestSuite::LteAntennaTestSuite ()
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   193
  : TestSuite ("lte-antenna", SYSTEM)
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   194
{
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   195
  NS_LOG_FUNCTION (this);
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   196
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   197
  //                                      orientation beamwidth     x            y         gain 
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   198
  AddTestCase (new LteEnbAntennaTestCase (       0.0,     90.0,    1.0,          0.0,       0.0));
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   199
  AddTestCase (new LteEnbAntennaTestCase (       0.0,     90.0,    1.0,          1.0,      -3.0));
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   200
  AddTestCase (new LteEnbAntennaTestCase (       0.0,     90.0,    1.0,         -1.0,      -3.0));
8634
dbca952552d2 updated reference values for test-lte-antenna
Nicola Baldo <nbaldo@cttc.es>
parents: 8506
diff changeset
   201
  AddTestCase (new LteEnbAntennaTestCase (       0.0,     90.0,   -1.0,         -1.0,   -36.396));
dbca952552d2 updated reference values for test-lte-antenna
Nicola Baldo <nbaldo@cttc.es>
parents: 8506
diff changeset
   202
  AddTestCase (new LteEnbAntennaTestCase (       0.0,     90.0,   -1.0,         -0.0,   -1414.6));
dbca952552d2 updated reference values for test-lte-antenna
Nicola Baldo <nbaldo@cttc.es>
parents: 8506
diff changeset
   203
  AddTestCase (new LteEnbAntennaTestCase (       0.0,     90.0,   -1.0,          1.0,   -36.396));
8506
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   204
  AddTestCase (new LteEnbAntennaTestCase (      45.0,     90.0,    1.0,          1.0,       0.0));
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   205
  AddTestCase (new LteEnbAntennaTestCase (     -45.0,     90.0,    1.0,         -1.0,       0.0));
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   206
  AddTestCase (new LteEnbAntennaTestCase (      90.0,     90.0,    1.0,          1.0,      -3.0));
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   207
  AddTestCase (new LteEnbAntennaTestCase (     -90.0,     90.0,    1.0,         -1.0,      -3.0)); 
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   208
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   209
  AddTestCase (new LteEnbAntennaTestCase (       0.0,    120.0,    1.0,          0.0,       0.0));
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   210
  AddTestCase (new LteEnbAntennaTestCase (       0.0,    120.0,    0.5,  sin(M_PI/3),      -3.0));
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   211
  AddTestCase (new LteEnbAntennaTestCase (       0.0,    120.0,    0.5, -sin(M_PI/3),      -3.0));
8634
dbca952552d2 updated reference values for test-lte-antenna
Nicola Baldo <nbaldo@cttc.es>
parents: 8506
diff changeset
   212
  AddTestCase (new LteEnbAntennaTestCase (       0.0,    120.0,   -1.0,         -2.0,   -13.410));
dbca952552d2 updated reference values for test-lte-antenna
Nicola Baldo <nbaldo@cttc.es>
parents: 8506
diff changeset
   213
  AddTestCase (new LteEnbAntennaTestCase (       0.0,    120.0,   -1.0,          1.0,   -20.034));
8506
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   214
  AddTestCase (new LteEnbAntennaTestCase (      60.0,    120.0,    0.5,  sin(M_PI/3),       0.0));
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   215
  AddTestCase (new LteEnbAntennaTestCase (     -60.0,    120.0,    0.5, -sin(M_PI/3),       0.0));
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   216
  AddTestCase (new LteEnbAntennaTestCase (     -60.0,    120.0,    0.5, -sin(M_PI/3),       0.0));
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   217
  AddTestCase (new LteEnbAntennaTestCase (    -120.0,    120.0,   -0.5, -sin(M_PI/3),       0.0));
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   218
  AddTestCase (new LteEnbAntennaTestCase (    -120.0,    120.0,    0.5, -sin(M_PI/3),      -3.0));
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   219
  AddTestCase (new LteEnbAntennaTestCase (    -120.0,    120.0,     -1,            0,      -3.0));
8634
dbca952552d2 updated reference values for test-lte-antenna
Nicola Baldo <nbaldo@cttc.es>
parents: 8506
diff changeset
   220
  AddTestCase (new LteEnbAntennaTestCase (    -120.0,    120.0,     -1,            2,   -15.578));
dbca952552d2 updated reference values for test-lte-antenna
Nicola Baldo <nbaldo@cttc.es>
parents: 8506
diff changeset
   221
  AddTestCase (new LteEnbAntennaTestCase (    -120.0,    120.0,      1,            0,   -14.457));
dbca952552d2 updated reference values for test-lte-antenna
Nicola Baldo <nbaldo@cttc.es>
parents: 8506
diff changeset
   222
  AddTestCase (new LteEnbAntennaTestCase (    -120.0,    120.0,      1,            2,   -73.154));
dbca952552d2 updated reference values for test-lte-antenna
Nicola Baldo <nbaldo@cttc.es>
parents: 8506
diff changeset
   223
  AddTestCase (new LteEnbAntennaTestCase (    -120.0,    120.0,      1,         -0.1,   -12.754));
8506
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   224
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   225
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   226
}
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   227
f9616c9094a5 integrated AntennaModel with LTE, including system test
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   228
static LteAntennaTestSuite lteAntennaTestSuite;
8822
49d3a0979d43 fixed Bug 1439 - exclude headers for tests from installation
Nicola Baldo <nbaldo@cttc.es>
parents: 8729
diff changeset
   229
49d3a0979d43 fixed Bug 1439 - exclude headers for tests from installation
Nicola Baldo <nbaldo@cttc.es>
parents: 8729
diff changeset
   230
49d3a0979d43 fixed Bug 1439 - exclude headers for tests from installation
Nicola Baldo <nbaldo@cttc.es>
parents: 8729
diff changeset
   231
} // namespace ns3
49d3a0979d43 fixed Bug 1439 - exclude headers for tests from installation
Nicola Baldo <nbaldo@cttc.es>
parents: 8729
diff changeset
   232