src/lte/model/lte-amc.cc
author Peter D. Barnes, Jr. <barnes26@llnl.gov>
Fri, 26 Sep 2014 15:51:00 -0700
changeset 10968 2d29fee2b7b8
parent 10680 ace43d9baa17
child 10983 087597a150da
permissions -rw-r--r--
[Bug 1551] Redux: NS_LOG_COMPONENT_DEFINE inside or outside of ns3 namespace?
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7385
10beb0e53130 standardize emacs c++ mode comments
Vedran Miletić <rivanvx@gmail.com>
parents: 6852
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
     2
/*
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
     3
 * Copyright (c) 2010 TELEMATICS LAB, DEE - Politecnico di Bari
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
     4
 *
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
     8
 *
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    12
 * GNU General Public License for more details.
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    13
 *
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    17
 *
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    18
 * Original Author: Giuseppe Piro  <g.piro@poliba.it>
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    19
 * Modified by:     Marco Miozzo   <mmiozzo@cttc.es>
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    20
 *                  Nicola Baldo   <nbaldo@cttc.es>
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    21
 */
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    22
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    23
8515
245c032fb764 Convert LteAmc to Object and add BER parameter
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8253
diff changeset
    24
#include <ns3/lte-amc.h>
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    25
#include <ns3/log.h>
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    26
#include <ns3/assert.h>
9063
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 8781
diff changeset
    27
#include <ns3/math.h>
8646
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
    28
#include <vector>
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    29
#include <ns3/spectrum-value.h>
8515
245c032fb764 Convert LteAmc to Object and add BER parameter
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8253
diff changeset
    30
#include <ns3/double.h>
8644
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
    31
#include "ns3/enum.h"
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
    32
#include <ns3/lte-mi-error-model.h>
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    33
7485
9bec9af5e3c8 make ns-3 compile on FreeBSD-8.2
Colin Perkins <csp@csperkins.org>
parents: 7385
diff changeset
    34
10968
2d29fee2b7b8 [Bug 1551] Redux: NS_LOG_COMPONENT_DEFINE inside or outside of ns3 namespace?
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10680
diff changeset
    35
