EffectiveSINR#

class sionna.sys.EffectiveSINR(*args: Any, precision: Literal['single', 'double'] | None = None, device: str | None = None, **kwargs: Any)[source]#

Bases: sionna.phy.block.Block

Class template for computing the effective SINR from input SINR values across multiple subcarriers and streams.

Inputs:
  • sinr – […, num_ofdm_symbols, num_subcarriers, num_ut, num_streams_per_ut], torch.float. Post-equalization SINR in linear scale for different OFDM symbols, subcarriers, users and streams. If one entry is zero, the corresponding stream is considered as not utilized.

  • mcs_index – […, num_ut], torch.int32 (default: None). Modulation and coding scheme (MCS) index for each user.

  • mcs_table_index – […, num_ut], torch.int32 (default: None). MCS table index for each user.

  • mcs_category – […, num_ut], torch.int32 (default: None). MCS table category for each user.

  • per_streambool (default: False). If True, the effective SINR is computed on a per-user and per-stream basis and is aggregated across different subcarriers. If False, the effective SINR is computed on a per-user basis and is aggregated across streams and subcarriers.

  • kwargsdict. Additional input parameters.

Outputs:

sinr_eff – ([…, num_ut, num_streams_per_ut] | […, num_ut]), torch.float. Effective SINR in linear scale for each user and associated stream. If per_stream is True, then sinr_eff has shape [..., num_ut, num_streams_per_ut], and sinr_eff[..., u, s] is the effective SINR for stream s of user u across all subcarriers. If per_stream is False, then sinr_eff has shape [..., num_ut], and sinr_eff[..., u] is the effective SINR for user u across all streams and subcarriers.

Parameters:
  • args (Any)

  • precision (Literal['single', 'double'] | None)

  • device (str | None)

  • kwargs (Any)

Methods

calibrate() None[source]#

Optional method for calibrating the Effective SINR model.