PanelArray#
- class sionna.phy.channel.tr38901.PanelArray(num_rows_per_panel: int, num_cols_per_panel: int, polarization: str, polarization_type: str, antenna_pattern: str, carrier_frequency: float, num_rows: int = 1, num_cols: int = 1, panel_vertical_spacing: float | None = None, panel_horizontal_spacing: float | None = None, element_vertical_spacing: float | None = None, element_horizontal_spacing: float | None = None, precision: str | None = None, device: str | None = None)[source]#
Bases:
sionna.phy.object.ObjectAntenna panel array following the [TR38901] specification
This class is used to create models of the panel arrays used by the transmitters and receivers and that need to be specified when using the
CDL,UMi,UMa, andRMamodels.- Parameters:
num_rows_per_panel (int) – Number of rows of elements per panel
num_cols_per_panel (int) – Number of columns of elements per panel
polarization (str) – Polarization. One of
"single"or"dual".polarization_type (str) – Type of polarization. For single polarization, must be
"V"or"H". For dual polarization, must be"VH"or"cross".antenna_pattern (str) – Element radiation pattern. One of
"omni"or"38.901".carrier_frequency (float) – Carrier frequency [Hz]
num_rows (int) – Number of rows of panels. Defaults to 1.
num_cols (int) – Number of columns of panels. Defaults to 1.
panel_vertical_spacing (float | None) – Vertical spacing of panels [multiples of wavelength]. Must be greater than the panel width. If set to None, it is set to the panel width + 0.5.
panel_horizontal_spacing (float | None) – Horizontal spacing of panels [in multiples of wavelength]. Must be greater than the panel height. If set to None, it is set to the panel height + 0.5.
element_vertical_spacing (float | None) – Element vertical spacing [multiple of wavelength]. Defaults to 0.5 if set to None.
element_horizontal_spacing (float | None) – Element horizontal spacing [multiple of wavelength]. Defaults to 0.5 if set to None.
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.
Examples
from sionna.phy.channel.tr38901 import PanelArray array = PanelArray(num_rows_per_panel=4, num_cols_per_panel=4, polarization='dual', polarization_type='VH', antenna_pattern='38.901', carrier_frequency=3.5e9, num_cols=2, panel_horizontal_spacing=3.) array.show()
Attributes
- property polarization_type: str#
Polarization type.
"V"or"H"for single polarization."VH"or"cross"for dual polarization.
- property panel_vertical_spacing: torch.Tensor#
Vertical spacing between the panels [multiple of wavelength]
- property panel_horizontal_spacing: torch.Tensor#
Horizontal spacing between the panels [multiple of wavelength]
- property element_vertical_spacing: torch.Tensor#
Vertical spacing between the antenna elements within a panel [multiple of wavelength]
- property element_horizontal_spacing: torch.Tensor#
Horizontal spacing between the antenna elements within a panel [multiple of wavelength]
- property ant_pol1: sionna.phy.channel.tr38901.antenna.AntennaElement#
Field of an antenna element with the first polarization direction
- property ant_pol2: sionna.phy.channel.tr38901.antenna.AntennaElement#
Field of an antenna element with the second polarization direction. Only defined with dual polarization.
- property ant_pos: torch.Tensor#
Positions of the antennas
- property ant_ind_pol1: torch.Tensor#
Indices of antenna elements with the first polarization direction
- property ant_ind_pol2: torch.Tensor#
Indices of antenna elements with the second polarization direction. Only defined with dual polarization.
- property ant_pos_pol1: torch.Tensor#
Positions of the antenna elements with the first polarization direction
- property ant_pos_pol2: torch.Tensor#
Positions of antenna elements with the second polarization direction. Only defined with dual polarization.
Methods