UMa#
- class sionna.phy.channel.tr38901.UMa(carrier_frequency: float, o2i_model: str, ut_array: sionna.phy.channel.tr38901.antenna.PanelArray, bs_array: sionna.phy.channel.tr38901.antenna.PanelArray, direction: str, enable_pathloss: bool = True, enable_shadow_fading: bool = True, always_generate_lsp: bool = False, precision: str | None = None, device: str | None = None)[source]#
Bases:
sionna.phy.channel.tr38901.system_level_channel.SystemLevelChannelUrban macrocell (UMa) channel model from 3GPP [TR38901] specification.
Setting up a UMa model requires configuring the network topology, i.e., the UTs and BSs locations, UTs velocities, etc. This is achieved using the
set_topology()method. Setting a different topology for each batch example is possible. The batch size used when setting up the network topology is used for the link simulations.- Parameters:
carrier_frequency (float) – Carrier frequency [Hz]
o2i_model (str) – Outdoor-to-indoor loss model for UTs located indoor. Set this parameter to
"low"to use the low-loss model, or to"high"to use the high-loss model. See section 7.4.3 of [TR38901] for details.ut_array (sionna.phy.channel.tr38901.antenna.PanelArray) – Panel array used by the UTs. All UTs share the same antenna array configuration.
bs_array (sionna.phy.channel.tr38901.antenna.PanelArray) – Panel array used by the BSs. All BSs share the same antenna array configuration.
direction (str) – Link direction. Either
"uplink"or"downlink".enable_pathloss (bool) – If True, apply pathloss. Otherwise don’t. Defaults to True.
enable_shadow_fading (bool) – If True, apply shadow fading. Otherwise don’t. Defaults to True.
always_generate_lsp (bool) – If True, new large scale parameters (LSPs) are generated for every new generation of channel impulse responses. Otherwise, always reuse the same LSPs, except if the topology is changed. Defaults to False.
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.
- Inputs:
num_time_samples – int. Number of time samples.
sampling_frequency – float. Sampling frequency [Hz].
- Outputs:
a – [batch size, num_rx, num_rx_ant, num_tx, num_tx_ant, num_paths, num_time_samples], torch.complex. Path coefficients.
tau – [batch size, num_rx, num_tx, num_paths], torch.float. Path delays [s].
Examples
import torch from sionna.phy.channel.tr38901 import PanelArray, UMa # UT and BS panel arrays bs_array = PanelArray(num_rows_per_panel=4, num_cols_per_panel=4, polarization='dual', polarization_type='cross', antenna_pattern='38.901', carrier_frequency=3.5e9) ut_array = PanelArray(num_rows_per_panel=1, num_cols_per_panel=1, polarization='single', polarization_type='V', antenna_pattern='omni', carrier_frequency=3.5e9) # Instantiating UMa channel model channel_model = UMa(carrier_frequency=3.5e9, o2i_model='low', ut_array=ut_array, bs_array=bs_array, direction='uplink') # Setting up network topology channel_model.set_topology(ut_loc, bs_loc, ut_orientations, bs_orientations, ut_velocities, in_state) # Generate channel h, delays = channel_model(num_time_samples=100, sampling_frequency=1e6)