3GPP Complaint Time Bandwidth Parameters

5G Networks has been designed to support a variety of spectrum with diverse bandwidths and sub-carrier spacing. These parameters play an important in various aspects related to the network performance, network deployment, coverage, capacity, and link budget. Furthermore for a certain band/bandwidth, based on the sub-carrier spacing, a fixed number of resource blocks can be assumed for communication and remaining bandwidth is left for spectrum roll-off using side guard bands. This module enables the user to know the number of RBs, guard band for a know bandwidth and sub-carrier spacing. Furthermore, users can also compute the length of cyclic prefix for a given fft size and cyclic prefix type.

Important

This module provides access to:
  • Number of Resource Blocks

  • Guard-band (kHz)

  • length of Cycle Prefix for each OFDM symbol.


Generating parameters for FR1 bands

bandwidth = 50*10**6
scs       = 60000
Nfft      = None
fc        = 0.9*10**9
tfparam   = TimeFrequency5GParameters(bandwidth, scs, Nfft, fc)

numSymbol = 14
typeCP    = "normal"
numRB, fftsize, lengthCP = tfparam(numSymbol, typeCP)
print("   numRB: "+str(numRB))
print(" fftsize: "+str(fftsize))
print("lengthCP: "+str(lengthCP))
   numRB: 65
 fftsize: 1024
lengthCP: [104  72  72  72  72  72  72  72  72  72  72  72  72  72]

Generating parameters for FR2 bands

bandwidth = 100*10**6
scs       = 120000
Nfft      = 2096
fc        = 10*10**9
tfparam   = TimeFrequency5GParameters(bandwidth, scs, Nfft, fc)

numSymbol = 28
typeCP    = "normal"
numRB, fftsize, lengthCP = tfparam(numSymbol, typeCP)
print("   numRB: "+str(numRB))
print(" fftsize: "+str(fftsize))
print("lengthCP: "+str(lengthCP))
   numRB: 66
 fftsize: 2096
lengthCP: [278 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147
 147 147 147 147 147 147 147 147 147 147]

The details about the input-output interface of the TimeFrequency5GParameters modules is provided below.

class toolkit5G.Configurations.TimeFrequency5GParameters(bandwidth=100000000, subcarrierSpacing=30000, fftsize=None, carrierFrequency=3600000000.0)[source]

This class generates the time frequency parameters such as frame structure, number of resource blocks, gaurd bands, length of cyclic prefix for each symbol for a certain bandwidth, subcarrier spacing, carrier frequency, and FFT-size value.

Tip

If fftsize is not set (or set to None), a random legit value is generated internally for fftsize for the computation of cyclic prefix length for each OFDM symbol.

Parameters:
  • bandwidth (int) – Define system bandwidth in Hz. Default value is 100*10**6 (100 MHz).

  • subcarrierSpacing (int) – Define system bandwidth in Hz.Default value is 30000 (30 kHz).

  • fftsize (int) – Define fft size for OFDM. It is used for cyclic prefix length computation. Default value is None.

  • carrierFrequency (number) – Define carrier frequency in Hz. Default value is 3.6*10**9.

