BlockageModelA#
- class sionna.phy.channel.tr38901.BlockageModelA(scenario: SystemLevelScenario, self_blocking: str, num_non_self_blockers: int = 4, precision: str | None = None, device: str | None = None)[source]#
Bases:
sionna.phy.object.ObjectStochastic blockage model A from 3GPP TR 38.901.
This model implements the add-on blockage procedure from Section 7.6.4.1 of [TR38901V1920]. It generates rectangular angular blocking regions around each UT and returns the corresponding blockage attenuation for the cluster arrival angles. The LOS/NLOS state of a link is not changed by this model.
For non-self-blocking regions, the loss for a cluster with azimuth angle of arrival \(\phi_\mathrm{AOA}\) and zenith angle of arrival \(\theta_\mathrm{ZOA}\) is
\[L_\mathrm{dB} = -20 \log_{10}\left( 1 - (F_{A_1}+F_{A_2})(F_{Z_1}+F_{Z_2}) \right)\]if \(|\phi_\mathrm{AOA}-\phi_k|<x_k\) and \(|\theta_\mathrm{ZOA}-\theta_k|<y_k\), and zero otherwise. The terms \(F_{A_1}\), \(F_{A_2}\), \(F_{Z_1}\), and \(F_{Z_2}\) follow Eq. (7.6-23) with the signs from Table 7.6.4.1-3 of [TR38901V1920]. A compliant Model A realization also includes one self-blocking region. An additional 30 dB loss is added for clusters inside the selected portrait or landscape region from Table 7.6.4.1-1. The explicit
"none"mode omits this region and is a non-standard extension.The non-self-blocker centre angles are generated as all-correlated uniform random variables over BS links, following Section 7.6.3.4 of [TR38901V1920]. The specified exponential correlation \(\rho_u\) is imposed with a Gaussian copula whose latent correlation is \(\rho_g=2\sin(\pi\rho_u/6)\). Their spatial correlation distance is 10 m for outdoor UMi, UMa, and RMa UTs, 5 m for O2I UTs, and 5 m for InH UTs, as specified by Table 7.6.4.1-4.
Model A is not available for InF because Tables 7.6.4.1-2 and 7.6.4.1-4 provide neither blocker distributions nor spatial-correlation distances for InF. Use
BlockageModelBwith explicit blocker geometry for indoor-factory channels.The optional, on-demand temporal variability of blockage described by TR 38.901 is currently not supported. Blockage attenuation does not evolve over the time samples of a generated channel realization.
- Parameters:
scenario (SystemLevelScenario) – System-level TR 38.901 scenario.
self_blocking (str) – Self-blocking mode. Must be
"portrait"or"landscape"for a compliant Model A realization. The explicit value"none"disables self-blocking as a non-standard extension.num_non_self_blockers (int) – Number of non-self-blocking regions. The default value of 4 follows Section 7.6.4.1 of [TR38901V1920].
precision (str | None) – Precision used for internal calculations. If None, the scenario precision is used.
device (str | None) – Device for computation. If None, the scenario device is used.
- Inputs:
aoa – Cluster azimuth angles of arrival [degree], shape
[batch size, num_bs, num_ut, num_clusters].zoa – Cluster zenith angles of arrival [degree], shape
[batch size, num_bs, num_ut, num_clusters].los_aoa – Optional LOS azimuth angles of arrival [degree], shape
[batch size, num_bs, num_ut].los_zoa – Optional LOS zenith angles of arrival [degree], shape
[batch size, num_bs, num_ut].
- Outputs:
cluster_loss_db – Blockage attenuation [dB] for each cluster, shape
[batch size, num_bs, num_ut, num_clusters].los_loss_db – Blockage attenuation [dB] for the deterministic LOS component, or None if
los_aoaorlos_zoais None.
Methods
- allocate_topology_tensors(batch_size: int, num_bs: int, num_ut: int) None[source]#
Pre-allocate topology-dependent blockage buffers.
Model A samples one blocker realization per UT and shares it across base stations.
num_bsis retained for the common channel-allocation interface but does not determine a buffer dimension here.
Attributes