PUSCHConfig#
- class sionna.phy.nr.PUSCHConfig(carrier_config: sionna.phy.nr.carrier_config.CarrierConfig | None = None, pusch_dmrs_config: sionna.phy.nr.pusch_dmrs_config.PUSCHDMRSConfig | None = None, tb_config: sionna.phy.nr.tb_config.TBConfig | None = None, **kwargs)[source]#
Bases:
sionna.phy.nr.config.ConfigConfiguration for a physical uplink shared channel (PUSCH).
Implements parameters as described in Sections 6.3 and 6.4 [3GPPTS38211]. All configurable properties can be provided as keyword arguments during initialization or changed later.
- Parameters:
carrier_config (nr.CarrierConfig | None) – If None, a
CarrierConfiginstance with default settings will be created.pusch_dmrs_config (nr.PUSCHDMRSConfig | None) – If None, a
PUSCHDMRSConfiginstance with default settings will be created.tb_config (nr.TBConfig | None) – If None, a
TBConfiginstance with default settings will be created.
Examples
from sionna.phy.nr import PUSCHConfig pusch_config = PUSCHConfig(mapping_type="B") pusch_config.dmrs.config_type = 2 pusch_config.carrier.subcarrier_spacing = 30
Attributes
- property carrier: sionna.phy.nr.carrier_config.CarrierConfig#
CarrierConfig: Carrier configuration.
- property dmrs: sionna.phy.nr.pusch_dmrs_config.PUSCHDMRSConfig#
PUSCHDMRSConfig: PUSCH DMRS configuration.
- property tb: sionna.phy.nr.tb_config.TBConfig#
TBConfig: Transport block configuration.
- property n_size_bwp: int | None#
Number of resource blocks in the BWP \(N^{\text{size},\mu}_{\text{BWP},i}\).
Defaults to None. Must be in [1, …, 275]. If set to None, the property
n_size_gridofcarrierwill be used.
- property n_start_bwp: int#
Start of BWP relative to common resource block (CRB) 0 \(N^{\text{start},\mu}_{\text{BWP},i}\).
Defaults to 0. Must be in [0, …, 2473].
- property num_layers: int#
Number of transmission layers \(\nu\).
Defaults to 1. Must be in [1, 2, 3, 4]. Must be smaller than or equal to
num_antenna_ports.
- property num_antenna_ports: int#
Number of antenna ports.
Defaults to 1. Must be in [1, 2, 4]. Must be larger than or equal to
num_layers.
- property symbol_allocation: List[int]#
PUSCH symbol allocation.
Defaults to [0, 14]. The first element denotes the start of the symbol allocation. The second denotes the positive number of allocated OFDM symbols. For
mapping_type"A", the first element must be zero. Formapping_type"B", the first element must be in [0, …, 13]. The second element must be such that the index of the last allocated OFDM symbol is not larger than 13 (for"normal"cyclic prefix) or 11 (for"extended"cyclic prefix).
- property n_rnti: int#
Radio network temporary identifier \(n_\text{RNTI}\).
Defaults to 1. Must be in [0, …, 65535].
- property precoding: str#
PUSCH transmission scheme.
Defaults to
"non-codebook". Must be"codebook"or"non-codebook".
- property tpmi: int#
Transmit precoding matrix indicator.
Defaults to 0. Must be in [0, …, 27]. The allowed value depends on the number of layers and the number of antenna ports according to Tables 6.3.1.5-1 to 6.3.1.5-7 [3GPPTS38211].
- property l_0: int#
Position of the first DMRS symbol \(l_0\) relative to the reference
l_ref. Read-only.
- property l_bar: List[int]#
List of possible values of \(\bar{l}\) used for DMRS generation. Read-only.
Defined in Tables 6.4.1.1.3-3 and 6.4.1.1.3-4 [3GPPTS38211].
- property l: List[int]#
List of possible values of the OFDM symbol indices \(l\) carrying DMRS relative to \(l_0\). Read-only.
- property num_resource_blocks: int#
Number of allocated resource blocks for the PUSCH transmissions. Read-only.
- property num_subcarriers: int#
Number of allocated subcarriers for the PUSCH transmissions. Read-only.
- property dmrs_mask: numpy.ndarray#
Masked resource elements in the resource grid. Read-only.
Shape: [num_subcarriers, num_symbols_per_slot]. True corresponds to resource elements on which no data is transmitted.
- property dmrs_grid: numpy.ndarray#
Empty resource grid for each DMRS port, filled with DMRS signals. Read-only.
Shape: [num_dmrs_ports, num_subcarriers, num_symbols_per_slot].
This property returns for each configured DMRS port an empty resource grid filled with DMRS signals as defined in Section 6.4.1.1 [3GPPTS38211]. Not all possible options are implemented, e.g., frequency hopping and transform precoding are not available.
This property provides the unprecoded DMRS for each configured DMRS port. Precoding might be applied to map the DMRS to the antenna ports. However, in this case, the number of DMRS ports cannot be larger than the number of layers.
- property dmrs_grid_precoded: numpy.ndarray | None#
Precoded DMRS grid. Read-only.
Returns None if
precodingis"non-codebook".
- property precoding_matrix: numpy.ndarray | None#
Precoding matrix \(\mathbf{W}\). Read-only.
Shape: [num_antenna_ports, num_layers]. Defined in Tables 6.3.1.5-1 to 6.3.1.5-7 [3GPPTS38211]. Only relevant if
precodingis"codebook".
- property num_ov: int#
Number of unused resource elements due to additional overhead as specified by higher layer. Read-only.
Defaults to 0.
- property tb_size: int#
Transport block size. Read-only.
Number of information bits that can be encoded into a slot for the given slot configuration.
Methods