src/lte/doc/source/lte-design.rst
changeset 8825 85fb8f3dc39d
parent 8794 a68aeda2d85b
child 8853 88563ea950da
child 9314 c893b53ea178
equal deleted inserted replaced
8824:ab8a8cc75aa9 8825:85fb8f3dc39d
    82     and one or a few UEs.
    82     and one or a few UEs.
    83  #. It should be possible within the simulation to configure different cells
    83  #. It should be possible within the simulation to configure different cells
    84     so that they use different carrier frequencies and system bandwidths. The
    84     so that they use different carrier frequencies and system bandwidths. The
    85     bandwidth used by different cells should be allowed to overlap, in order to
    85     bandwidth used by different cells should be allowed to overlap, in order to
    86     support dynamic spectrum licensing solutions such as those described
    86     support dynamic spectrum licensing solutions such as those described
    87     in [Ofcom2.6GHz]_ and [RealWireless]_. The calculation of interference should
    87     in [Ofcom2600MHz]_ and [RealWireless]_. The calculation of interference should
    88     handle appropriately this case.
    88     handle appropriately this case.
    89  #. To be more representative of the LTE standard, as well as to be as
    89  #. To be more representative of the LTE standard, as well as to be as
    90     close as possible to real-world implementations, the simulator
    90     close as possible to real-world implementations, the simulator
    91     should support the MAC Scheduler API published by the FemtoForum
    91     should support the MAC Scheduler API published by the FemtoForum
    92     [FFAPI]_. This interface is expected to be used by femtocell manufacturers
    92     [FFAPI]_. This interface is expected to be used by femtocell manufacturers
   523 (see [Sesia2009]_, Section 9.2.2.1);
   523 (see [Sesia2009]_, Section 9.2.2.1);
   524 hence in a given subframe each RB is always allocated to the same user in both
   524 hence in a given subframe each RB is always allocated to the same user in both
   525 slots.
   525 slots.
   526 The allocation bitmap can be coded in
   526 The allocation bitmap can be coded in
   527 different formats; in this implementation, we considered the *Allocation
   527 different formats; in this implementation, we considered the *Allocation
   528 Type 0* defined in [TS36.213]_, according to which the RBs are grouped in
   528 Type 0* defined in [TS36213]_, according to which the RBs are grouped in
   529 Resource Block Groups (RBG) of different size determined as a function of the
   529 Resource Block Groups (RBG) of different size determined as a function of the
   530 Transmission Bandwidth Configuration in use.
   530 Transmission Bandwidth Configuration in use.
   531 
   531 
   532 For certain bandwidth
   532 For certain bandwidth
   533 values not all the RBs are usable, since the 
   533 values not all the RBs are usable, since the 
   565 channel quality indicator (CQI), rounding to the lowest value, and is mapped to the corresponding MCS
   565 channel quality indicator (CQI), rounding to the lowest value, and is mapped to the corresponding MCS
   566 scheme. 
   566 scheme. 
   567 
   567 
   568 Finally, we note that there are some discrepancies between the MCS index
   568 Finally, we note that there are some discrepancies between the MCS index
   569 in [R1-081483]_
   569 in [R1-081483]_
   570 and that indicated by the standard:  [TS36.213]_ Table
   570 and that indicated by the standard:  [TS36213]_ Table
   571 7.1.7.1-1 says that the MCS index goes from 0 to 31, and 0 appears to be a valid
   571 7.1.7.1-1 says that the MCS index goes from 0 to 31, and 0 appears to be a valid
   572 MCS scheme (TB size is not 0) but in [R1-081483]_ the first useful MCS
   572 MCS scheme (TB size is not 0) but in [R1-081483]_ the first useful MCS
   573 index
   573 index
   574 is 1. Hence to get the value as intended by the standard we need to subtract 1
   574 is 1. Hence to get the value as intended by the standard we need to subtract 1
   575 from the index reported in [R1-081483]_. 
   575 from the index reported in [R1-081483]_. 
   576 
   576 
   577 The alternative model is based on the physical error model developed for this simulator and explained in the following subsections. This scheme is able to adapt the MCS selection to the actual PHY layer performance according to the specific CQI report. According to their definition, a CQI index is assigned when a single PDSCH TB with the modulation coding scheme and code rate correspondent to that CQI index in table 7.2.3-1 of [TS36.213]_ can be received with an error probability less than 0.1. In case of wideband CQIs, the reference TB includes all the RBGs available in order to have a reference based on the whole available resources; while, for subband CQIs, the reference TB is sized as the RBGs.
   577 The alternative model is based on the physical error model developed for this simulator and explained in the following subsections. This scheme is able to adapt the MCS selection to the actual PHY layer performance according to the specific CQI report. According to their definition, a CQI index is assigned when a single PDSCH TB with the modulation coding scheme and code rate correspondent to that CQI index in table 7.2.3-1 of [TS36213]_ can be received with an error probability less than 0.1. In case of wideband CQIs, the reference TB includes all the RBGs available in order to have a reference based on the whole available resources; while, for subband CQIs, the reference TB is sized as the RBGs.
   578 
   578 
   579 
   579 
   580 Round Robin (RR) Scheduler
   580 Round Robin (RR) Scheduler
   581 --------------------------
   581 --------------------------
   582 
   582 
   592 instantaneous channel quality is high relative to its own average channel
   592 instantaneous channel quality is high relative to its own average channel
   593 condition over time. Let :math:`i,j` denote generic users; let :math:`t` be the
   593 condition over time. Let :math:`i,j` denote generic users; let :math:`t` be the
   594 subframe index, and :math:`k` be the resource block index; let :math:`M_{i,k}(t)` be MCS
   594 subframe index, and :math:`k` be the resource block index; let :math:`M_{i,k}(t)` be MCS
   595 usable by user :math:`i` on resource block :math:`k` according to what reported by the AMC
   595 usable by user :math:`i` on resource block :math:`k` according to what reported by the AMC
   596 model (see `Adaptive Modulation and Coding`_); finally, let :math:`S(M, B)` be the TB
   596 model (see `Adaptive Modulation and Coding`_); finally, let :math:`S(M, B)` be the TB
   597 size in bits as defined in [TS36.213]_ for the case where a number :math:`B` of
   597 size in bits as defined in [TS36213]_ for the case where a number :math:`B` of
   598 resource blocks is used. The achievable rate :math:`R_{i}(k,t)` in bit/s for user :math:`i`
   598 resource blocks is used. The achievable rate :math:`R_{i}(k,t)` in bit/s for user :math:`i`
   599 on resource block :math:`k` at subframe :math:`t` is defined as 
   599 on resource block :math:`k` at subframe :math:`t` is defined as 
   600 
   600 
   601 .. math::
   601 .. math::
   602 
   602 
  1129 
  1129 
  1130 LTE Spectrum Model
  1130 LTE Spectrum Model
  1131 ^^^^^^^^^^^^^^^^^^
  1131 ^^^^^^^^^^^^^^^^^^
  1132 
  1132 
  1133 The usage of the radio spectrum by eNBs and UEs in LTE is described in
  1133 The usage of the radio spectrum by eNBs and UEs in LTE is described in
  1134 [TS36.101]_. In the simulator, radio spectrum usage is modeled as follows. 
  1134 [TS36101]_. In the simulator, radio spectrum usage is modeled as follows. 
  1135 Let :math:`f_c` denote the  LTE Absolute Radio Frequency Channel Number, which
  1135 Let :math:`f_c` denote the  LTE Absolute Radio Frequency Channel Number, which
  1136 identifies the carrier frequency on a 100 kHz raster; furthermore, let :math:`B` be
  1136 identifies the carrier frequency on a 100 kHz raster; furthermore, let :math:`B` be
  1137 the Transmission Bandwidth Configuration in number of Resource Blocks. For every
  1137 the Transmission Bandwidth Configuration in number of Resource Blocks. For every
  1138 pair :math:`(f_c,B)` used in the simulation we define a corresponding spectrum
  1138 pair :math:`(f_c,B)` used in the simulation we define a corresponding spectrum
  1139 model using the Spectrum framework described
  1139 model using the Spectrum framework described
  1142 will automatically use the spectrum model of the eNB it is attached to. Using
  1142 will automatically use the spectrum model of the eNB it is attached to. Using
  1143 the MultiModelSpectrumChannel described in [Baldo2009]_, the interference
  1143 the MultiModelSpectrumChannel described in [Baldo2009]_, the interference
  1144 among eNBs that use different spectrum models is properly accounted for. 
  1144 among eNBs that use different spectrum models is properly accounted for. 
  1145 This allows to simulate dynamic spectrum access policies, such as for
  1145 This allows to simulate dynamic spectrum access policies, such as for
  1146 example the spectrum licensing policies that are 
  1146 example the spectrum licensing policies that are 
  1147 discussed in [Ofcom2.6GHz]_.
  1147 discussed in [Ofcom2600MHz]_.
  1148 
  1148 
  1149 
  1149 
  1150 
  1150 
  1151 PHY Error Model
  1151 PHY Error Model
  1152 ---------------
  1152 ---------------
  1153 
  1153 
  1154 The simulator includes an error model of the data plane (i.e., PDSCH) according to the standard link-to-system mapping (LSM) techniques. The choice is aligned with the standard system simulation methodology of OFDMA  radio transmission technology. Thanks to LSM we are able to maintain a good level of accuracy and at the same time limiting the computational complexity increase. It is based on the mapping of single link layer performance obtained by means of link level simulators to system (in our case network) simulators. In particular link the layer simulator is used for generating the performance of a single link from a PHY layer perspective, usually in terms of code block error rate (BLER), under specific static conditions. LSM allows the usage of these parameters in more complex scenarios, typical of system/network simulators, where we have more links, interference and "colored" channel propagation phenomena (e.g., frequency selective fading).
  1154 The simulator includes an error model of the data plane (i.e., PDSCH) according to the standard link-to-system mapping (LSM) techniques. The choice is aligned with the standard system simulation methodology of OFDMA  radio transmission technology. Thanks to LSM we are able to maintain a good level of accuracy and at the same time limiting the computational complexity increase. It is based on the mapping of single link layer performance obtained by means of link level simulators to system (in our case network) simulators. In particular link the layer simulator is used for generating the performance of a single link from a PHY layer perspective, usually in terms of code block error rate (BLER), under specific static conditions. LSM allows the usage of these parameters in more complex scenarios, typical of system/network simulators, where we have more links, interference and "colored" channel propagation phenomena (e.g., frequency selective fading).
  1155 
  1155 
  1156 To do this the Vienna LTE Simulator [Vienna]_ has been used for what concerns the extraction of link layer performance and the Mutual Information Based Effective SINR (MIESM) as LSM mapping function using part of the work recently published by the Signet Group of University of Padua [PaduaPEM]_.
  1156 To do this the Vienna LTE Simulator [ViennaLteSim]_ has been used for what concerns the extraction of link layer performance and the Mutual Information Based Effective SINR (MIESM) as LSM mapping function using part of the work recently published by the Signet Group of University of Padua [PaduaPEM]_.
  1157 
  1157 
  1158 
  1158 
  1159 MIESM
  1159 MIESM
  1160 ^^^^^
  1160 ^^^^^
  1161 
  1161 
  1167 .. figure:: figures/miesm_scheme.*
  1167 .. figure:: figures/miesm_scheme.*
  1168    :align: center
  1168    :align: center
  1169 
  1169 
  1170    MIESM computational procedure diagram
  1170    MIESM computational procedure diagram
  1171 
  1171 
  1172 The mutual information (MI) is dependent on the constellation mapping and can be calculated per transport block (TB) basis, by evaluating the MI over the symbols and the subcarrier. However, this would be too complex for a network simulator. Hence, in our implementation a flat channel response within the RB has been considered; therefore the overall MI of a TB is calculated averaging the MI evaluated per each RB used in the TB. In detail, the implemented scheme is depicted in Figure :ref:`fig-miesm-architecture`, where we see that the model starts by evaluating the MI value for each RB, represented in the figure by the SINR samples. Then the equivalent MI is evaluated per TB basis by averaging the MI values. Finally, a further step has to be done since the link level simulator returns the performance of the link in terms of block error rate (BLER) in a addive white guassian noise  (AWGN) channel, where the blocks are the code blocks (CBs) independently encoded/decoded by the turbo encoder. On this matter the standard 3GPP segmentation scheme has been used for estimating the actual CB size (described in section 5.1.2 of [TS36.212]_). This scheme divides the the TB in :math:`N_{K_-}` blocks of size :math:`K_-` and :math:`N_{K+}` blocks of size :math:`K_+`. Therefore the overall TB BLER (TBLER) can be expressed as
  1172 The mutual information (MI) is dependent on the constellation mapping and can be calculated per transport block (TB) basis, by evaluating the MI over the symbols and the subcarrier. However, this would be too complex for a network simulator. Hence, in our implementation a flat channel response within the RB has been considered; therefore the overall MI of a TB is calculated averaging the MI evaluated per each RB used in the TB. In detail, the implemented scheme is depicted in Figure :ref:`fig-miesm-architecture`, where we see that the model starts by evaluating the MI value for each RB, represented in the figure by the SINR samples. Then the equivalent MI is evaluated per TB basis by averaging the MI values. Finally, a further step has to be done since the link level simulator returns the performance of the link in terms of block error rate (BLER) in a addive white guassian noise  (AWGN) channel, where the blocks are the code blocks (CBs) independently encoded/decoded by the turbo encoder. On this matter the standard 3GPP segmentation scheme has been used for estimating the actual CB size (described in section 5.1.2 of [TS36212]_). This scheme divides the the TB in :math:`N_{K_-}` blocks of size :math:`K_-` and :math:`N_{K+}` blocks of size :math:`K_+`. Therefore the overall TB BLER (TBLER) can be expressed as
  1173 
  1173 
  1174 .. math::
  1174 .. math::
  1175 
  1175 
  1176   TBLER = 1- \prod\limits_{i=1}^{C}(1-CBLER_i)
  1176   TBLER = 1- \prod\limits_{i=1}^{C}(1-CBLER_i)
  1177 
  1177 
  1392 With respect to the mathematical channel propagation model, we suggest the one provided by the ``rayleighchan`` function of Matlab, since it provides a well accepted channel modelization both in time and frequency domain. For more information, the reader is referred to  [mathworks]_.
  1392 With respect to the mathematical channel propagation model, we suggest the one provided by the ``rayleighchan`` function of Matlab, since it provides a well accepted channel modelization both in time and frequency domain. For more information, the reader is referred to  [mathworks]_.
  1393 
  1393 
  1394 The simulator provides a matlab script (``/lte/model/JakesTraces/fading-trace-generator.m``) for generating traces based on the format used by the simulator. 
  1394 The simulator provides a matlab script (``/lte/model/JakesTraces/fading-trace-generator.m``) for generating traces based on the format used by the simulator. 
  1395 In detail, the channel object created with the rayleighchan function is used for filtering a discrete-time impulse signal in order to obtain the channel impulse response. The filtering is repeated for different TTI, thus yielding subsequent time-correlated channel responses (one per TTI). The channel response is then processed with the ``pwelch`` function for obtaining its power spectral density values, which are then saved in a file with the proper format compatible with the simulator model.
  1395 In detail, the channel object created with the rayleighchan function is used for filtering a discrete-time impulse signal in order to obtain the channel impulse response. The filtering is repeated for different TTI, thus yielding subsequent time-correlated channel responses (one per TTI). The channel response is then processed with the ``pwelch`` function for obtaining its power spectral density values, which are then saved in a file with the proper format compatible with the simulator model.
  1396 
  1396 
  1397 Since the number of variable it is pretty high, generate traces considering all of them might produce a high number of traces of huge size. On this matter, we considered the following assumptions of the parameters based on the 3GPP fading propagation conditions (see Annex B.2 of [TS36.104]_):
  1397 Since the number of variable it is pretty high, generate traces considering all of them might produce a high number of traces of huge size. On this matter, we considered the following assumptions of the parameters based on the 3GPP fading propagation conditions (see Annex B.2 of [TS36104]_):
  1398 
  1398 
  1399  * users' speed: typically only a few discrete values are considered, i.e.:
  1399  * users' speed: typically only a few discrete values are considered, i.e.:
  1400 
  1400 
  1401    * 0 and 3 kmph for pedestrian scenarios
  1401    * 0 and 3 kmph for pedestrian scenarios
  1402    * 30 and 60 kmph for vehicular scenarios
  1402    * 30 and 60 kmph for vehicular scenarios
  1403    * 0, 3, 30 and 60 for urban scenarios
  1403    * 0, 3, 30 and 60 for urban scenarios
  1404 
  1404 
  1405  * channel taps: only a limited number of sets of channel taps are normally considered, for example three models are mentioned in Annex B.2 of [TS36.104]_.
  1405  * channel taps: only a limited number of sets of channel taps are normally considered, for example three models are mentioned in Annex B.2 of [TS36104]_.
  1406  * time granularity: we need one fading value per TTI, i.e., every 1 ms (as this is the granularity in time of the ns-3 LTE PHY model).
  1406  * time granularity: we need one fading value per TTI, i.e., every 1 ms (as this is the granularity in time of the ns-3 LTE PHY model).
  1407  * frequency granularity: we need one fading value per RB (which is the frequency granularity of the spectrum model used by the ns-3 LTE model).
  1407  * frequency granularity: we need one fading value per RB (which is the frequency granularity of the spectrum model used by the ns-3 LTE model).
  1408  * length of the trace: the simulator includes the windowing mechanism implemented during the GSoC 2011, which consists of picking up a window of the trace each window length in a random fashion.  
  1408  * length of the trace: the simulator includes the windowing mechanism implemented during the GSoC 2011, which consists of picking up a window of the trace each window length in a random fashion.  
  1409  * per-user fading process: users share the same fading trace, but for each user a different starting point in the trace is randomly picked up. This choice was made to avoid the need to provide one fading trace per user.
  1409  * per-user fading process: users share the same fading trace, but for each user a different starting point in the trace is randomly picked up. This choice was made to avoid the need to provide one fading trace per user.
  1410 
  1410 
  1411 According to the parameters we considered, the following formula express in detail the total size :math:`S_{traces}` of the fading traces:
  1411 According to the parameters we considered, the following formula express in detail the total size :math:`S_{traces}` of the fading traces:
  1412 
  1412 
  1413 .. math::
  1413 .. math::
  1414  S_{traces} = S_{sample} \times N_{RB} \times \frac{T_{trace}}{T_{sample}} \times N_{scenarios} \mbox{ [bytes]}
  1414  S_{traces} = S_{sample} \times N_{RB} \times \frac{T_{trace}}{T_{sample}} \times N_{scenarios} \mbox{ [bytes]}
  1415 
  1415 
  1416 where :math:`S_{sample}` is the size in bytes of the sample (e.g., 8 in case of double precision, 4 in case of float precision), :math:`N_{RB}` is the number of RB or set of RBs to be considered, :math:`T_{trace}` is the total length of the trace, :math:`T_{sample}` is the time resolution of the trace (1 ms), and :math:`N_{scenarios}` is the number of fading scenarios that are desired (i.e., combinations of different sets of channel taps and user speed values). We provide traces for 3 different scenarios one for each taps configuration defined in Annex B.2 of [TS36.104]_:
  1416 where :math:`S_{sample}` is the size in bytes of the sample (e.g., 8 in case of double precision, 4 in case of float precision), :math:`N_{RB}` is the number of RB or set of RBs to be considered, :math:`T_{trace}` is the total length of the trace, :math:`T_{sample}` is the time resolution of the trace (1 ms), and :math:`N_{scenarios}` is the number of fading scenarios that are desired (i.e., combinations of different sets of channel taps and user speed values). We provide traces for 3 different scenarios one for each taps configuration defined in Annex B.2 of [TS36104]_:
  1417 
  1417 
  1418  * Pedestrian: with nodes' speed of 3 kmph.
  1418  * Pedestrian: with nodes' speed of 3 kmph.
  1419  * Vehicular: with nodes' speed of 60 kmph.
  1419  * Vehicular: with nodes' speed of 60 kmph.
  1420  * Urban: with nodes' speed of 3 kmph.
  1420  * Urban: with nodes' speed of 3 kmph.
  1421 
  1421