Antenna Arrays#

class sionna.rt.AntennaArray(antenna_pattern: sionna.rt.antenna_pattern.AntennaPattern, normalized_positions: mitsuba.Point3f)[source]#

Class implementing an antenna array

An antenna array is composed of antennas which are placed at different positions. All antennas share the same antenna pattern, which can be single- or dual-polarized.

Parameters:
  • antenna_pattern (sionna.rt.antenna_pattern.AntennaPattern) – Antenna pattern to be used across the array

  • normalized_positions (mitsuba.Point3f) – Array of relative positions of each antenna with respect to the position of the radio device, normalized by the wavelength. Dual-polarized antennas are counted as a single antenna and share the same position.

Methods

positions(wavelength: float) mitsuba.Point3f[source]#

Get the relative positions of all antennas (dual-polarized antennas are counted as a single antenna and share the same position).

Positions are computed by scaling the normalized positions of antennas by the wavelength.

Parameters:

wavelength (float) – Wavelength [m]

Returns:

Relative antenna positions \((x,y,z)\) [m]

rotate(wavelength: float, orientation: mitsuba.Point3f) mitsuba.Point3f[source]#

Computes the relative positions of all antennas rotated according to the orientation

Dual-polarized antennas are counted as a single antenna and share the same position.

Positions are computed by scaling the normalized positions of antennas by the wavelength and rotating by orientation.

Parameters:
  • wavelength (float) – Wavelength [m]

  • orientation (mitsuba.Point3f) – Orientation [rad] specified through three angles corresponding to a 3D rotation as defined in (3)

Returns:

Rotated relative antenna positions \((x,y,z)\) [m]

Attributes

property antenna_pattern#

Get/set the antenna pattern

Type:

AntennaPattern

property array_size#

Number of antennas in the array. Dual-polarized antennas are counted as a single antenna.

Type:

int

property normalized_positions#

Get/set array of relative normalized positions \((x,y,z)\) [\(\lambda\)] of each antenna. Dual-polarized antennas are counted as a single antenna and share the same position.

Type:

mi.Point3f

property num_ant#

Number of linearly polarized antennas in the array. Dual-polarized antennas are counted as two linearly polarized antennas.

Type:

int

class sionna.rt.PlanarArray(*, num_rows: int, num_cols: int, vertical_spacing: float = 0.5, horizontal_spacing: float = 0.5, pattern: str, **kwargs)[source]#

Class implementing a planar antenna array

The antennas of a planar array are regularly spaced, located in the y-z plane, and numbered column-first from the top-left to bottom-right corner.

Parameters:

Keyword Arguments#

polarizationstr

Name of a registered polarization :list-registry:`sionna.rt.antenna_pattern.polarization_registry`

polarization_model: str

Name of a registered polarization model :list-registry:`sionna.rt.antenna_pattern.polarization_model_registry`. Defaults to “tr38901_2”.

**kwargs: Any

Depending on the chosen antenna pattern, other keyword arguments must be provided. See the Developer Guide for more details.

Example#

from sionna.rt import PlanarArray
array = PlanarArray(num_rows=8, num_cols=4,
                    pattern="tr38901",
                    polarization="VH")
array.show()
../../_images/antenna_array.png
positions(wavelength: float) mitsuba.Point3f#

Get the relative positions of all antennas (dual-polarized antennas are counted as a single antenna and share the same position).

Positions are computed by scaling the normalized positions of antennas by the wavelength.

Parameters:

wavelength (float) – Wavelength [m]

Returns:

Relative antenna positions \((x,y,z)\) [m]

rotate(wavelength: float, orientation: mitsuba.Point3f) mitsuba.Point3f#

Computes the relative positions of all antennas rotated according to the orientation

Dual-polarized antennas are counted as a single antenna and share the same position.

Positions are computed by scaling the normalized positions of antennas by the wavelength and rotating by orientation.

Parameters:
  • wavelength (float) – Wavelength [m]

  • orientation (mitsuba.Point3f) – Orientation [rad] specified through three angles corresponding to a 3D rotation as defined in (3)

Returns:

Rotated relative antenna positions \((x,y,z)\) [m]

show()[source]#

Visualizes the planar antenna array

Antennas are depicted by markers that are annotated with the antenna number. The marker is not related to the polarization of an antenna.

Output#

: matplotlib.pyplot.Figure

Figure depicting the antenna array

property antenna_pattern#

Get/set the antenna pattern

Type:

AntennaPattern

property array_size#

Number of antennas in the array. Dual-polarized antennas are counted as a single antenna.

Type:

int

property normalized_positions#

Get/set array of relative normalized positions \((x,y,z)\) [\(\lambda\)] of each antenna. Dual-polarized antennas are counted as a single antenna and share the same position.

Type:

mi.Point3f

property num_ant#

Number of linearly polarized antennas in the array. Dual-polarized antennas are counted as two linearly polarized antennas.

Type:

int