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 [TR38901] specification

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

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" or "38.901".

  • 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