namespace ns3 {
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    36
10968
2d29fee2b7b8 [Bug 1551] Redux: NS_LOG_COMPONENT_DEFINE inside or outside of ns3 namespace?
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10680
diff changeset
    37
NS_LOG_COMPONENT_DEFINE ("LteAmc");
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    38
10652
dc18deba4502 [doxygen] Revert r10410, r10411, r10412
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10410
diff changeset
    39
NS_OBJECT_ENSURE_REGISTERED (LteAmc);
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    40
8052
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
    41
// from 3GPP R1-081483 "Conveying MCS and TB size via PDCCH"
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
    42
// file TBS_support.xls
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
    43
// tab "MCS table" (rounded to 2 decimal digits)
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
    44
// the index in the vector (0-15) identifies the CQI value
10680
ace43d9baa17 make various implementation-specific tables static const.
Andrey Mazo <ahippo@yandex.com>
parents: 10652
diff changeset
    45
static const double SpectralEfficiencyForCqi[16] = {
8052
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
    46
  0.0, // out of range
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    47
  0.15, 0.23, 0.38, 0.6, 0.88, 1.18,
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    48
  1.48, 1.91, 2.41,
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    49
  2.73, 3.32, 3.9, 4.52, 5.12, 5.55
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    50
};
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    51
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    52
10680
ace43d9baa17 make various implementation-specific tables static const.
Andrey Mazo <ahippo@yandex.com>
parents: 10652
diff changeset
    53
#if 0 // currently unused
8052
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
    54
// Table 7.1.7.1-1 of 3GPP TS 36.213 v8.8.0
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
    55
// the index in the vector (range 0-31; valid values 0-28) identifies the MCS index
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
    56
// note that this is similar to the one in R1-081483 but:
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
    57
//  1) a few values are different
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
    58
//  2) in R1-081483, a valid MCS index is in the range 1-30 (not 0-28)
10680
ace43d9baa17 make various implementation-specific tables static const.
Andrey Mazo <ahippo@yandex.com>
parents: 10652
diff changeset
    59
static const int ModulationSchemeForMcs[32] = {
8052
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
    60
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    61
  4, 4, 4, 4, 4, 4, 4,
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    62
  6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    63
  2,  // reserved
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    64
  4,  // reserved
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    65
  6,  // reserved
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    66
};
10680
ace43d9baa17 make various implementation-specific tables static const.
Andrey Mazo <ahippo@yandex.com>
parents: 10652
diff changeset
    67
#endif
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    68
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    69
8052
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
    70
// from 3GPP R1-081483 "Conveying MCS and TB size via PDCCH"
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
    71
// file TBS_support.xls
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
    72
// tab "MCS table" (rounded to 2 decimal digits)
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
    73
// the index in the table corresponds to the MCS index according to the convention in TS 36.213
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
    74
// (i.e., the MCS index reported in R1-081483 minus one)
10680
ace43d9baa17 make various implementation-specific tables static const.
Andrey Mazo <ahippo@yandex.com>
parents: 10652
diff changeset
    75
static const double SpectralEfficiencyForMcs[32] = {
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    76
  0.15, 0.19, 0.23, 0.31, 0.38, 0.49, 0.6, 0.74, 0.88, 1.03, 1.18,
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    77
  1.33, 1.48, 1.7, 1.91, 2.16, 2.41, 2.57,
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    78
  2.73, 3.03, 3.32, 3.61, 3.9, 4.21, 4.52, 4.82, 5.12, 5.33, 5.55,
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    79
  0, 0, 0
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    80
};
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    81
8052
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
    82
// Table 7.1.7.1-1 of 3GPP TS 36.213 v8.8.0
10680
ace43d9baa17 make various implementation-specific tables static const.
Andrey Mazo <ahippo@yandex.com>
parents: 10652
diff changeset
    83
static const int McsToItbs[29] = {
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    84
  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 10, 11, 12, 13, 14, 15, 15, 16, 17, 18,
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    85
  19, 20, 21, 22, 23, 24, 25, 26
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    86
};
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    87
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    88
8148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8120
diff changeset
    89
// 3GPP TS 36.213 v8.8.0 Table 7.1.7.2.1-1: Transport block size table (dimension 27×110)
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8120
diff changeset
    90
// for NPRB = 1 and Itbs = 6 the stadard returns 328, but it not consisent with the
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8120
diff changeset
    91
// other values, therefore we used 88 obtained following the sequence of NPRB = 1 values
10680
ace43d9baa17 make various implementation-specific tables static const.
Andrey Mazo <ahippo@yandex.com>
parents: 10652
diff changeset
    92
static const int TransportBlockSizeTable [110][27] = {
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    93
8148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8120
diff changeset
    94
  /* NPRB 001*/
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8120
diff changeset
    95
  { 16, 24, 32, 40, 56, 72, 88, 104, 120, 136, 144, 176, 208, 224, 256, 280, 328, 336, 376, 408, 440, 488, 520, 552, 584, 616, 712},
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    96
  /* NPRB 002*/ { 32, 56, 72, 104, 120, 144, 176, 224, 256, 296, 328, 376, 440, 488, 552, 600, 632, 696, 776, 840, 904, 1000, 1064, 1128, 1192, 1256, 1480},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    97
  /* NPRB 003*/ { 56, 88, 144, 176, 208, 224, 256, 328, 392, 456, 504, 584, 680, 744, 840, 904, 968, 1064, 1160, 1288, 1384, 1480, 1608, 1736, 1800, 1864, 2216},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    98
  /* NPRB 004*/ { 88, 144, 176, 208, 256, 328, 392, 472, 536, 616, 680, 776, 904, 1000, 1128, 1224, 1288, 1416, 1544, 1736, 1864, 1992, 2152, 2280, 2408, 2536, 2984},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    99
  /* NPRB 005*/ { 120, 176, 208, 256, 328, 424, 504, 584, 680, 776, 872, 1000, 1128, 1256, 1416, 1544, 1608, 1800, 1992, 2152, 2344, 2472, 2664, 2856, 2984, 3112, 3752},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   100
  /* NPRB 006*/ { 152, 208, 256, 328, 408, 504, 600, 712, 808, 936, 1032, 1192, 1352, 1544, 1736, 1800, 1928, 2152, 2344, 2600, 2792, 2984, 3240, 3496, 3624, 3752, 4392},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   101
  /* NPRB 007*/ { 176, 224, 296, 392, 488, 600, 712, 840, 968, 1096, 1224, 1384, 1608, 1800, 1992, 2152, 2280, 2536, 2792, 2984, 3240, 3496, 3752, 4008, 4264, 4392, 5160},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   102
  /* NPRB 008*/ { 208, 256, 328, 440, 552, 680, 808, 968, 1096, 1256, 1384, 1608, 1800, 2024, 2280, 2472, 2600, 2856, 3112, 3496, 3752, 4008, 4264, 4584, 4968, 5160, 5992},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   103
  /* NPRB 009*/ { 224, 328, 376, 504, 632, 776, 936, 1096, 1256, 1416, 1544, 1800, 2024, 2280, 2600, 2728, 2984, 3240, 3624, 3880, 4136, 4584, 4776, 5160, 5544, 5736, 6712},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   104
  /* NPRB 010*/ { 256, 344, 424, 568, 696, 872, 1032, 1224, 1384, 1544, 1736, 2024, 2280, 2536, 2856, 3112, 3240, 3624, 4008, 4264, 4584, 4968, 5352, 5736, 5992, 6200, 7480},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   105
  /* NPRB 011*/ { 288, 376, 472, 616, 776, 968, 1128, 1320, 1544, 1736, 1928, 2216, 2472, 2856, 3112, 3368, 3624, 4008, 4392, 4776, 5160, 5544, 5992, 6200, 6712, 6968, 8248},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   106
  /* NPRB 012*/ { 328, 424, 520, 680, 840, 1032, 1224, 1480, 1672, 1864, 2088, 2408, 2728, 3112, 3496, 3624, 3880, 4392, 4776, 5160, 5544, 5992, 6456, 6968, 7224, 7480, 8760},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   107
  /* NPRB 013*/ { 344, 456, 568, 744, 904, 1128, 1352, 1608, 1800, 2024, 2280, 2600, 2984, 3368, 3752, 4008, 4264, 4776, 5160, 5544, 5992, 6456, 6968, 7480, 7992, 8248, 9528},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   108
  /* NPRB 014*/ { 376, 488, 616, 808, 1000, 1224, 1480, 1672, 1928, 2216, 2472, 2792, 3240, 3624, 4008, 4264, 4584, 5160, 5544, 5992, 6456, 6968, 7480, 7992, 8504, 8760, 10296},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   109
  /* NPRB 015*/ { 392, 520, 648, 872, 1064, 1320, 1544, 1800, 2088, 2344, 2664, 2984, 3368, 3880, 4264, 4584, 4968, 5352, 5992, 6456, 6968, 7480, 7992, 8504, 9144, 9528, 11064},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   110
  /* NPRB 016*/ { 424, 568, 696, 904, 1128, 1384, 1672, 1928, 2216, 2536, 2792, 3240, 3624, 4136, 4584, 4968, 5160, 5736, 6200, 6968, 7480, 7992, 8504, 9144, 9912, 10296, 11832},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   111
  /* NPRB 017*/ { 456, 600, 744, 968, 1192, 1480, 1736, 2088, 2344, 2664, 2984, 3496, 3880, 4392, 4968, 5160, 5544, 6200, 6712, 7224, 7992, 8504, 9144, 9912, 10296, 10680, 12576},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   112
  /* NPRB 018*/ { 488, 632, 776, 1032, 1288, 1544, 1864, 2216, 2536, 2856, 3112, 3624, 4136, 4584, 5160, 5544, 5992, 6456, 7224, 7736, 8248, 9144, 9528, 10296, 11064, 11448, 13536},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   113
  /* NPRB 019*/ { 504, 680, 840, 1096, 1352, 1672, 1992, 2344, 2664, 2984, 3368, 3880, 4392, 4968, 5544, 5736, 6200, 6712, 7480, 8248, 8760, 9528, 10296, 11064, 11448, 12216, 14112},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   114
  /* NPRB 020*/ { 536, 712, 872, 1160, 1416, 1736, 2088, 2472, 2792, 3112, 3496, 4008, 4584, 5160, 5736, 6200, 6456, 7224, 7992, 8504, 9144, 9912, 10680, 11448, 12216, 12576, 14688},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   115
  /* NPRB 021*/ { 568, 744, 936, 1224, 1480, 1864, 2216, 2536, 2984, 3368, 3752, 4264, 4776, 5352, 5992, 6456, 6712, 7480, 8248, 9144, 9912, 10680, 11448, 12216, 12960, 13536, 15264},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   116
  /* NPRB 022*/ { 600, 776, 968, 1256, 1544, 1928, 2280, 2664, 3112, 3496, 3880, 4392, 4968, 5736, 6200, 6712, 7224, 7992, 8760, 9528, 10296, 11064, 11832, 12576, 13536, 14112, 16416},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   117
  /* NPRB 023*/ { 616, 808, 1000, 1320, 1608, 2024, 2408, 2792, 3240, 3624, 4008, 4584, 5352, 5992, 6456, 6968, 7480, 8248, 9144, 9912, 10680, 11448, 12576, 12960, 14112, 14688, 16992},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   118
  /* NPRB 024*/ { 648, 872, 1064, 1384, 1736, 2088, 2472, 2984, 3368, 3752, 4264, 4776, 5544, 6200, 6968, 7224, 7736, 8760, 9528, 10296, 11064, 12216, 12960, 13536, 14688, 15264, 17568},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   119
  /* NPRB 025*/ { 680, 904, 1096, 1416, 1800, 2216, 2600, 3112, 3496, 4008, 4392, 4968, 5736, 6456, 7224, 7736, 7992, 9144, 9912, 10680, 11448, 12576, 13536, 14112, 15264, 15840, 18336},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   120
  /* NPRB 026*/ { 712, 936, 1160, 1480, 1864, 2280, 2728, 3240, 3624, 4136, 4584, 5352, 5992, 6712, 7480, 7992, 8504, 9528, 10296, 11064, 12216, 12960, 14112, 14688, 15840, 16416, 19080},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   121
  /* NPRB 027*/ { 744, 968, 1192, 1544, 1928, 2344, 2792, 3368, 3752, 4264, 4776, 5544, 6200, 6968, 7736, 8248, 8760, 9912, 10680, 11448, 12576, 13536, 14688, 15264, 16416, 16992, 19848},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   122
  /* NPRB 028*/ { 776, 1000, 1256, 1608, 1992, 2472, 2984, 3368, 3880, 4392, 4968, 5736, 6456, 7224, 7992, 8504, 9144, 10296, 11064, 12216, 12960, 14112, 15264, 15840, 16992, 17568, 20616},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   123
  /* NPRB 029*/ { 776, 1032, 1288, 1672, 2088, 2536, 2984, 3496, 4008, 4584, 5160, 5992, 6712, 7480, 8248, 8760, 9528, 10296, 11448, 12576, 13536, 14688, 15840, 16416, 17568, 18336, 21384},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   124
  /* NPRB 030*/ { 808, 1064, 1320, 1736, 2152, 2664, 3112, 3624, 4264, 4776, 5352, 5992, 6712, 7736, 8504, 9144, 9912, 10680, 11832, 12960, 14112, 15264, 16416, 16992, 18336, 19080, 22152},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   125
  /* NPRB 031*/ { 840, 1128, 1384, 1800, 2216, 2728, 3240, 3752, 4392, 4968, 5544, 6200, 6968, 7992, 8760, 9528, 9912, 11064, 12216, 13536, 14688, 15840, 16992, 17568, 19080, 19848, 22920},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   126
  /* NPRB 032*/ { 872, 1160, 1416, 1864, 2280, 2792, 3368, 3880, 4584, 5160, 5736, 6456, 7224, 8248, 9144, 9912, 10296, 11448, 12576, 13536, 14688, 15840, 16992, 18336, 19848, 20616, 23688},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   127
  /* NPRB 033*/ { 904, 1192, 1480, 1928, 2344, 2856, 3496, 4008, 4584, 5160, 5736, 6712, 7480, 8504, 9528, 10296, 10680, 11832, 12960, 14112, 15264, 16416, 17568, 19080, 19848, 20616, 24496},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   128
  /* NPRB 034*/ { 936, 1224, 1544, 1992, 2408, 2984, 3496, 4136, 4776, 5352, 5992, 6968, 7736, 8760, 9912, 10296, 11064, 12216, 13536, 14688, 15840, 16992, 18336, 19848, 20616, 21384, 25456},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   129
  /* NPRB 035*/ { 968, 1256, 1544, 2024, 2472, 3112, 3624, 4264, 4968, 5544, 6200, 6968, 7992, 9144, 9912, 10680, 11448, 12576, 14112, 15264, 16416, 17568, 19080, 19848, 21384, 22152, 25456},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   130
  /* NPRB 036*/ { 1000, 1288, 1608, 2088, 2600, 3112, 3752, 4392, 4968, 5736, 6200, 7224, 8248, 9144, 10296, 11064, 11832, 12960, 14112, 15264, 16992, 18336, 19080, 20616, 22152, 22920, 26416},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   131
  /* NPRB 037*/ { 1032, 1352, 1672, 2152, 2664, 3240, 3880, 4584, 5160, 5736, 6456, 7480, 8504, 9528, 10680, 11448, 12216, 13536, 14688, 15840, 16992, 18336, 19848, 21384, 22920, 23688, 27376},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   132
  /* NPRB 038*/ { 1032, 1384, 1672, 2216, 2728, 3368, 4008, 4584, 5352, 5992, 6712, 7736, 8760, 9912, 11064, 11832, 12216, 13536, 15264, 16416, 17568, 19080, 20616, 22152, 22920, 24496, 28336},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   133
  /* NPRB 039*/ { 1064, 1416, 1736, 2280, 2792, 3496, 4136, 4776, 5544, 6200, 6712, 7736, 8760, 9912, 11064, 11832, 12576, 14112, 15264, 16992, 18336, 19848, 21384, 22152, 23688, 24496, 29296},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   134
  /* NPRB 040*/ { 1096, 1416, 1800, 2344, 2856, 3496, 4136, 4968, 5544, 6200, 6968, 7992, 9144, 10296, 11448, 12216, 12960, 14688, 15840, 16992, 18336, 19848, 21384, 22920, 24496, 25456, 29296},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   135
  /* NPRB 041*/ { 1128, 1480, 1800, 2408, 2984, 3624, 4264, 4968, 5736, 6456, 7224, 8248, 9528, 10680, 11832, 12576, 13536, 14688, 16416, 17568, 19080, 20616, 22152, 23688, 25456, 26416, 30576},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   136
  /* NPRB 042*/ { 1160, 1544, 1864, 2472, 2984, 3752, 4392, 5160, 5992, 6712, 7480, 8504, 9528, 10680, 12216, 12960, 13536, 15264, 16416, 18336, 19848, 21384, 22920, 24496, 25456, 26416, 30576},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   137
  /* NPRB 043*/ { 1192, 1544, 1928, 2536, 3112, 3752, 4584, 5352, 5992, 6712, 7480, 8760, 9912, 11064, 12216, 12960, 14112, 15264, 16992, 18336, 19848, 21384, 22920, 24496, 26416, 27376, 31704},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   138
  /* NPRB 044*/ { 1224, 1608, 1992, 2536, 3112, 3880, 4584, 5352, 6200, 6968, 7736, 8760, 9912, 11448, 12576, 13536, 14112, 15840, 17568, 19080, 20616, 22152, 23688, 25456, 26416, 28336, 32856},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   139
  /* NPRB 045*/ { 1256, 1608, 2024, 2600, 3240, 4008, 4776, 5544, 6200, 6968, 7992, 9144, 10296, 11448, 12960, 13536, 14688, 16416, 17568, 19080, 20616, 22920, 24496, 25456, 27376, 28336, 32856},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   140
  /* NPRB 046*/ { 1256, 1672, 2088, 2664, 3240, 4008, 4776, 5736, 6456, 7224, 7992, 9144, 10680, 11832, 12960, 14112, 14688, 16416, 18336, 19848, 21384, 22920, 24496, 26416, 28336, 29296, 34008},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   141
  /* NPRB 047*/ { 1288, 1736, 2088, 2728, 3368, 4136, 4968, 5736, 6456, 7480, 8248, 9528, 10680, 12216, 13536, 14688, 15264, 16992, 18336, 20616, 22152, 23688, 25456, 27376, 28336, 29296, 35160},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   142
  /* NPRB 048*/ { 1320, 1736, 2152, 2792, 3496, 4264, 4968, 5992, 6712, 7480, 8504, 9528, 11064, 12216, 13536, 14688, 15840, 17568, 19080, 20616, 22152, 24496, 25456, 27376, 29296, 30576, 35160},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   143
  /* NPRB 049*/ { 1352, 1800, 2216, 2856, 3496, 4392, 5160, 5992, 6968, 7736, 8504, 9912, 11064, 12576, 14112, 15264, 15840, 17568, 19080, 21384, 22920, 24496, 26416, 28336, 29296, 31704, 36696},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   144
  /* NPRB 050*/ { 1384, 1800, 2216, 2856, 3624, 4392, 5160, 6200, 6968, 7992, 8760, 9912, 11448, 12960, 14112, 15264, 16416, 18336, 19848, 21384, 22920, 25456, 27376, 28336, 30576, 31704, 36696},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   145
  /* NPRB 051*/ { 1416, 1864, 2280, 2984, 3624, 4584, 5352, 6200, 7224, 7992, 9144, 10296, 11832, 12960, 14688, 15840, 16416, 18336, 19848, 22152, 23688, 25456, 27376, 29296, 31704, 32856, 37888},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   146
  /* NPRB 052*/ { 1416, 1864, 2344, 2984, 3752, 4584, 5352, 6456, 7224, 8248, 9144, 10680, 11832, 13536, 14688, 15840, 16992, 19080, 20616, 22152, 24496, 26416, 28336, 29296, 31704, 32856, 37888},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   147
  /* NPRB 053*/ { 1480, 1928, 2344, 3112, 3752, 4776, 5544, 6456, 7480, 8248, 9144, 10680, 12216, 13536, 15264, 16416, 16992, 19080, 21384, 22920, 24496, 26416, 28336, 30576, 32856, 34008, 39232},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   148
  /* NPRB 054*/ { 1480, 1992, 2408, 3112, 3880, 4776, 5736, 6712, 7480, 8504, 9528, 11064, 12216, 14112, 15264, 16416, 17568, 19848, 21384, 22920, 25456, 27376, 29296, 30576, 32856, 34008, 40576},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   149
  /* NPRB 055*/ { 1544, 1992, 2472, 3240, 4008, 4776, 5736, 6712, 7736, 8760, 9528, 11064, 12576, 14112, 15840, 16992, 17568, 19848, 22152, 23688, 25456, 27376, 29296, 31704, 34008, 35160, 40576},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   150
  /* NPRB 056*/ { 1544, 2024, 2536, 3240, 4008, 4968, 5992, 6712, 7736, 8760, 9912, 11448, 12576, 14688, 15840, 16992, 18336, 20616, 22152, 24496, 26416, 28336, 30576, 31704, 34008, 35160, 40576},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   151
  /* NPRB 057*/ { 1608, 2088, 2536, 3368, 4136, 4968, 5992, 6968, 7992, 9144, 9912, 11448, 12960, 14688, 16416, 17568, 18336, 20616, 22920, 24496, 26416, 28336, 30576, 32856, 35160, 36696, 42368},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   152
  /* NPRB 058*/ { 1608, 2088, 2600, 3368, 4136, 5160, 5992, 6968, 7992, 9144, 10296, 11832, 12960, 14688, 16416, 17568, 19080, 20616, 22920, 25456, 27376, 29296, 31704, 32856, 35160, 36696, 42368},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   153
  /* NPRB 059*/ { 1608, 2152, 2664, 3496, 4264, 5160, 6200, 7224, 8248, 9144, 10296, 11832, 13536, 15264, 16992, 18336, 19080, 21384, 23688, 25456, 27376, 29296, 31704, 34008, 36696, 37888, 43816},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   154
  /* NPRB 060*/ { 1672, 2152, 2664, 3496, 4264, 5352, 6200, 7224, 8504, 9528, 10680, 12216, 13536, 15264, 16992, 18336, 19848, 21384, 23688, 25456, 28336, 30576, 32856, 34008, 36696, 37888, 43816},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   155
  /* NPRB 061*/ { 1672, 2216, 2728, 3624, 4392, 5352, 6456, 7480, 8504, 9528, 10680, 12216, 14112, 15840, 17568, 18336, 19848, 22152, 24496, 26416, 28336, 30576, 32856, 35160, 36696, 39232, 45352},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   156
  /* NPRB 062*/ { 1736, 2280, 2792, 3624, 4392, 5544, 6456, 7480, 8760, 9912, 11064, 12576, 14112, 15840, 17568, 19080, 19848, 22152, 24496, 26416, 29296, 31704, 34008, 35160, 37888, 39232, 45352},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   157
  /* NPRB 063*/ { 1736, 2280, 2856, 3624, 4584, 5544, 6456, 7736, 8760, 9912, 11064, 12576, 14112, 16416, 18336, 19080, 20616, 22920, 24496, 27376, 29296, 31704, 34008, 36696, 37888, 40576, 46888},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   158
  /* NPRB 064*/ { 1800, 2344, 2856, 3752, 4584, 5736, 6712, 7736, 9144, 10296, 11448, 12960, 14688, 16416, 18336, 19848, 20616, 22920, 25456, 27376, 29296, 31704, 34008, 36696, 39232, 40576, 46888},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   159
  /* NPRB 065*/ { 1800, 2344, 2856, 3752, 4584, 5736, 6712, 7992, 9144, 10296, 11448, 12960, 14688, 16992, 18336, 19848, 21384, 23688, 25456, 28336, 30576, 32856, 35160, 37888, 39232, 40576, 48936},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   160
  /* NPRB 066*/ { 1800, 2408, 2984, 3880, 4776, 5736, 6968, 7992, 9144, 10296, 11448, 13536, 15264, 16992, 19080, 20616, 21384, 23688, 26416, 28336, 30576, 32856, 35160, 37888, 40576, 42368, 48936},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   161
  /* NPRB 067*/ { 1864, 2472, 2984, 3880, 4776, 5992, 6968, 8248, 9528, 10680, 11832, 13536, 15264, 16992, 19080, 20616, 22152, 24496, 26416, 29296, 31704, 34008, 36696, 37888, 40576, 42368, 48936},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   162
  /* NPRB 068*/ { 1864, 2472, 3112, 4008, 4968, 5992, 6968, 8248, 9528, 10680, 11832, 13536, 15264, 17568, 19848, 20616, 22152, 24496, 27376, 29296, 31704, 34008, 36696, 39232, 42368, 43816, 51024},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   163
  /* NPRB 069*/ { 1928, 2536, 3112, 4008, 4968, 5992, 7224, 8504, 9528, 11064, 12216, 14112, 15840, 17568, 19848, 21384, 22152, 24496, 27376, 29296, 31704, 35160, 36696, 39232, 42368, 43816, 51024},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   164
  /* NPRB 070*/ { 1928, 2536, 3112, 4136, 4968, 6200, 7224, 8504, 9912, 11064, 12216, 14112, 15840, 18336, 19848, 21384, 22920, 25456, 27376, 30576, 32856, 35160, 37888, 40576, 42368, 43816, 52752},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   165
  /* NPRB 071*/ { 1992, 2600, 3240, 4136, 5160, 6200, 7480, 8760, 9912, 11064, 12576, 14112, 16416, 18336, 20616, 22152, 22920, 25456, 28336, 30576, 32856, 35160, 37888, 40576, 43816, 45352, 52752},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   166
  /* NPRB 072*/ { 1992, 2600, 3240, 4264, 5160, 6200, 7480, 8760, 9912, 11448, 12576, 14688, 16416, 18336, 20616, 22152, 23688, 26416, 28336, 30576, 34008, 36696, 39232, 40576, 43816, 45352, 52752},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   167
  /* NPRB 073*/ { 2024, 2664, 3240, 4264, 5160, 6456, 7736, 8760, 10296, 11448, 12960, 14688, 16416, 19080, 20616, 22152, 23688, 26416, 29296, 31704, 34008, 36696, 39232, 42368, 45352, 46888, 55056},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   168
  /* NPRB 074*/ { 2088, 2728, 3368, 4392, 5352, 6456, 7736, 9144, 10296, 11832, 12960, 14688, 16992, 19080, 21384, 22920, 24496, 26416, 29296, 31704, 34008, 36696, 40576, 42368, 45352, 46888, 55056},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   169
  /* NPRB 075*/ { 2088, 2728, 3368, 4392, 5352, 6712, 7736, 9144, 10680, 11832, 12960, 15264, 16992, 19080, 21384, 22920, 24496, 27376, 29296, 32856, 35160, 37888, 40576, 43816, 45352, 46888, 55056},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   170
  /* NPRB 076*/ { 2088, 2792, 3368, 4392, 5544, 6712, 7992, 9144, 10680, 11832, 13536, 15264, 17568, 19848, 22152, 23688, 24496, 27376, 30576, 32856, 35160, 37888, 40576, 43816, 46888, 48936, 55056},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   171
  /* NPRB 077*/ { 2152, 2792, 3496, 4584, 5544, 6712, 7992, 9528, 10680, 12216, 13536, 15840, 17568, 19848, 22152, 23688, 25456, 27376, 30576, 32856, 35160, 39232, 42368, 43816, 46888, 48936, 57336},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   172
  /* NPRB 078*/ { 2152, 2856, 3496, 4584, 5544, 6968, 8248, 9528, 11064, 12216, 13536, 15840, 17568, 19848, 22152, 23688, 25456, 28336, 30576, 34008, 36696, 39232, 42368, 45352, 46888, 48936, 57336},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   173
  /* NPRB 079*/ { 2216, 2856, 3496, 4584, 5736, 6968, 8248, 9528, 11064, 12576, 14112, 15840, 18336, 20616, 22920, 24496, 25456, 28336, 31704, 34008, 36696, 39232, 42368, 45352, 48936, 51024, 57336},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   174
  /* NPRB 080*/ { 2216, 2856, 3624, 4776, 5736, 6968, 8248, 9912, 11064, 12576, 14112, 16416, 18336, 20616, 22920, 24496, 26416, 29296, 31704, 34008, 36696, 40576, 43816, 45352, 48936, 51024, 59256},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   175
  /* NPRB 081*/ { 2280, 2984, 3624, 4776, 5736, 7224, 8504, 9912, 11448, 12960, 14112, 16416, 18336, 20616, 22920, 24496, 26416, 29296, 31704, 35160, 37888, 40576, 43816, 46888, 48936, 51024, 59256},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   176
  /* NPRB 082*/ { 2280, 2984, 3624, 4776, 5992, 7224, 8504, 9912, 11448, 12960, 14688, 16416, 19080, 21384, 23688, 25456, 26416, 29296, 32856, 35160, 37888, 40576, 43816, 46888, 51024, 52752, 59256},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   177
  /* NPRB 083*/ { 2280, 2984, 3752, 4776, 5992, 7224, 8760, 10296, 11448, 12960, 14688, 16992, 19080, 21384, 23688, 25456, 27376, 30576, 32856, 35160, 39232, 42368, 45352, 46888, 51024, 52752, 61664},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   178
  /* NPRB 084*/ { 2344, 3112, 3752, 4968, 5992, 7480, 8760, 10296, 11832, 13536, 14688, 16992, 19080, 21384, 24496, 25456, 27376, 30576, 32856, 36696, 39232, 42368, 45352, 48936, 51024, 52752, 61664},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   179
  /* NPRB 085*/ { 2344, 3112, 3880, 4968, 5992, 7480, 8760, 10296, 11832, 13536, 14688, 16992, 19080, 22152, 24496, 26416, 27376, 30576, 34008, 36696, 39232, 42368, 45352, 48936, 52752, 55056, 61664},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   180
  /* NPRB 086*/ { 2408, 3112, 3880, 4968, 6200, 7480, 9144, 10680, 12216, 13536, 15264, 17568, 19848, 22152, 24496, 26416, 28336, 30576, 34008, 36696, 40576, 43816, 46888, 48936, 52752, 55056, 63776},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   181
  /* NPRB 087*/ { 2408, 3240, 3880, 5160, 6200, 7736, 9144, 10680, 12216, 13536, 15264, 17568, 19848, 22152, 25456, 26416, 28336, 31704, 34008, 37888, 40576, 43816, 46888, 51024, 52752, 55056, 63776},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   182
  /* NPRB 088*/ { 2472, 3240, 4008, 5160, 6200, 7736, 9144, 10680, 12216, 14112, 15264, 17568, 19848, 22920, 25456, 27376, 28336, 31704, 35160, 37888, 40576, 43816, 46888, 51024, 52752, 55056, 63776},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   183
  /* NPRB 089*/ { 2472, 3240, 4008, 5160, 6456, 7736, 9144, 11064, 12576, 14112, 15840, 18336, 20616, 22920, 25456, 27376, 29296, 31704, 35160, 37888, 42368, 45352, 48936, 51024, 55056, 57336, 66592},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   184
  /* NPRB 090*/ { 2536, 3240, 4008, 5352, 6456, 7992, 9528, 11064, 12576, 14112, 15840, 18336, 20616, 22920, 25456, 27376, 29296, 32856, 35160, 39232, 42368, 45352, 48936, 51024, 55056, 57336, 66592},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   185
  /* NPRB 091*/ { 2536, 3368, 4136, 5352, 6456, 7992, 9528, 11064, 12576, 14112, 15840, 18336, 20616, 23688, 26416, 28336, 29296, 32856, 36696, 39232, 42368, 45352, 48936, 52752, 55056, 57336, 66592},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   186
  /* NPRB 092*/ { 2536, 3368, 4136, 5352, 6456, 7992, 9528, 11448, 12960, 14688, 16416, 18336, 21384, 23688, 26416, 28336, 30576, 32856, 36696, 39232, 42368, 46888, 48936, 52752, 57336, 59256, 68808},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   187
  /* NPRB 093*/ { 2600, 3368, 4136, 5352, 6712, 8248, 9528, 11448, 12960, 14688, 16416, 19080, 21384, 23688, 26416, 28336, 30576, 34008, 36696, 40576, 43816, 46888, 51024, 52752, 57336, 59256, 68808},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   188
  /* NPRB 094*/ { 2600, 3496, 4264, 5544, 6712, 8248, 9912, 11448, 12960, 14688, 16416, 19080, 21384, 24496, 27376, 29296, 30576, 34008, 37888, 40576, 43816, 46888, 51024, 55056, 57336, 59256, 68808},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   189
  /* NPRB 095*/ { 2664, 3496, 4264, 5544, 6712, 8248, 9912, 11448, 13536, 15264, 16992, 19080, 21384, 24496, 27376, 29296, 30576, 34008, 37888, 40576, 43816, 46888, 51024, 55056, 57336, 61664, 71112},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   190
  /* NPRB 096*/ { 2664, 3496, 4264, 5544, 6968, 8504, 9912, 11832, 13536, 15264, 16992, 19080, 22152, 24496, 27376, 29296, 31704, 35160, 37888, 40576, 45352, 48936, 51024, 55056, 59256, 61664, 71112},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   191
  /* NPRB 097*/ { 2728, 3496, 4392, 5736, 6968, 8504, 10296, 11832, 13536, 15264, 16992, 19848, 22152, 25456, 28336, 29296, 31704, 35160, 37888, 42368, 45352, 48936, 52752, 55056, 59256, 61664, 71112},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   192
  /* NPRB 098*/ { 2728, 3624, 4392, 5736, 6968, 8760, 10296, 11832, 13536, 15264, 16992, 19848, 22152, 25456, 28336, 30576, 31704, 35160, 39232, 42368, 45352, 48936, 52752, 57336, 59256, 61664, 73712},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   193
  /* NPRB 099*/ { 2728, 3624, 4392, 5736, 6968, 8760, 10296, 12216, 14112, 15840, 17568, 19848, 22920, 25456, 28336, 30576, 31704, 35160, 39232, 42368, 46888, 48936, 52752, 57336, 61664, 63776, 73712},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   194
  /* NPRB 100*/ { 2792, 3624, 4584, 5736, 7224, 8760, 10296, 12216, 14112, 15840, 17568, 19848, 22920, 25456, 28336, 30576, 32856, 36696, 39232, 43816, 46888, 51024, 55056, 57336, 61664, 63776, 75376},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   195
  /* NPRB 101*/ { 2792, 3752, 4584, 5992, 7224, 8760, 10680, 12216, 14112, 15840, 17568, 20616, 22920, 26416, 29296, 30576, 32856, 36696, 40576, 43816, 46888, 51024, 55056, 57336, 61664, 63776, 75376},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   196
  /* NPRB 102*/ { 2856, 3752, 4584, 5992, 7224, 9144, 10680, 12576, 14112, 16416, 18336, 20616, 23688, 26416, 29296, 31704, 32856, 36696, 40576, 43816, 46888, 51024, 55056, 59256, 61664, 63776, 75376},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   197
  /* NPRB 103*/ { 2856, 3752, 4584, 5992, 7480, 9144, 10680, 12576, 14688, 16416, 18336, 20616, 23688, 26416, 29296, 31704, 34008, 36696, 40576, 43816, 48936, 51024, 55056, 59256, 63776, 66592, 75376},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   198
  /* NPRB 104*/ { 2856, 3752, 4584, 5992, 7480, 9144, 10680, 12576, 14688, 16416, 18336, 21384, 23688, 26416, 29296, 31704, 34008, 37888, 40576, 45352, 48936, 52752, 57336, 59256, 63776, 66592, 75376},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   199
  /* NPRB 105*/ { 2984, 3880, 4776, 6200, 7480, 9144, 11064, 12960, 14688, 16416, 18336, 21384, 23688, 27376, 30576, 31704, 34008, 37888, 42368, 45352, 48936, 52752, 57336, 59256, 63776, 66592, 75376},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   200
  /* NPRB 106*/ { 2984, 3880, 4776, 6200, 7480, 9528, 11064, 12960, 14688, 16992, 18336, 21384, 24496, 27376, 30576, 32856, 34008, 37888, 42368, 45352, 48936, 52752, 57336, 61664, 63776, 66592, 75376},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   201
  /* NPRB 107*/ { 2984, 3880, 4776, 6200, 7736, 9528, 11064, 12960, 15264, 16992, 19080, 21384, 24496, 27376, 30576, 32856, 35160, 39232, 42368, 46888, 48936, 52752, 57336, 61664, 66592, 68808, 75376},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   202
  /* NPRB 108*/ { 2984, 4008, 4776, 6200, 7736, 9528, 11448, 12960, 15264, 16992, 19080, 22152, 24496, 27376, 30576, 32856, 35160, 39232, 42368, 46888, 51024, 55056, 59256, 61664, 66592, 68808, 75376},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   203
  /* NPRB 109*/ { 2984, 4008, 4968, 6456, 7736, 9528, 11448, 13536, 15264, 16992, 19080, 22152, 24496, 28336, 31704, 34008, 35160, 39232, 43816, 46888, 51024, 55056, 59256, 61664, 66592, 68808, 75376},
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   204
  /* NPRB 110*/ { 3112, 4008, 4968, 6456, 7992, 9528, 11448, 13536, 15264, 17568, 19080, 22152, 25456, 28336, 31704, 34008, 35160, 39232, 43816, 46888, 51024, 55056, 59256, 63776, 66592, 71112, 75376}
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   205
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   206
};
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   207
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   208
8515
245c032fb764 Convert LteAmc to Object and add BER parameter
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8253
diff changeset
   209
LteAmc::LteAmc ()
245c032fb764 Convert LteAmc to Object and add BER parameter
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8253
diff changeset
   210
{
245c032fb764 Convert LteAmc to Object and add BER parameter
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8253
diff changeset
   211
}
245c032fb764 Convert LteAmc to Object and add BER parameter
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8253
diff changeset
   212
245c032fb764 Convert LteAmc to Object and add BER parameter
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8253
diff changeset
   213
245c032fb764 Convert LteAmc to Object and add BER parameter
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8253
diff changeset
   214
LteAmc::~LteAmc ()
8526
3530c874134f Update tests for error model
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8520
diff changeset
   215
{ 
8515
245c032fb764 Convert LteAmc to Object and add BER parameter
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8253
diff changeset
   216
}
245c032fb764 Convert LteAmc to Object and add BER parameter
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8253
diff changeset
   217
245c032fb764 Convert LteAmc to Object and add BER parameter
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8253
diff changeset
   218
TypeId
245c032fb764 Convert LteAmc to Object and add BER parameter
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8253
diff changeset
   219
LteAmc::GetTypeId (void)
245c032fb764 Convert LteAmc to Object and add BER parameter
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8253
diff changeset
   220
{
245c032fb764 Convert LteAmc to Object and add BER parameter
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8253
diff changeset
   221
  static TypeId tid = TypeId ("ns3::LteAmc")
245c032fb764 Convert LteAmc to Object and add BER parameter
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8253
diff changeset
   222
  .SetParent<Object> ()
245c032fb764 Convert LteAmc to Object and add BER parameter
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8253
diff changeset
   223
  .AddConstructor<LteAmc> ()
245c032fb764 Convert LteAmc to Object and add BER parameter
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8253
diff changeset
   224
  .AddAttribute ("Ber",
8518
39dd7d4a0161 Fix BER in LteAmc::CreateCqiFeedbacks
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8515
diff changeset
   225
                 "The requested BER in assigning MCS (default is 0.00005).",
8648
b73a8905c1eb Remove LteAmc::Ber parameter from LteAmc::MiErrorModel for avoiding misunderstanding
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8646
diff changeset
   226
                 DoubleValue (0.00005),
8515
245c032fb764 Convert LteAmc to Object and add BER parameter
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8253
diff changeset
   227
                 MakeDoubleAccessor (&LteAmc::m_ber),
8644
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   228
                 MakeDoubleChecker<double> ())
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   229
  .AddAttribute ("AmcModel",
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   230
                "AMC model used to assign CQI",
8646
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   231
                 EnumValue (LteAmc::MiErrorModel),
8644
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   232
                 MakeEnumAccessor (&LteAmc::m_amcModel),
8646
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   233
                 MakeEnumChecker (LteAmc::MiErrorModel, "Vienna",
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   234
                                  LteAmc::PiroEW2010, "PiroEW2010"));
8515
245c032fb764 Convert LteAmc to Object and add BER parameter
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8253
diff changeset
   235
  return tid;
245c032fb764 Convert LteAmc to Object and add BER parameter
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8253
diff changeset
   236
}
245c032fb764 Convert LteAmc to Object and add BER parameter
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8253
diff changeset
   237
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   238
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   239
int
7887
78911c978517 renamed several LTE files and classes
CTTC
parents: 7886
diff changeset
   240
LteAmc::GetCqiFromSpectralEfficiency (double s)
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   241
{
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   242
  NS_LOG_FUNCTION (s);
8148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8120
diff changeset
   243
  NS_ASSERT_MSG (s >= 0.0, "negative spectral efficiency = " << s);
8052
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
   244
  int cqi = 0;
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
   245
  while ((cqi < 15) && (SpectralEfficiencyForCqi[cqi + 1] < s))
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   246
    {
8052
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
   247
      ++cqi;
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   248
    }
8599
9e63da130464 proper use of log macros in lte-amc.cc
Nicola Baldo <nbaldo@cttc.es>
parents: 8587
diff changeset
   249
  NS_LOG_LOGIC ("cqi = " << cqi);
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   250
  return cqi;
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   251
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   252
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   253
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   254
int
7887
78911c978517 renamed several LTE files and classes
CTTC
parents: 7886
diff changeset
   255
LteAmc::GetMcsFromCqi (int cqi)
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   256
{
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   257
  NS_LOG_FUNCTION (cqi);
8587
27e83197af97 Add lack assert tests on vectors in LteAmc
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8526
diff changeset
   258
  NS_ASSERT_MSG (cqi >= 0 && cqi <= 15, "CQI must be in [0..15] = " << cqi);
8052
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
   259
  double spectralEfficiency = SpectralEfficiencyForCqi[cqi];
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
   260
  int mcs = 0;
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
   261
  while ((mcs < 28) && (SpectralEfficiencyForMcs[mcs + 1] <= spectralEfficiency))
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   262
    {
8052
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
   263
      ++mcs;
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   264
    }
8599
9e63da130464 proper use of log macros in lte-amc.cc
Nicola Baldo <nbaldo@cttc.es>
parents: 8587
diff changeset
   265
  NS_LOG_LOGIC ("mcs = " << mcs);
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   266
  return mcs;
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   267
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   268
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   269
int
7887
78911c978517 renamed several LTE files and classes
CTTC
parents: 7886
diff changeset
   270
LteAmc::GetTbSizeFromMcs (int mcs, int nprb)
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   271
{
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   272
  NS_LOG_FUNCTION (mcs);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   273
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   274
  NS_ASSERT_MSG (mcs < 29, "MCS=" << mcs);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   275
  NS_ASSERT_MSG (nprb < 111, "NPRB=" << nprb);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   276
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   277
  int itbs = McsToItbs[mcs];
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   278
  return (TransportBlockSizeTable[nprb - 1][itbs]);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   279
}
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   280
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   281
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   282
double
7887
78911c978517 renamed several LTE files and classes
CTTC
parents: 7886
diff changeset
   283
LteAmc::GetSpectralEfficiencyFromCqi (int cqi)
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   284
{
8599
9e63da130464 proper use of log macros in lte-amc.cc
Nicola Baldo <nbaldo@cttc.es>
parents: 8587
diff changeset
   285
  NS_LOG_FUNCTION (cqi);
8587
27e83197af97 Add lack assert tests on vectors in LteAmc
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8526
diff changeset
   286
  NS_ASSERT_MSG (cqi >= 0 && cqi <= 15, "CQI must be in [0..15] = " << cqi);
8599
9e63da130464 proper use of log macros in lte-amc.cc
Nicola Baldo <nbaldo@cttc.es>
parents: 8587
diff changeset
   287
  NS_LOG_LOGIC ("Spectral efficiency = " << SpectralEfficiencyForCqi[cqi]);
8052
42434ab74056 fixed some bugs in AMC module
Nicola Baldo <nbaldo@cttc.es>
parents: 8018
diff changeset
   288
  return SpectralEfficiencyForCqi[cqi];
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   289
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   290
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   291
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   292
std::vector<int>
8644
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   293
LteAmc::CreateCqiFeedbacks (const SpectrumValue& sinr, uint8_t rbgSize)
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   294
{
8599
9e63da130464 proper use of log macros in lte-amc.cc
Nicola Baldo <nbaldo@cttc.es>
parents: 8587
diff changeset
   295
  NS_LOG_FUNCTION (this);
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   296
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   297
  std::vector<int> cqi;
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   298
  Values::const_iterator it;
8644
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   299
  
8646
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   300
  if (m_amcModel == PiroEW2010)
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   301
    {
8644
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   302
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   303
      for (it = sinr.ConstValuesBegin (); it != sinr.ConstValuesEnd (); it++)
8018
165fd3c6c977 LENA-93 DL CQI averaged over active RBs only from AMC module
Marco Miozzo <marco.miozzo@cttc.es>
parents: 7887
diff changeset
   304
        {
8644
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   305
          double sinr_ = (*it);
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   306
          if (sinr_ == 0.0)
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   307
            {
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   308
              cqi.push_back (-1); // SINR == 0 (linear units) means no signal in this RB
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   309
            }
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   310
          else
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   311
            {
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   312
              /*
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   313
              * Compute the spectral efficiency from the SINR
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   314
              *                                        SINR
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   315
              * spectralEfficiency = log2 (1 + -------------------- )
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   316
              *                                    -ln(5*BER)/1.5
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   317
              * NB: SINR must be expressed in linear units
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   318
              */
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   319
9063
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 8781
diff changeset
   320
              double s = log2 ( 1 + ( sinr_ / ( (-std::log (5.0 * m_ber )) / 1.5) ));
8644
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   321
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   322
              int cqi_ = GetCqiFromSpectralEfficiency (s);
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   323
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   324
              NS_LOG_LOGIC (" PRB =" << cqi.size ()
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   325
                                    << ", sinr = " << sinr_
9063
32755d0516f4 Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents: 8781
diff changeset
   326
                                    << " (=" << 10 * std::log10 (sinr_) << " dB)"
8644
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   327
                                    << ", spectral efficiency =" << s
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   328
                                    << ", CQI = " << cqi_ << ", BER = " << m_ber);
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   329
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   330
              cqi.push_back (cqi_);
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   331
            }
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   332
        }
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   333
    }
8646
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   334
  else if (m_amcModel == MiErrorModel)
8644
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   335
    {
8646
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   336
      NS_LOG_DEBUG (this << " AMC-VIENNA RBG size " << (uint16_t)rbgSize);
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   337
      NS_ASSERT_MSG (rbgSize > 0, " LteAmc-Vienna: RBG size must be greater than 0");
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   338
      std::vector <int> rbgMap;
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   339
      int rbId = 0;
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   340
      for (it = sinr.ConstValuesBegin (); it != sinr.ConstValuesEnd (); it++)
8644
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   341
      {
8646
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   342
        rbgMap.push_back (rbId++);
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   343
        if ((rbId % rbgSize == 0)||((it+1)==sinr.ConstValuesEnd ()))
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   344
         {
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   345
            uint8_t mcs = 0;
9353
41d2e7b4ff68 Update LteMiErrorModel with BLER curves for HARQ retx ( MCS0 rv2 and rv3 still lacks)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8781
diff changeset
   346
            TbStats_t tbStats;
9638
50fa71b511ed Bug-fix in LteAmc::CreateCqiFeedbacks Vienna model and correspondent update of the RR and PF scheduler tests
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9353
diff changeset
   347
            while (mcs <= 28)
8646
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   348
              {
9353
41d2e7b4ff68 Update LteMiErrorModel with BLER curves for HARQ retx ( MCS0 rv2 and rv3 still lacks)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8781
diff changeset
   349
                HarqProcessInfoList_t harqInfoList;
41d2e7b4ff68 Update LteMiErrorModel with BLER curves for HARQ retx ( MCS0 rv2 and rv3 still lacks)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8781
diff changeset
   350
                tbStats = LteMiErrorModel::GetTbDecodificationStats (sinr, rbgMap, (uint16_t)GetTbSizeFromMcs (mcs, rbgSize) / 8, mcs, harqInfoList);
41d2e7b4ff68 Update LteMiErrorModel with BLER curves for HARQ retx ( MCS0 rv2 and rv3 still lacks)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8781
diff changeset
   351
                if (tbStats.tbler > 0.1)
41d2e7b4ff68 Update LteMiErrorModel with BLER curves for HARQ retx ( MCS0 rv2 and rv3 still lacks)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8781
diff changeset
   352
                  {
41d2e7b4ff68 Update LteMiErrorModel with BLER curves for HARQ retx ( MCS0 rv2 and rv3 still lacks)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8781
diff changeset
   353
                    break;
41d2e7b4ff68 Update LteMiErrorModel with BLER curves for HARQ retx ( MCS0 rv2 and rv3 still lacks)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8781
diff changeset
   354
                  }
8646
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   355
                mcs++;
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   356
                
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   357
              }
9638
50fa71b511ed Bug-fix in LteAmc::CreateCqiFeedbacks Vienna model and correspondent update of the RR and PF scheduler tests
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9353
diff changeset
   358
            if (mcs > 0)
50fa71b511ed Bug-fix in LteAmc::CreateCqiFeedbacks Vienna model and correspondent update of the RR and PF scheduler tests
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9353
diff changeset
   359
              {
50fa71b511ed Bug-fix in LteAmc::CreateCqiFeedbacks Vienna model and correspondent update of the RR and PF scheduler tests
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9353
diff changeset
   360
                mcs--;
50fa71b511ed Bug-fix in LteAmc::CreateCqiFeedbacks Vienna model and correspondent update of the RR and PF scheduler tests
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9353
diff changeset
   361
              }
9353
41d2e7b4ff68 Update LteMiErrorModel with BLER curves for HARQ retx ( MCS0 rv2 and rv3 still lacks)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8781
diff changeset
   362
            NS_LOG_DEBUG (this << "\t RBG " << rbId << " MCS " << (uint16_t)mcs << " TBLER " << tbStats.tbler);
8646
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   363
            int rbgCqi = 0;
9353
41d2e7b4ff68 Update LteMiErrorModel with BLER curves for HARQ retx ( MCS0 rv2 and rv3 still lacks)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8781
diff changeset
   364
            if ((tbStats.tbler > 0.1)&&(mcs==0))
8646
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   365
              {
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   366
                rbgCqi = 0; // any MCS can guarantee the 10 % of BER
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   367
              }
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   368
            else if (mcs == 28)
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   369
              {
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   370
                rbgCqi = 15; // all MCSs can guarantee the 10 % of BER
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   371
              }
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   372
            else
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   373
              {
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   374
                double s = SpectralEfficiencyForMcs[mcs];
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   375
                rbgCqi = 0;
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   376
                while ((rbgCqi < 15) && (SpectralEfficiencyForCqi[rbgCqi + 1] < s))
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   377
                {
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   378
                  ++rbgCqi;
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   379
                }
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   380
              }
9638
50fa71b511ed Bug-fix in LteAmc::CreateCqiFeedbacks Vienna model and correspondent update of the RR and PF scheduler tests
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9353
diff changeset
   381
            NS_LOG_DEBUG (this << "\t MCS " << (uint16_t)mcs << "-> CQI " << rbgCqi);
8646
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   382
            // fill the cqi vector (per RB basis)
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   383
            for (uint8_t j = 0; j < rbgSize; j++)
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   384
              {
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   385
                cqi.push_back (rbgCqi);
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   386
              }
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   387
            rbgMap.clear ();
4b341d8f2f61 Add new UE CQI Measurement and AMC module based on LteMiErrorModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8645
diff changeset
   388
         }
8644
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   389
        
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   390
      }
83faaf37b22c Add missing files of Hybrid and Simple BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8599
diff changeset
   391
      
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   392
    }
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   393
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   394
  return cqi;
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   395
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   396
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   397
} // namespace ns3