InFScenario#
- class sionna.phy.channel.tr38901.InFScenario(carrier_frequency: float, factory_scenario: str, ut_array: sionna.phy.channel.tr38901.antenna.PanelArray | sionna.phy.channel.tr38901.antenna.HandheldUTArray, bs_array: sionna.phy.channel.tr38901.antenna.PanelArray | sionna.phy.channel.tr38901.antenna.HandheldUTArray, direction: str, hall_dimensions: tuple[float, float, float] | None = None, clutter_density: float | None = None, clutter_size: float | None = None, clutter_height: float | None = None, enable_pathloss: bool = True, enable_shadow_fading: bool = True, precision: str | None = None, device: str | None = None, spec_version: str = '19.2')[source]#
Bases:
sionna.phy.channel.tr38901.system_level_scenario.SystemLevelScenario3GPP TR 38.901 indoor factory (InF) channel model scenario.
The model implements the InF scenarios from Section 7 of [TR38901V1920]. The
factory_scenarioparameter selects the InF sub-scenario from Table 7.2-4:"SL": sparse clutter, low BS;"DL": dense clutter, low BS;"SH": sparse clutter, high BS;"DH": dense clutter, high BS;"HH": high Tx and high Rx, which is LOS-only.
For InF-SL, InF-DL, InF-SH, and InF-DH, the default hall dimensions and clutter parameters follow the calibration assumptions from Table 7.8-7 of [TR38901V1920]. That table does not include InF-HH. For InF-HH only, the defaults
(300, 150, 10)m,0.0,1.0m, and0.0m for hall dimensions, clutter density, clutter size, and clutter height, respectively, are implementation assumptions rather than standardized calibration values. Pass explicit values for a particular InF-HH layout.- Parameters:
carrier_frequency (float) – Carrier frequency [Hz].
factory_scenario (str) – Indoor-factory sub-scenario. Must be
"SL","DL","SH","DH", or"HH". Defaults to"SH".ut_array (sionna.phy.channel.tr38901.antenna.PanelArray | sionna.phy.channel.tr38901.antenna.HandheldUTArray) – Antenna array used by UTs. This can be a
PanelArrayorHandheldUTArray.bs_array (sionna.phy.channel.tr38901.antenna.PanelArray | sionna.phy.channel.tr38901.antenna.HandheldUTArray) – Antenna array used by base stations. This can be a
PanelArrayorHandheldUTArray.direction (str) – Link direction. Must be
"uplink"or"downlink".hall_dimensions (tuple[float, float, float] | None) – Optional hall dimensions
(length, width, height)[m]. If None, the sub-scenario default described above is used.clutter_density (float | None) – Surface fraction occupied by clutter. If None, the sub-scenario default described above is used.
clutter_size (float | None) – Typical clutter size \(d_\mathrm{clutter}\) [m]. If None, the sub-scenario default described above is used.
clutter_height (float | None) – Effective clutter height \(h_c\) [m]. If None, the sub-scenario default described above is used.
enable_pathloss (bool) – If True, apply pathloss. Otherwise doesn’t. Defaults to True.
enable_shadow_fading (bool) – If True, apply shadow fading. Otherwise doesn’t. Defaults to True.
precision (str | None) – Precision used for internal calculations and outputs. If set to None,
precisionis used.device (str | None) – Device for computation (e.g.,
"cpu","cuda:0"). If None,deviceis used.spec_version (str) – Version of the TR 38.901 parameter tables to use. InF is implemented for
"16.1"and"19.2". Defaults to"19.2".
Methods
- clip_carrier_frequency_lsp(fc: torch.Tensor) torch.Tensor[source]#
Return
fcunchanged for InF LSP calculation.- Parameters:
fc (torch.Tensor) – Carrier frequency [GHz].
- Outputs:
fc – Unmodified carrier frequency [GHz].
Attributes
- property clutter_density: torch.Tensor#
Surface fraction occupied by clutter.
- property clutter_height: torch.Tensor#
Effective clutter height \(h_c\) [m].
- property clutter_size: torch.Tensor#
Typical clutter size \(d_\mathrm{clutter}\) [m].
- property hall_dimensions: torch.Tensor#
Hall dimensions
(length, width, height)[m].
- property indoor_links_use_o2i_zenith_model: bool#
Use ordinary InF LoS/NLoS zenith-angle generation.
- property los_probability: torch.Tensor#
Probability of each BS-UT link to be LoS.
Computed from the InF formulas in Table 7.4.2-1 of [TR38901V1920]. For
"HH", the LOS probability is one. If the clutter density is zero, the formula is evaluated with the limiting behavior of an unobstructed hall, i.e., LOS probability close to one.Shape [batch size, num_bs, num_ut].
- property max_2d_in: torch.Tensor#
Maximum indoor 2D distance for indoor UTs [m].
- property min_2d_in: torch.Tensor#
Minimum indoor 2D distance for indoor UTs [m].
- set_topology(ut_loc: torch.Tensor | None = None, bs_loc: torch.Tensor | None = None, ut_orientations: torch.Tensor | None = None, bs_orientations: torch.Tensor | None = None, ut_velocities: torch.Tensor | None = None, in_state: torch.Tensor | None = None, los: bool | str | torch.Tensor | None = None, bs_virtual_loc: torch.Tensor | None = None, bs_site_ids: torch.Tensor | None = None, spatial_consistency_track_ids: torch.Tensor | None = None, distance_2d_in: torch.Tensor | None = None, ut_spatial_region_ids: torch.Tensor | None = None) bool[source]#
Set the network topology.
The arguments are identical to
set_topology(). The"HH"sub-scenario is LOS-only and rejects forced NLOS links.- Parameters:
ut_loc (torch.Tensor | None)
bs_loc (torch.Tensor | None)
ut_orientations (torch.Tensor | None)
bs_orientations (torch.Tensor | None)
ut_velocities (torch.Tensor | None)
in_state (torch.Tensor | None)
los (bool | str | torch.Tensor | None)
bs_virtual_loc (torch.Tensor | None)
bs_site_ids (torch.Tensor | None)
spatial_consistency_track_ids (torch.Tensor | None)
distance_2d_in (torch.Tensor | None)
ut_spatial_region_ids (torch.Tensor | None)