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 |