Configuration classes#

This module contains classes to hold various configuration parameters. In particular, the PUSCH receiver pipeline and its components accept PuschConfig and PuschUeConfig as arguments. Similarly, the PDSCH transmitter pipeline is configured using the PdschConfig, PdschUeConfig, and PdschCwConfig classes.

class aerial.phy5g.config.PuschUeConfig#

A class holding all dynamic PUSCH parameters for a single slot, single UE.

Parameters:
  • scid (int) – DMRS sequence initialization [TS38.211, sec 7.4.1.1.2].

  • layers (int) – Number of layers.

  • dmrs_ports (int) – Allocated DMRS ports.

  • rnti (int) – The 16-bit RNTI value of the UE.

  • data_scid (List[int]) – Data scrambling ID, more precisely dataScramblingIdentityPdsch [TS38.211, sec 7.3.1.1].

  • mcs_table (int) – MCS table to use (see TS 38.214).

  • mcs_index (int) – MCS index to use.

  • code_rate (int) – Code rate, expressed as the number of information bits per 1024 coded bits expressed in 0.1 bit units.

  • mod_order (int) – Modulation order.

  • tb_size (int) – TB size in bytes.

  • rv (List[int]) – Redundancy version.

  • ndi (List[int]) – New data indicator.

class aerial.phy5g.config.PuschConfig#

A class holding all dynamic PUSCH parameters for a single slot, single UE group.

Parameters:
  • num_dmrs_cdm_grps_no_data (int) – Number of DMRS CDM groups without data [3GPP TS 38.212, sec 7.3.1.1]. Value: 1->3.

  • dmrs_scrm_id (int) – DMRS scrambling ID.

  • start_prb (int) – Start PRB index of the UE group allocation.

  • num_prbs (int) – Number of allocated PRBs for the UE group.

  • prg_size (int) – The Size of PRG in PRB for PUSCH per-PRG channel estimation.

  • num_ul_streams (int) – The number of active streams for this PUSCH.

  • dmrs_syms (List[int]) – For the UE group, a list of binary numbers each indicating whether the corresponding symbol is a DMRS symbol.

  • dmrs_max_len (int) – The maxLength parameter, value 1 or 2, meaning that DMRS are single-symbol DMRS or single- or double-symbol DMRS. Note that this needs to be consistent with dmrs_syms.

  • dmrs_add_ln_pos (int) – Number of additional DMRS positions. Note that this needs to be consistent with dmrs_syms.

  • start_sym (int) – Start OFDM symbol index for the UE group allocation.

  • num_symbols (int) – Number of symbols in the UE group allocation.

class aerial.phy5g.config.AerialPuschRxConfig#

Aerial PUSCH receiver pipeline configuration.

Parameters:
  • cell_id (int) – Physical cell ID.

  • num_rx_ant (int) – Number of receive antennas.

  • num_ul_bwp (int) – Number of PRBs in a uplink bandwidth part. Default: 273.

  • num_dl_bwp (int) – Number of PRBs in a downlink bandwidth part. Default: 273.

  • mu (int) – Numerology. Values in [0, 3]. Default: 1.

  • enable_cfo_correction (int) –

    Enable/disable CFO correction:

    • 0: Disable (default).

    • 1: Enable.

  • enable_to_estimation (int) –

    Enable/disable time offset estimation:

    • 0: Disable (default).

    • 1: Enable.

  • enable_pusch_tdi (int) –

    Time domain interpolation on PUSCH.

    • 0: Disable (default).

    • 1: Enable.

  • eq_coeff_algo (int) –

    Algorithm for equalizer coefficient computation.

    • 0 - ZF.

    • 1 - MMSE (default).

    • 2 - MMSE-IRC.

  • enable_per_prg_chest (int) –

    Enable/disable PUSCH per-PRG channel estimation.

    • 0: Disable (default).

    • 1: Enable.

  • enable_ul_rx_bf (int) –

    Enable/disable beamforming for PUSCH.

    • 0: Disable (default).

    • 1: Enable.

  • ldpc_kernel_launch (PuschLdpcKernelLaunch) – LDPC kernel launch method.

class aerial.phy5g.config.CsiRsConfig#

CSI-RS parameters.

The RRC parameters for CSI-RS. Used together with PDSCH Tx and CSI-RS Tx.

