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.Object

Antenna 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, and RMa models.

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, precision is used.

  • device (str | None) – Device for computation (e.g., "cpu", "cuda:0"). If None, device is 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 num_rows: int#

Number of rows of panels

property num_cols: int#

Number of columns of panels

property num_rows_per_panel: int#

Number of rows of elements per panel

property num_cols_per_panel: int#

Number of columns of elements per panel

property polarization: str#

Polarization (‘single’ or ‘dual’)

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 num_panels: int#

Number of panels

property num_panels_ant: int#

Number of antenna elements per panel

property num_ant: int#

Total number of antenna elements

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

show() None[source]#

Show the panel array geometry

show_element_radiation_pattern() None[source]#

Show the radiation field of antenna elements forming the panel