4G/LTE - Throughput

 

 

 

Throughput Calculation - TDD

 

TDD throughput calculation is very similar to FDD case as you see below. The key difference is 'number of subframes /sec' parts as marked in red. Another difference is about TBS each subframe as marked in blue. In normal DL or UL subframe, TBS/subframe can be calculated in the same way as in FDD. But in case of special subframe, the method is a little bit different. I will explain on this later.

    PHY layer throughput in bits =   Transport Block Size (bits) / subframe

                                             x number of transport blocks / subframe

                                             x (number of subframes carrying TB) / sec

                                           =  ???? bits/sec

        , where number of transport blocks /subframe is 1 for TM1,TM2 and 2 for TM3, TM4

The formula has three factors. The TBS per subframe comes from the same 36.213 tables as in FDD. The number of transport blocks per subframe comes from the transmission mode and the rank. Only the number of subframes per second is new in TDD, and the special subframe makes it the hard part.

Calculation Procedure

Let's turn the formula into numbers, one table lookup at a time. The lookups for a normal D or U subframe are the same as in FDD. Only the last step, N_SF, is specific to TDD, and the next two sections work that count out.

Calculation Procedure for downlink(PDSCH) is as follows :

 

i) refer to TS36.213 Table 7.1.7.1-1

ii) get I_TBS for using MCS value (Let's assume MCS is 23. in this case, I_TBS is 21 )

iii) refer to TS36.213 Table 7.1.7.2.1-1

iv) go to column header indicating the number of RB (Let's assume that RB is 100)

v) go to row header ‘21’ which is I_TBS

vi) you would get 51024 (if the number of RB is 100 and I_TBS is 21)

vii) (This is Transfer Block Size per 1 ms for one Antenna)

viii) Figure out the 'number of subframe' based on UL/DL Configuration and Special Subframe Configuration. (= N_SF)

 

If we use 2 antenna, the throughput is 51024 bits * 2 transport blocks * N_SF/sec 

 

Calculation Procedure for uplink(PUSCH) is as follows :

Same as the downlink as above except that you have to refer to 36.213 Table 8.6.1-1 at step i)

Uplink Analysis Paremeter Calculation

 

Click here for TS 36.213 Tables for TBS

Two checks keep this lookup correct. First, Table 7.1.7.1-1 is the default MCS table for PDSCH. If the network configures the 256QAM table, Table 7.1.7.1-1A, the same MCS index points to a different I_TBS. So confirm which MCS table the UE uses before you read off I_TBS. Second, TM3 and TM4 carry two transport blocks only when the rank is 2 or more. With rank 1 they carry one transport block, and the factor 2 in the formula becomes 1.

The uplink lookup has one extra limit. The number of PRBs for PUSCH must be a product of powers of 2, 3 and 5 (36.211 clause 5.3.3). So 96 and 100 PRBs are valid sizes, but 98 and 99 are not. PUCCH also takes PRBs at both edges of the band, so a 20 MHz cell usually gives PUSCH fewer than 100 PRBs. For example, UL MCS 20 maps to I_TBS 19 with 16QAM in Table 8.6.1-1, and 96 PRBs at I_TBS 19 give a TBS of 40576 bits.

  • A normal D or U subframe follows the FDD lookup : MCS gives I_TBS, and I_TBS with the PRB count gives the TBS.
  • The MCS table must match the UE configuration : Table 7.1.7.1-1 and Table 7.1.7.1-1A give different I_TBS values for the same MCS index.
  • Two transport blocks need rank 2 or more : TM3 and TM4 fall back to one transport block when the rank is 1.
  • N_SF is the TDD-specific factor : it depends on the UL/DL configuration and on the special subframe configuration.

Number of subframes carrying TB

TDD shares one carrier between DL and UL in time. So each subframe is D, U or S, and only some of them can carry the transport block you are counting. The UL/DL configuration fixes this pattern for the whole cell, and SIB1 broadcasts it in TDD-Config.

Following Table shows the number of DL, UL and Special Subframe (Sync Subframe) within a radio frame (10 ms). Figure out 'Number of Subframe Carrying TB'. However there is a tricky part here. D and U part are straight forward and they can carry TB as we expected, but 'S' subframe is different. I may or may not carry TB (PDSCH) depending on Specifical Subframe Configuration. We will look into TB allocation for 'S' subframe in next table.

 

DL/UL

Config

Subframe Number

No of DL

No of UL

