5G/NR - Max Throughput Estimation  

 

 

 

Max Throughput Esimation

Throughput estimation is not easy and not as simple as can be calculated by a simple equation. However, the rough estimation for a maximum throughput can roughly be estimated by following equation.

<  38.306 v16.3 - 4.1.2 Supported max data rate for DL/UL >

Meaning of each parameters in this equation is as follows.

NOTE : This method would give you the ideal max throughput, but in real operation there would be some more overhead for various reasons like additional DMRS addition, SLIV value, Number of Slots scheduled in a radio frame. If you want to get more practical throughput considering all of these factors, you'd better estimate TBS first and then estimate throughput based on TBS. Refer to Method 2 in this page.

Followings are some additional information related to max throughput estimation explained above

RRC Parameters

Followings are conveyed by UE Capability Information message. These parameters are used in the formula explained above.

FeatureSetDownlink ::= SEQUENCE {

     featureSetListPerDownlinkCC     SEQUENCE (SIZE (1..maxNrofServingCells)) OF FeatureSetDownlinkPerCC-Id,

     intraBandFreqSeparationDL        FreqSeparationClass OPTIONAL,

     scalingFactor                          ENUMERATED {f0p4, f0p75, f0p8} OPTIONAL,

     ....

}

 

FeatureSetUplink ::= SEQUENCE {

    featureSetListPerUplinkCC         SEQUENCE (SIZE (1.. maxNrofServingCells)) OF FeatureSetUplinkPerCC-Id,

    scalingFactor                          ENUMERATED {f0p4, f0p75, f0p8} OPTIONAL,

    ....

}

 

FeatureSetUplinkPerCC ::= SEQUENCE {

    supportedSubcarrierSpacingUL          SubcarrierSpacing,

    supportedBandwidthUL                    SupportedBandwidth,

    channelBW-90mhz                          ENUMERATED {supported} OPTIONAL,

    mimo-CB-PUSCH SEQUENCE {

         maxNumberMIMO-LayersCB-PUSCH        MIMO-LayersUL OPTIONAL,

         maxNumberSRS-ResourcePerSet            INTEGER (1..2)

    } OPTIONAL,

    maxNumberMIMO-LayersNonCB-PUSCH        MIMO-LayersUL OPTIONAL,

    supportedModulationOrderUL                     ModulationOrder OPTIONAL

}

 

FeatureSetDownlinkPerCC ::= SEQUENCE {

    supportedSubcarrierSpacingDL                  SubcarrierSpacing,

    supportedBandwidthDL                            SupportedBandwidth,

    channelBW-90mhz                                  ENUMERATED {supported} OPTIONAL,

    maxNumberMIMO-LayersPDSCH                 MIMO-LayersDL OPTIONAL,

    supportedModulationOrderDL                    ModulationOrder OPTIONAL

}