Input:
  • numSymbol (int) – Defines number of OFDM symbols for which cyclic prfix length is returned. Default value is 14.

  • typeCP (str) – Defines the type of cyclic prefix to attached in OFDM. It acn be one of \(\{\) “normal”, “extended”\(\{\). Default value is “normal”.

Output:
  • numRBs (int) – Returns the number of resource blocks available in system bandwidth.

  • fftsize (int) – Returns fft size for OFDM. It is used for cyclic prefix length computation. Its relevant only when fftsize is None as input argument.

  • lengthCP ((numSymbol,), integer) – Returns the number of samples to be attached to each OFDM system starting first symbol of the frame.

Attributes:
  • possibleCombinations_FR1 ((39,2), integer) – Defines the all possible combinations of (bandwidth, subcarrierSpacing) supported by 5G systems in FR1 (carrierFrequency less than 7.125 GHz) where bandwidth (MHz), subcarrierSpacing (kHz). It can accessed as follows:

    • TimeFrequency5GParameters().possibleCombinations_FR1

    • object.possibleCombinations_FR1

  • possibleCombinations_FR2 ((7,2), integer) – Defines the all possible combinations of (bandwidth, subcarrierSpacing) supported by 5G systems in FR2 (carrierFrequency higher than 7.125 GHz) where bandwidth (MHz), subcarrierSpacing (kHz). It can accessed as follows:

    • TimeFrequency5GParameters().possibleCombinations_FR2

    • object.possibleCombinations_FR2

Important

The user can get the (bandwidth, subcarrierSpacing) pair supported by 5G systems for each band (FR1, FR2) respectively using following commands:

  • TimeFrequency5GParameters().possibleCombinations_FR1

  • TimeFrequency5GParameters().possibleCombinations_FR2

Raises:
  • ValueError – [Error-TimeFrequency5GParameters]: ‘numSymbol’ must be a number!

  • ValueError – [Error-TimeFrequency5GParameters]: ‘typeCP’ must be either ‘normal’ or ‘extended’!

  • ValueError – [Error-TimeFrequency5GParameters]: ‘bandwidth’ must be a number!

  • ValueError – [Error-TimeFrequency5GParameters]: For 5G, ‘bandwidth’ can only be from the set {5, 10, 15, 20, 25, 30, 40, 50, 60, 70, 80, 90, 100, 200, 400} MHz!

  • ValueError – [Error-TimeFrequency5GParameters]: ‘carrierFrequency’ must be a number!

  • ValueError – [Error-TimeFrequency5GParameters]: ‘subcarrierSpacing’ must be a number!

  • ValueError – [Error-TimeFrequency5GParameters]: For 5G, ‘subcarrierSpacing’ can only be from the set {15, 30, 60, 120} KHz!

  • Exception – Error-TimeFrequency5GParameters]: Invalid combination of (subcarrierSpacing, bandwidth)!n Check valid Combinations using ‘TimeFrequency5GParameters.possibleCombinations_FR1’ or ‘TimeFrequency5GParameters.possibleCombinations_FR2’

TimeFrequency5GParameters.getNumberRB_FR1(bandwidth, subcarrierSpacing)[source]

This function returns the number of resource blocks at FR1 frequency range for a legit (bandwidth, subcarrierSpacing) pair.

Input:
  • bandwidth (int) – Define system bandwidth in Hz.

  • subcarrierSpacing (int) – Define system bandwidth in Hz.

Output:

numRBs (int) – Returns the number of resource blocks available in system bandwidth.

TimeFrequency5GParameters.getNumberRB_FR2(bandwidth, subcarrierSpacing)[source]

This function returns the size of gaurd-band on each side at FR1 frequency range for a legit (bandwidth, subcarrierSpacing) pair.

Input:
  • bandwidth (int) – Define system bandwidth in Hz.

  • subcarrierSpacing (int) – Define system bandwidth in Hz.

Output:

numRBs (int) – Returns the number of resource blocks available in system bandwidth.

TimeFrequency5GParameters.getGaurdBand_FR1(bandwidth, subcarrierSpacing)[source]

This function returns the number of resource blocks at FR1 frequency range for a legit (bandwidth, subcarrierSpacing) pair.

Input:
  • bandwidth (int) – Define system bandwidth in Hz.

  • subcarrierSpacing (int) – Define system bandwidth in Hz.

Output:

numRBs (int) – Defines the gaird band (in kHz) for the (bandwidth, subcarrierSpacing) pair.

TimeFrequency5GParameters.getGaurdBand_FR2(bandwidth, subcarrierSpacing)[source]

This function returns the size of gaurd-band on each side at FR2 frequency range for a legit (bandwidth, subcarrierSpacing) pair.

Input:
  • bandwidth (int) – Define system bandwidth in Hz.

  • subcarrierSpacing (int) – Define system bandwidth in Hz.

Output:

numRBs (int) – Defines the gaird band (in kHz) for the (bandwidth, subcarrierSpacing) pair.