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.PanelArrayAntenna 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_colselements form a single panel in the \(y-z\) plane of the local coordinate system, centered on its origin. Note thatnum_rowsandnum_colscount antenna elements here, whereas they count panels inPanelArray.Fig. 15 Geometry of an antenna array. The element spacings
horizontal_spacing(\(d_\text{H}\)) andvertical_spacing(\(d_\text{V}\)) 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. 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,
precisionis used.device (str | None) – Device for computation (e.g.,
"cpu","cuda:0"). If None,deviceis 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()
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.#