No of

Special SF

0

1

2

3

4

5

6

7

8

9

0

D

S

U

U

U

D

S

U

U

U

2

6

2

1

D

S

U

U

D

D

S

U

U

D

4

4

2

2

D

S

U

D

D

D

S

U

D

D

6

2

2

3

D

S

U

U

U

D

D

D

D

D

6

3

1

4

D

S

U

U

D

D

D

D

D

D

7

2

1

5

D

S

U

D

D

D

D

D

D

D

8

1

1

6

D

S

U

U

U

D

S

U

U

D

3

5

2

 

The table follows a few fixed rules (36.211 Table 4.2-2). Subframes 0 and 5 are always D, and subframe 1 is always S. The subframe right after an S subframe is always U. Configurations 0, 1, 2 and 6 switch from DL to UL every 5 ms, so they have a second S subframe in subframe 6. Configurations 3, 4 and 5 switch every 10 ms and have only one S subframe.

Now let's count subframes per second. A radio frame is 10 ms, so there are 100 frames per second. Configuration 1 has 4 D and 2 S subframes per frame. That gives 400 D subframes per second, plus up to 200 S subframes if the special subframe configuration allows PDSCH. The UL count is simpler. Configuration 1 has 4 U subframes per frame, so it has 400 UL subframes per second.

The S subframe normally adds nothing to the UL count. UpPTS carries SRS and PRACH, but not PUSCH. Release 14 added the parameter symPUSCH-UpPts-r14, and with it the UE can send PUSCH in UpPTS. In that case 36.213 clause 8.6.2 scales the TBS down for UpPTS, in the same way as for DwPTS in the next section.

  • Subframes 0 and 5 are always DL : every configuration has at least 2 D subframes per frame.
  • The switch-point periodicity sets the S count : 5 ms configurations have 2 S subframes per frame, and 10 ms configurations have 1.
  • UL/DL configuration 5 gives the most DL : it has 8 D and 1 S subframe per frame, but only 1 U subframe.
  • UL/DL configuration 0 gives the most UL : it has 6 U subframes per frame against 2 D subframes.

Special Subframe Configuration for TB allocation

The S subframe holds DwPTS, a guard period and UpPTS. DwPTS is the DL part, so it decides whether the S subframe can carry PDSCH and how large that transport block can be. The special subframe configuration sets the length of each part (36.211 Table 4.2-1).

Special Subframe Configuration marked in Green can carry PDSCH, but the ones marked in Gray cannot carry PDSCH. You have to take this into acount when you are calculating 'Number of subframes carrying TB'

 

Special Subframe Configuration

Normal CP

Extended CP

0

No PDSCH

No PDSCH

1

PDSCH

PDSCH

2

PDSCH

PDSCH

3

PDSCH

PDSCH

4

PDSCH

No PDSCH

5

No PDSCH

PDSCH

6

PDSCH

PDSCH

7

PDSCH

PDSCH

8

PDSCH

N/A

9

PDSCH

N/A

10

PDSCH

N/A

 

The gray cells are the configurations with the shortest DwPTS. The UE assumes no PDSCH in DwPTS for configurations 0 and 5 with normal CP, and for configurations 0 and 4 with extended CP (36.213 clause 7.1.7). The same rule applies to configuration 10 when the network configures ssp10-CRS-LessDwPTS, which is configuration 10 without CRS in the 5th symbol of DwPTS.

Three rows of the table came in later releases. Release 11 added configuration 9 for normal CP and configuration 7 for extended CP. Release 14 added configuration 10 for normal CP. In SIB1 they appear as specialSubframePatterns-v1130 (ssp7, ssp9), -v1430 (ssp10) and -v1450 (ssp10-CRS-LessDwPTS). When one of these extensions is present, the UE ignores the Release 8 specialSubframePatterns field. The UE also has to support them, and it says so with tdd-SpecialSubframe-r11 or tdd-SpecialSubframe-r14 in its capability.

