AntennaArray#

class sionna.phy.channel.tr38901.AntennaArray(num_rows: int, num_cols: int, polarization: str, polarization_type: str, antenna_pattern: str, carrier_frequency: float, vertical_spacing: float | None = None, horizontal_spacing: float | None = None, precision: str | None = None, device: str | None = None)[source]#

Bases: sionna.phy.channel.tr38901.antenna.PanelArray

Antenna array following the [TR38901V1920] specification

This class is a special case of PanelArray, and can be used in lieu of it.

All num_rows \(\times\) num_cols elements form a single panel in the \(y-z\) plane of the local coordinate system, centered on its origin. Note that num_rows and num_cols count antenna elements here, whereas they count panels in PanelArray.

../../../../_images/antenna_array_geometry.svg

Fig. 15 Geometry of an antenna array. The element spacings horizontal_spacing (\(d_\text{H}\)) and vertical_spacing (\(d_\text{V}\)) are specified in multiples of the wavelength that corresponds to carrier_frequency. For dual polarization, the two orthogonally polarized elements of a position are co-located. The local \(x\)-axis points out of the shown plane.#

Parameters:
  • num_rows (int) – Number of rows of elements

  • num_cols (int) – Number of columns of elements

  • 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]

  • vertical_spacing (float | None) – Element vertical spacing [multiple of wavelength]. Defaults to 0.5 if set to None.

  • 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 AntennaArray

array = AntennaArray(num_rows=4,
                     num_cols=4,
                     polarization='dual',
                     polarization_type='cross',
                     antenna_pattern='38.901',
                     carrier_frequency=3.5e9)
print(array.num_ant)
# 32
array.show()
../../../../_images/antenna_array_show.png

Fig. 16 Output of show() for the array of the example above. The 4 \(\times\) 4 positions each carry two cross-polarized elements, and the annotations are the port indices.#