LSPGenerator#

class sionna.phy.channel.tr38901.LSPGenerator(scenario)[source]#

Bases: sionna.phy.object.Object

Sample large scale parameters (LSP) and pathloss given a channel scenario, e.g., UMa, UMi, RMa, InH, or InF

This class implements steps 1 to 4 of the TR 38.901 specifications (section 7.5), as well as path-loss generation (Section 7.4.1) with O2I low- and high- loss models (Section 7.4.3).

Note that a global scenario is set for the entire batches when instantiating this class (UMa, UMi, RMa, InH, or InF). However, each UT-BS link can have its specific state (LoS, NLoS, or indoor).

The batch size is set by the scenario given as argument when constructing the class.

Spatial filtering is evaluated for the UT locations in the current topology snapshot. Every call samples a fresh LSP field; realizations are not retained across topology updates.

Parameters:

scenario – Scenario used to generate LSPs

Outputs:

lspLSP. An LSP instance storing realization of LSPs.

Examples

# Assuming scenario is a SystemLevelScenario instance
lsp_generator = LSPGenerator(scenario)
lsp = lsp_generator()

Methods

allocate_topology_tensors(batch_size: int, num_bs: int, num_ut: int) None[source]#

Pre-allocate topology-dependent buffers.

Parameters:
reset_topology() None[source]#

Reset topology-dependent buffers.

sample_pathloss() torch.Tensor[source]#

Generate pathlosses [dB] for each BS-UT link.

Outputs:

pathloss – [batch size, number of base stations, number of UTs], torch.float. Pathloss [dB] for each BS-UT link.

topology_updated_callback() None[source]#

Updates internal quantities. Must be called at every update of the scenario that changes the state of UTs or their locations.