Now for the TBS of an S subframe, which the page opening promised. DwPTS is shorter than a full subframe. So the UE cannot read the TBS table at the full PRB count, because that TBS would need a code rate the DwPTS cannot support. Instead, 36.213 clause 7.1.7 scales the column indicator of Table 7.1.7.2.1-1. Let N'PRB be the number of allocated PRBs. For most special subframe configurations, the UE reads the table at NPRB = max(floor(N'PRB x 0.75), 1). For configurations 9 and 10 with normal CP and configuration 7 with extended CP, the factor is 0.375 instead. Their DwPTS is shorter than one slot, while configurations 1 to 4 and 6 to 8 with normal CP contain a full slot. The I_TBS lookup does not change.

  • DwPTS length decides whether PDSCH is possible : configurations 0 and 5 with normal CP, and 0 and 4 with extended CP, carry no PDSCH.
  • A PDSCH in DwPTS gets a smaller TBS : the UE reads the TBS table at 0.75 or 0.375 of the allocated PRBs.
  • Newer configurations need UE support : ssp7 and ssp9 need tdd-SpecialSubframe-r11, and ssp10 needs tdd-SpecialSubframe-r14.
  • An S subframe is not a full D subframe : count it separately, with its own TBS, when you compute N_SF and the throughput.

Worked Example - UL/DL Configuration 1 with 100 RB

Let's put the pieces together for one cell and see how much the S subframe is worth. The example keeps the DL assumptions of the procedure above: 100 RB, MCS 23, I_TBS 21 and two transport blocks per subframe. Only the special subframe configuration changes from row to row.

The cell uses UL/DL configuration 1 with normal CP. Each frame has 4 D, 2 S and 4 U subframes. A D subframe carries 51024 bits per transport block. An S subframe with PDSCH reads the TBS table at a smaller PRB count, so it carries fewer bits.

Take special subframe configuration 7 first. The factor is 0.75, so NPRB = floor(100 x 0.75) = 75. Table 7.1.7.2.1-1 gives 37888 bits at I_TBS 21 and 75 PRBs. One frame then carries 4 x 51024 + 2 x 37888 = 279872 bits per transport block stream. With two streams and 100 frames per second, the DL peak is 279872 x 2 x 100 = 55974400 bits/sec, about 56.0 Mbps.

The table below repeats the calculation for other special subframe configurations. The last row counts each S subframe as a full D subframe. That is a common mistake, and it is shown only for comparison.

 

Special Subframe Configuration

PDSCH in DwPTS

N_PRB in S subframe

bits per frame per TB stream

DL peak, 2 TBs, Mbps

0

No PDSCH

-

204096

40.82

7

PDSCH, factor 0.75

75

279872

55.97

9

PDSCH, factor 0.375

37

240768

48.15

S counted as full D

not allowed by 36.213

100

306144

61.23

 

Compare the rows. Counting the S subframes as full D subframes overstates the peak by about 9 percent against special subframe configuration 7. Ignoring them, as special subframe configuration 0 does, gives about 27 percent less. Special subframe configuration 9 sits between the two, because its NPRB is floor(100 x 0.375) = 37 and the TBS at 37 PRBs is 18336 bits.

The UL side of the same cell is simpler. UL/DL configuration 1 has 4 U subframes per frame, and the S subframe adds nothing unless PUSCH in UpPTS is configured. With 96 PRBs and UL MCS 20, each U subframe carries 40576 bits. So the UL peak is 40576 x 4 x 100 = 16230400 bits/sec, about 16.2 Mbps, with one transport block per subframe.

These are PHY layer peaks. The throughput at the application is lower, because of HARQ retransmissions, the MAC, RLC and PDCP headers, and the scheduling limits of the eNB.

  • An S subframe with configuration 7 carries about 74 percent of a D subframe : it carries 37888 bits against 51024 bits at I_TBS 21.
  • Counting S as a full D subframe overstates the peak : the result is 61.23 Mbps instead of 55.97 Mbps for UL/DL configuration 1 with special subframe configuration 7.
  • Special subframe configurations 0 and 5 remove the DwPTS share : the DL peak drops to 40.82 Mbps, the value from the D subframes alone.
  • The UL peak uses only U subframes : UL/DL configuration 1 gives about 16.2 Mbps at 96 PRBs and I_TBS 19.

Reference

  • 3GPP TS 36.211 v19.3.0 - Table 4.2-1 special subframe configuration, Table 4.2-2 uplink-downlink configurations, clause 5.3.3 transform precoding
  • 3GPP TS 36.213 v19.4.0 - clause 7.1.7 with Table 7.1.7.1-1, Table 7.1.7.1-1A and Table 7.1.7.2.1-1, clause 8.6 with Table 8.6.1-1
  • 3GPP TS 36.331 v19.3.0 - TDD-Config field descriptions, tdd-SpecialSubframe-r11 and tdd-SpecialSubframe-r14