Example 01 >

    featureSets {

      featureSetsDownlink {

        {

          featureSetListPerDownlinkCC {

            1

          },

          ue-SpecificUL-DL-Assignment supported

        },

        {

          featureSetListPerDownlinkCC {

            2

          },

          ue-SpecificUL-DL-Assignment supported

        },

        {

          featureSetListPerDownlinkCC {

            3

          },

          ue-SpecificUL-DL-Assignment supported

        },

        {

          featureSetListPerDownlinkCC {

            4

          },

          ue-SpecificUL-DL-Assignment supported

        },

        {

          featureSetListPerDownlinkCC {

            5

          },

          ue-SpecificUL-DL-Assignment supported

        },

        {

          featureSetListPerDownlinkCC {

            6

          },

          ue-SpecificUL-DL-Assignment supported

        },

        {

          featureSetListPerDownlinkCC {

            7

          },

          ue-SpecificUL-DL-Assignment supported

        }

      },

      featureSetsDownlinkPerCC {

        {

          supportedSubcarrierSpacingDL kHz30,

          supportedBandwidthDL fr1: mhz100,

          channelBW-90mhz supported,

          maxNumberMIMO-LayersPDSCH fourLayers,

          supportedModulationOrderDL qam256

        },

        {

          supportedSubcarrierSpacingDL kHz30,

          supportedBandwidthDL fr1: mhz100,

          maxNumberMIMO-LayersPDSCH fourLayers,

          supportedModulationOrderDL qam256

        },

        {

          supportedSubcarrierSpacingDL kHz15,

          supportedBandwidthDL fr1: mhz30,

          maxNumberMIMO-LayersPDSCH twoLayers,

          supportedModulationOrderDL qam256

        },

        {

          supportedSubcarrierSpacingDL kHz15,

          supportedBandwidthDL fr1: mhz20,

          maxNumberMIMO-LayersPDSCH fourLayers,

          supportedModulationOrderDL qam256

        },

        {

          supportedSubcarrierSpacingDL kHz15,

          supportedBandwidthDL fr1: mhz40,

          maxNumberMIMO-LayersPDSCH fourLayers,

          supportedModulationOrderDL qam256

        },

        {

          supportedSubcarrierSpacingDL kHz30,

          supportedBandwidthDL fr1: mhz100,

          maxNumberMIMO-LayersPDSCH twoLayers,

          supportedModulationOrderDL qam256

        },

        {

          supportedSubcarrierSpacingDL kHz15,

          supportedBandwidthDL fr1: mhz20,

          maxNumberMIMO-LayersPDSCH twoLayers,

          supportedModulationOrderDL qam256

        }

      },

      featureSetsUplink {

        {

          featureSetListPerUplinkCC {

            1

          },

          supportedSRS-Resources {

            maxNumberAperiodicSRS-PerBWP n16,

            maxNumberAperiodicSRS-PerBWP-PerSlot 6,

            maxNumberPeriodicSRS-PerBWP n16,

            maxNumberPeriodicSRS-PerBWP-PerSlot 6,

            maxNumberSemiPersistentSRS-PerBWP n2,

            maxNumberSemiPersistentSRS-PerBWP-PerSlot 2,

            maxNumberSRS-Ports-PerResource n1

          }

        },

        {

          featureSetListPerUplinkCC {

            2

          },

          supportedSRS-Resources {

            maxNumberAperiodicSRS-PerBWP n16,

            maxNumberAperiodicSRS-PerBWP-PerSlot 6,

            maxNumberPeriodicSRS-PerBWP n16,

            maxNumberPeriodicSRS-PerBWP-PerSlot 6,

            maxNumberSemiPersistentSRS-PerBWP n2,

            maxNumberSemiPersistentSRS-PerBWP-PerSlot 2,

            maxNumberSRS-Ports-PerResource n1

          }

        },

        {

          featureSetListPerUplinkCC {

            3

          },

          supportedSRS-Resources {

            maxNumberAperiodicSRS-PerBWP n16,

            maxNumberAperiodicSRS-PerBWP-PerSlot 6,

            maxNumberPeriodicSRS-PerBWP n16,

            maxNumberPeriodicSRS-PerBWP-PerSlot 6,

            maxNumberSemiPersistentSRS-PerBWP n2,

            maxNumberSemiPersistentSRS-PerBWP-PerSlot 2,

            maxNumberSRS-Ports-PerResource n1

          }

        },

        {

          featureSetListPerUplinkCC {

            4

          },

          supportedSRS-Resources {

            maxNumberAperiodicSRS-PerBWP n16,

            maxNumberAperiodicSRS-PerBWP-PerSlot 6,

            maxNumberPeriodicSRS-PerBWP n16,

            maxNumberPeriodicSRS-PerBWP-PerSlot 6,

            maxNumberSemiPersistentSRS-PerBWP n2,

            maxNumberSemiPersistentSRS-PerBWP-PerSlot 2,

            maxNumberSRS-Ports-PerResource n1

          }

        },

        {

          featureSetListPerUplinkCC {

            5

          },

          supportedSRS-Resources {

            maxNumberAperiodicSRS-PerBWP n16,

            maxNumberAperiodicSRS-PerBWP-PerSlot 6,

            maxNumberPeriodicSRS-PerBWP n16,

            maxNumberPeriodicSRS-PerBWP-PerSlot 6,

            maxNumberSemiPersistentSRS-PerBWP n2,

            maxNumberSemiPersistentSRS-PerBWP-PerSlot 2,

            maxNumberSRS-Ports-PerResource n1

          }

        },

        {

          featureSetListPerUplinkCC {

            2

          },

          supportedSRS-Resources {

            maxNumberAperiodicSRS-PerBWP n1,

            maxNumberAperiodicSRS-PerBWP-PerSlot 6,

            maxNumberPeriodicSRS-PerBWP n16,

            maxNumberPeriodicSRS-PerBWP-PerSlot 6,

            maxNumberSemiPersistentSRS-PerBWP n2,

            maxNumberSemiPersistentSRS-PerBWP-PerSlot 2,

            maxNumberSRS-Ports-PerResource n1

          }

        }

      },

      featureSetsUplinkPerCC {

        {

          supportedSubcarrierSpacingUL kHz30,

          supportedBandwidthUL fr1: mhz100,

          channelBW-90mhz supported,

          mimo-CB-PUSCH {

            maxNumberMIMO-LayersCB-PUSCH oneLayer,

            maxNumberSRS-ResourcePerSet 1

          },

          supportedModulationOrderUL qam256

        },

        {

          supportedSubcarrierSpacingUL kHz30,

          supportedBandwidthUL fr1: mhz100,

          mimo-CB-PUSCH {

            maxNumberMIMO-LayersCB-PUSCH oneLayer,

            maxNumberSRS-ResourcePerSet 1

          },

          supportedModulationOrderUL qam256

        },

        {

          supportedSubcarrierSpacingUL kHz15,

          supportedBandwidthUL fr1: mhz30,

          mimo-CB-PUSCH {

            maxNumberMIMO-LayersCB-PUSCH oneLayer,

            maxNumberSRS-ResourcePerSet 1

          },

          supportedModulationOrderUL qam256

        },

        {

          supportedSubcarrierSpacingUL kHz15,

          supportedBandwidthUL fr1: mhz20,

          mimo-CB-PUSCH {

            maxNumberMIMO-LayersCB-PUSCH oneLayer,

            maxNumberSRS-ResourcePerSet 1

          },

          supportedModulationOrderUL qam256

        },

        {

          supportedSubcarrierSpacingUL kHz15,

          supportedBandwidthUL fr1: mhz40,

          mimo-CB-PUSCH {

            maxNumberMIMO-LayersCB-PUSCH oneLayer,

            maxNumberSRS-ResourcePerSet 1

          },

          supportedModulationOrderUL qam256

        }

      },

Max Throughput Calculators

I found a couple of examples of the max throughput calculator as listed below. These are what I found in internet.. not my tool, but I think all of these tools are based on the fornula in 3GPP as summerized above.

Reference