Parameters:
  • start_prb (int) – PRB where this CSI resource starts. Expected value < 273.

  • num_prb (int) – Number of PRBs across which this CSI resource spans. Expected value <= 273 - start_prb.

  • prb_bitmap (List[int]) – Bitmap defining frequency domain allocation. Counting is started from least significant bit (first element of the list).

  • row (int) – Row entry into the CSI resource location table. Valid values 1-18.

  • symb_L0 (int) – Time domain location L0.

  • symb_L1 (int) – Time domain location L1.

  • freq_density (int) – The density field, p and comb offset (for dot5), 0: dot5 (even RB), 1: dot5 (odd RB), 2: one, 3: three.

  • scramb_id (int) – Scrambling ID of CSI-RS.

  • idx_slot_in_frame (int) – Slot index in frame.

  • cdm_type (int) –

    CDM Type.

    • 0: noCDM

    • 1: fd-CDM2

    • 2: cdm4-FD2-TD2

    • 3: cdm8-FD2-TD4

  • beta (float) – Power scaling factor

  • precoding_matrix (np.ndarray) – Precoding matrix. Default: No precoding.

class aerial.phy5g.config.AerialPdschTxConfig#

Aerial PDSCH transmitter pipeline configuration.

Parameters:
  • cell_id (int) – Physical cell ID.

  • num_tx_ant (int) – Number of transmit antennas.

  • num_dl_bwp (int) – Number of PRBs in a downlink bandwidth part. Default: 273.

  • mu (int) – Numerology. Values in [0, 3]. Default: 1.

class aerial.phy5g.config.PdschCwConfig#

A class holding all dynamic PDSCH parameters for a single slot, single codeword.

Parameters:
  • mcs_table (int) – MCS table index.

  • mcs_index (int) – MCS index.

  • code_rate (int) – Code rate, expressed as the number of information bits per 1024 coded bits expressed in 0.1 bit units.

  • mod_order (int) – Modulation order.

  • rvs (int) – Redundancy version (default: 0).

  • num_prb_lbrm (int) – Number of PRBs used for LBRM TB size computation. Possible values: {32, 66, 107, 135, 162, 217, 273}.

  • max_layers (int) – Number of layers used for LBRM TB size computation (at most 4).

  • max_qm (int) – Modulation order used for LBRM TB size computation. Value: 6 or 8.

class aerial.phy5g.config.PdschUeConfig#

A class holding all dynamic PDSCH parameters for a single slot, single UE.

Parameters:
  • scid (int) – DMRS sequence initialization [TS38.211, sec 7.4.1.1.2].

  • layers (int) – Number of layers.

  • dmrs_ports (int) – Allocated DMRS ports. The format of the entry is in the SCF FAPI format as follows: A bitmap (mask) starting from the LSB where each bit indicates whether the corresponding DMRS port index is used.

  • bwp_start (int) – Bandwidth part start (PRB number starting from 0). Used only if reference point is 1.

  • ref_point (int) – DMRS reference point. Value 0 or 1.

  • beta_qam (float) – Amplitude factor of QAM signal.

  • beta_dmrs (float) – Amplitude factor of DMRS signal.

  • rnti (int)

  • data_scid (List[int]) – Data scrambling ID for the UE, more precisely dataScramblingIdentityPdsch [TS38.211, sec 7.3.1.1].

  • precoding_matrix (np.ndarray) – Precoding matrix. The shape of the matrix is number of layers x number of Tx antennas. If set to None, precoding is disabled.

class aerial.phy5g.config.PdschConfig#

A class holding all dynamic PDSCH parameters for a single slot, single UE group.

Parameters:
  • num_dmrs_cdm_grps_no_data (int) – Number of DMRS CDM groups without data [3GPP TS 38.212, sec 7.3.1.1]. Value: 1->3.

  • dmrs_scrm_id (int) – Downlink DMRS scrambling ID.

  • resource_alloc (int) – Resource allocation type.

  • prb_bitmap (List[int]) – Array of bits indicating bitmask for allocated RBs.

  • start_prb (int) – Start PRB index of the UE group allocation.

  • num_prbs (int) – Number of allocated PRBs for the UE group.

  • dmrs_syms (List[int]) – For the UE group, a list of binary numbers each indicating whether the corresponding symbol is a DMRS symbol.

  • start_sym (int) – Start OFDM symbol index for the UE group allocation.

  • num_symbols (int) – Number of symbols in the UE group allocation.