Update PEM model with new BLER curves based on standard ECR
@@ -27,9 +27,6 @@ IMAGES_DIA = \
|
||||
# specify eps figures from which .png and .pdf figures need to be built
|
||||
|
||||
IMAGES_EPS = \
|
||||
$(FIGURES)/MCS_2_test.eps \
|
||||
$(FIGURES)/MCS_12_test.eps \
|
||||
$(FIGURES)/MCS_14_test.eps \
|
||||
$(FIGURES)/lena-dual-stripe.eps \
|
||||
$(FIGURES)/lte-mcs-index.eps \
|
||||
$(FIGURES)/lenaThrTestCase1.eps \
|
||||
@@ -96,8 +93,15 @@ IMAGES_NOBUILD = $(FIGURES)/fading_pedestrian.png \
|
||||
$(FIGURES)/MCS_17_20.png \
|
||||
$(FIGURES)/MCS_21_24.pdf \
|
||||
$(FIGURES)/MCS_21_24.png \
|
||||
$(FIGURES)/MCS_25_27.pdf \
|
||||
$(FIGURES)/MCS_25_27.png \
|
||||
$(FIGURES)/MCS_25_28.pdf \
|
||||
$(FIGURES)/MCS_29_29.pdf \
|
||||
$(FIGURES)/MCS_29_29.png \
|
||||
$(FIGURES)/MCS_2_test.png \
|
||||
$(FIGURES)/MCS_2_test.pdf \
|
||||
$(FIGURES)/MCS_12_test.png \
|
||||
$(FIGURES)/MCS_12_test.pdf \
|
||||
$(FIGURES)/MCS_16_test.png \
|
||||
$(FIGURES)/MCS_16_test.pdf \
|
||||
$(FIGURES)/lte-phy-interference.png \
|
||||
$(FIGURES)/lte-phy-interference.pdf \
|
||||
$(FIGURES)/helpers.png \
|
||||
|
||||
BIN
src/lte/doc/source/figures/MCS_12_test.pdf
Normal file
BIN
src/lte/doc/source/figures/MCS_12_test.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
src/lte/doc/source/figures/MCS_16_test.pdf
Normal file
BIN
src/lte/doc/source/figures/MCS_16_test.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 44 KiB |
BIN
src/lte/doc/source/figures/MCS_25_28.pdf
Normal file
BIN
src/lte/doc/source/figures/MCS_25_28.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
src/lte/doc/source/figures/MCS_29_29.pdf
Normal file
BIN
src/lte/doc/source/figures/MCS_29_29.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
src/lte/doc/source/figures/MCS_2_test.pdf
Normal file
BIN
src/lte/doc/source/figures/MCS_2_test.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 839 KiB |
@@ -1255,15 +1255,26 @@ The BLER perfomance of all MCS obtained with the link level simulator are plotte
|
||||
|
||||
BLER for MCS 21, 22, 23 and 24.
|
||||
|
||||
.. _fig-mcs-25-27-ber:
|
||||
|
||||
.. figure:: figures/MCS_25_27.*
|
||||
.. _fig-mcs-25-28-ber:
|
||||
|
||||
.. figure:: figures/MCS_25_28.*
|
||||
:width: 900px
|
||||
:align: center
|
||||
:height: 700px
|
||||
|
||||
|
||||
BLER for MCS 25, 26 and 27.
|
||||
BLER for MCS 25, 26, 27 and 28.
|
||||
|
||||
.. _fig-mcs-29-29-ber:
|
||||
|
||||
.. figure:: figures/MCS_29_29.*
|
||||
:width: 900px
|
||||
:align: center
|
||||
:height: 700px
|
||||
|
||||
|
||||
BLER for MCS 29.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -372,14 +372,12 @@ The test suite ``lte-phy-error-model`` generates nine test cases with single eNB
|
||||
|
||||
The parameters of the nine test cases are reported in the following:
|
||||
|
||||
#. 4 UEs placed 898 meters far from the eNB, which implies the use of MCS 2 (SINR of -2.21 dB) and a TB of 176 bits, that in turns produce a BER of 0.19 (see point A in figure :ref:`fig-mcs-2-test`).
|
||||
#. 3 UEs placed 900 meters far from the eNB, which implies the use of MCS 2 (SINR of -2.25 dB) and a TB of 328 bits, that in turns produce a BER of 0.09 (see point B in figure :ref:`fig-mcs-2-test`).
|
||||
#. 2 UEs placed 920 meters far from the eNB, which implies the use of MCS 2 (SINR of -2.61 dB) and a TB of 72 bits, that in turns produce a BER of 0.123 (see point D in figure :ref:`fig-mcs-2-test`).
|
||||
#. 1 UE placed 930 meters far from the eNB, which implies the use of MCS 2 (SINR of -2.79 dB) and a TB of 72 bits, that in turns produce a BER of 0.9 (see point D in figure :ref:`fig-mcs-2-test`).
|
||||
#. 1 UE placed 538 meters far from the eNB, which implies the use of MCS 12 (SINR of 4.19 dB) and a TB of 4776 bits, that in turns produce a BER of 0.017 (see point E in figure :ref:`fig-mcs-12-test`).
|
||||
#. 3 UEs placed 538 meters far from the eNB, which implies the use of MCS 12 (SINR of 4.19 dB) and a TB of 1608 bits, that in turns produce a BER of 0.23 (see point F in figure :ref:`fig-mcs-12-test`).
|
||||
#. 7 UEs placed 538 meters far from the eNB, which implies the use of MCS 12 (SINR of 4.19 dB) and a TB of 376 bits, that in turns produce a BER of 0.72 (see point G in figure :ref:`fig-mcs-12-test`).
|
||||
#. 1 UE placed 500 meters far from the eNB, which implies the use of MCS 14 (SINR of 5.53 dB) and a TB of 6248 bits (segmented in 2 CBs of 3136 bits each one), that in turns produce a BER of 0.18, since each CB has CBLER equal to 0.096 (see point H in figure :ref:`fig-mcs-14-test`).
|
||||
#. 4 UEs placed 1800 meters far from the eNB, which implies the use of MCS 2 (SINR of -5.51 dB) and a TB of 256 bits, that in turns produce a BER of 0.33 (see point A in figure :ref:`fig-mcs-2-test`).
|
||||
#. 2 UEs placed 1800 meters far from the eNB, which implies the use of MCS 2 (SINR of -5.51 dB) and a TB of 528 bits, that in turns produce a BER of 0.11 (see point B in figure :ref:`fig-mcs-2-test`).
|
||||
#. 1 UE placed 1800 meters far from the eNB, which implies the use of MCS 2 (SINR of -5.51 dB) and a TB of 1088 bits, that in turns produce a BER of 0.02 (see point C in figure :ref:`fig-mcs-2-test`).
|
||||
#. 1 UE placed 600 meters far from the eNB, which implies the use of MCS 12 (SINR of 4.43 dB) and a TB of 4800 bits, that in turns produce a BER of 0.3 (see point D in figure :ref:`fig-mcs-12-test`).
|
||||
#. 3 UEs placed 600 meters far from the eNB, which implies the use of MCS 12 (SINR of 4.43 dB) and a TB of 1632 bits, that in turns produce a BER of 0.55 (see point E in figure :ref:`fig-mcs-12-test`).
|
||||
#. 1 UE placed 470 meters far from the eNB, which implies the use of MCS 16 (SINR of 8.48 dB) and a TB of 7272 bits (segmented in 2 CBs of 3648 and 3584 bits), that in turns produce a BER of 0.14, since each CB has CBLER equal to 0.075 (see point F in figure :ref:`fig-mcs-14-test`).
|
||||
|
||||
|
||||
.. _fig-mcs-2-test:
|
||||
@@ -388,21 +386,21 @@ The parameters of the nine test cases are reported in the following:
|
||||
:align: center
|
||||
|
||||
|
||||
BLER for tests 1, 2, 3, 4.
|
||||
BLER for tests 1, 2, 3.
|
||||
|
||||
.. _fig-mcs-12-test:
|
||||
|
||||
.. figure:: figures/MCS_12_test.*
|
||||
:align: center
|
||||
|
||||
BLER for tests 5, 6, 7.
|
||||
BLER for tests 4, 5.
|
||||
|
||||
.. _fig-mcs-14-test:
|
||||
|
||||
.. figure:: figures/MCS_14_test.*
|
||||
.. figure:: figures/MCS_16_test.*
|
||||
:align: center
|
||||
|
||||
BLER for test 8.
|
||||
BLER for test 6.
|
||||
|
||||
|
||||
The test verifies that in each case the expected number of packets received correct corresponds to a Bernoulli distribution with a confidence interval of 95%, where the probability of success in each trail is :math:`1-BER` and :math:`n` is the total number of packet sent.
|
||||
|
||||
@@ -44,9 +44,9 @@
|
||||
|
||||
namespace ns3 {
|
||||
|
||||
const uint16_t MI_MAP_QPSK_SIZE = 411;
|
||||
const uint16_t MI_MAP_16QAM_SIZE = 601;
|
||||
const uint16_t MI_MAP_64QAM_SIZE = 676;
|
||||
const uint16_t MI_MAP_QPSK_SIZE = 766;
|
||||
const uint16_t MI_MAP_16QAM_SIZE = 843;
|
||||
const uint16_t MI_MAP_64QAM_SIZE = 725;
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -58,22 +58,19 @@ LenaTestPhyErrorModelrSuite::LenaTestPhyErrorModelrSuite ()
|
||||
{
|
||||
NS_LOG_INFO ("creating LenaTestPhyErrorModelTestCase");
|
||||
|
||||
// MCS 2 TB size of 256 bits BER 0.19 SINR -2.21
|
||||
AddTestCase (new LenaPhyErrorModelTestCase (4, 898, 32, 0.19, 25));
|
||||
// MCS 2 TB size of 328 bits BER 0.09 SINR -2.25
|
||||
AddTestCase (new LenaPhyErrorModelTestCase (3, 900, 41, 0.09, 18));
|
||||
// MCS 2 TB size of 520 bits BER 0.123 SINR -2.61
|
||||
AddTestCase (new LenaPhyErrorModelTestCase (2, 920, 65, 0.123, 21));
|
||||
// MCS 2 TB size of 1080 bits BER 0.097 SINR -2.79
|
||||
AddTestCase (new LenaPhyErrorModelTestCase (1, 930, 135, 0.097, 19));
|
||||
// MCS 12 TB size of 4776 bits BER 0.017 SINR 6.22
|
||||
AddTestCase (new LenaPhyErrorModelTestCase (1, 538, 597, 0.017, 8));
|
||||
// MCS 12 TB size of 1608 bits BER 0.23 SINR 6.22
|
||||
AddTestCase (new LenaPhyErrorModelTestCase (3, 538, 201, 0.23, 26));
|
||||
// MCS 12 TB size of 376 bits BER 0.72 SINR 6.22
|
||||
AddTestCase (new LenaPhyErrorModelTestCase (7,538, 47, 0.72, 28));
|
||||
// MCS 14 TB size of 6248 bits (3136 x 2) BER 0.18 (0.096 x 2) SINR 5.53
|
||||
AddTestCase (new LenaPhyErrorModelTestCase (1, 500, 781, 0.18, 24));
|
||||
// MCS 2 TB size of 256 bits BER 0.33 SINR -5.51
|
||||
AddTestCase (new LenaPhyErrorModelTestCase (4, 1800, 32, 0.33, 29));
|
||||
// MCS 2 TB size of 528 bits BER 0.11 SINR -5.51
|
||||
AddTestCase (new LenaPhyErrorModelTestCase (2, 1800, 66, 0.11, 20));
|
||||
// MCS 2 TB size of 1088 bits BER 0.02 SINR -5.51
|
||||
AddTestCase (new LenaPhyErrorModelTestCase (1, 1800, 136, 0.02, 9));
|
||||
// MCS 12 TB size of 4800 bits BER 0.3 SINR 4.43
|
||||
AddTestCase (new LenaPhyErrorModelTestCase (1, 600, 600, 0.3, 29));
|
||||
// MCS 12 TB size of 1632 bits BER 0.55 SINR 4.43
|
||||
AddTestCase (new LenaPhyErrorModelTestCase (3, 600, 204, 0.55, 31));
|
||||
// MCS 16 TB size of 7272 bits (3648 x 3584) BER 0.14 SINR 8.48
|
||||
// BER 0.14 = 1 - ((1-0.075)*(1-0.075))
|
||||
AddTestCase (new LenaPhyErrorModelTestCase (1, 470, 781, 0.14, 22));
|
||||
|
||||
|
||||
|
||||
@@ -107,7 +104,7 @@ void
|
||||
LenaPhyErrorModelTestCase::DoRun (void)
|
||||
{
|
||||
|
||||
double ber = 0.01;
|
||||
double ber = 0.03;
|
||||
Config::SetDefault ("ns3::LteAmc::Ber", DoubleValue (ber));
|
||||
Config::SetDefault ("ns3::LteAmc::AmcModel", EnumValue (LteAmc::PiroEW2010));
|
||||
Config::SetDefault ("ns3::LteSpectrumPhy::PemEnabled", BooleanValue (true));
|
||||
@@ -153,6 +150,7 @@ LenaPhyErrorModelTestCase::DoRun (void)
|
||||
// LogComponentEnable ("LteAmc", LOG_LEVEL_ALL);
|
||||
//
|
||||
LogComponentDisableAll (LOG_LEVEL_ALL);
|
||||
|
||||
LogComponentEnable ("LenaTestPhyErrorModel", LOG_LEVEL_ALL);
|
||||
|
||||
|
||||
@@ -242,7 +240,7 @@ LenaPhyErrorModelTestCase::DoRun (void)
|
||||
double txed = rlcStats->GetDlTxData (imsi, lcId);
|
||||
int n = txed / m_tbSize;
|
||||
int lambda = (double)dlDataRxed.at (i) / m_tbSize;
|
||||
double ber = 2.0 - ((double)dlDataRxed.at (i)/txed);
|
||||
double ber = 1.0 - ((double)dlDataRxed.at (i)/txed);
|
||||
double np = n-n*m_berRef;
|
||||
NS_LOG_INFO ("\tUser " << i << " imsi " << imsi << " bytes rxed " << (double)dlDataRxed.at (i) << " txed " << txed << " BER " << ber << " Err " << fabs (m_berRef - ber) << " lambda " << lambda << " np " << np << " difference " << abs(lambda - np) << " quantile " << m_bernQuantile);
|
||||
// the quantiles are evaluated offline according to a Bernoulli
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
% related to phy error model test
|
||||
|
||||
n = 1000;
|
||||
p_vect = [0.19 0.09 0.123 0.097 0.017 0.23 0.72 0.18];
|
||||
p_vect = [0.33 0.11 0.02 0.3 0.55 0.14];
|
||||
for i=1:length(p_vect)
|
||||
p = p_vect(i)
|
||||
cdf = 0.0;
|
||||
|
||||