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 [TR38901V1920] 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,RMa, andInH, andInFmodels.An array is made of
num_rows\(\times\)num_colspanels, and every panel carriesnum_rows_per_panel\(\times\)num_cols_per_panelelements. All elements lie in the \(y-z\) plane of the local coordinate system and the array is centered on its origin. Element and panel spacings are specified in multiples of the wavelength that corresponds tocarrier_frequency. For dual polarization, the two orthogonally polarized elements of a position are co-located.Fig. 13 Geometry of a panel array. The element spacings
element_horizontal_spacing(\(d_\text{H}\)) andelement_vertical_spacing(\(d_\text{V}\)) apply within a panel, whereas the panel spacingspanel_horizontal_spacing(\(D_\text{H}\)) andpanel_vertical_spacing(\(D_\text{V}\)) are measured between corresponding elements of adjacent panels. The local \(x\)-axis points out of the shown plane.#- 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","38.901", or"38.901-handheld".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 height. If set to None, it is set to the panel height + 0.5.
panel_horizontal_spacing (float | None) – Horizontal spacing of panels [in multiples of wavelength]. Must be greater than the panel width. If set to None, it is set to the panel width + 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()
Fig. 14 Output of
show()for the array of the example above. The two panels of 4 \(\times\) 4 vertically and horizontally polarized elements are separated by three wavelengths, and the annotations are the port indices.#Attributes
- 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_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_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.
- property element_horizontal_spacing: torch.Tensor#
Horizontal spacing between the antenna elements within a panel [multiple of wavelength]
- property element_vertical_spacing: torch.Tensor#
Vertical spacing between the antenna elements within a panel [multiple of wavelength]
- property panel_horizontal_spacing: torch.Tensor#
Horizontal spacing between the panels [multiple of wavelength]
- property panel_vertical_spacing: torch.Tensor#
Vertical spacing between the panels [multiple of wavelength]
- property polarization_type: str#
Polarization type.
"V"or"H"for single polarization."VH"or"cross"for dual polarization.
Methods