Radio Devices#

A radio device refers to a Transmitter or Receiver equipped with an AntennaArray as specified by the Scene’s properties tx_array and rx_array, respectively.

The following code snippet shows how to instantiate a Transmitter equipped with a \(4 \times 2\) PlanarArray with cross-polarized isotropic antennas:

from sionna.rt import load_scene, PlanarArray, Transmitter
scene = load_scene()
scene.tx_array = PlanarArray(num_rows=4,
                            num_cols=2,
                            pattern="iso",
                            polarization="cross")
tx = Transmitter(name="tx",
                position=(0,0,0),
                power_dbm=22)
scene.add(tx)

The position \((x,y,z)\) and orientation \((\alpha, \beta, \gamma)\) of a radio device can be freely configured. The latter is specified through three angles corresponding to a 3D rotation as defined in (3).

from sionna.rt import load_scene, Transmitter
scene = load_scene()
scene.add(Transmitter(name="tx", position=(0,0,0)))
tx = scene.get("tx")
tx.position=(10,20,30)
tx.orientation=(0.3,0,0.1)

Radio devices need to be explicitly added to the scene using the scene’s method add() and can be removed from it using remove():

from sionna.rt import load_scene, Transmitter
scene = load_scene()
scene.add(Transmitter(name="tx", position=(0,0,0)))
scene.remove("tx")
class sionna.rt.RadioDevice(name: str, position: mitsuba.Point3f, orientation: mitsuba.Point3f | None = None, look_at: mitsuba.Point3f | Self | None = None, velocity: mitsuba.Vector3f | None = None, color: Tuple[float, float, float] = (0, 0, 0), display_radius: float | None = None)[source]#

Class defining a generic radio device

The classes Transmitter and Receiver inherit from this class and should be used.

Parameters:
  • name (str) – Name

  • position (mitsuba.Point3f) – Position \((x,y,z)\) [m]

  • orientation (mitsuba.Point3f | None) – Orientation specified through three angles \((\alpha, \beta, \gamma)\) corresponding to a 3D rotation as defined in (3). This parameter is ignored if look_at is not None.

  • look_at (mitsuba.Point3f | Self | None) – A position or the instance of RadioDevices to look at. If set to None, then orientation is used to orientate the device.

  • velocity (mitsuba.Vector3f | None) – Velocity vector of the radio device [m/s]

  • color (Tuple[float, float, float]) – Defines the RGB (red, green, blue) color parameter for the device as displayed in the previewer and renderer. Each RGB component must have a value within the range \(\in [0,1]\).

  • display_radius (float | None) – Defines the radius, in meters, of the sphere that will represent this device when displayed in the previewer and renderer. If not specified, the radius will be chosen automatically using a heuristic.

Methods

look_at(target: mitsuba.Point3f | Self)[source]#

Sets the orientation so that the x-axis points toward a position, or radio device.

Given a point \(\mathbf{x}\in\mathbb{R}^3\) with spherical angles \(\theta\) and \(\varphi\), the orientation of the radio device will be set equal to \((\varphi, \frac{\pi}{2}-\theta, 0.0)\).

Parameters:

target (mitsuba.Point3f | Self) – A position, or instance of a RadioDevice, in the scene to look at

Attributes

property color#

Get/set the the RGB (red, green, blue) color for the device as displayed in the previewer and renderer. Each RGB component must have a value within the range \(\in [0,1]\).

Type:

Tuple[float, float, float]

property display_radius#

float | None: Get/set the radius [m] of the sphere that represents this device when displayed in the previewer and renderer. If set to None, the radius will be chosen automatically using a heuristic.

property name#

Name

Type:

str

property orientation#

Get/set the orientation

Type:

mi.Point3f

property position#

Get/set the position

Type:

mi.Point3f

property velocity#

Get/set the velocity

Type:

mi.Vector3f

class sionna.rt.Receiver(name: str, position: mitsuba.Point3f, orientation: mitsuba.Point3f | None = None, look_at: mitsuba.Point3f | Self | None = None, velocity: mitsuba.Vector3f | None = None, color: Tuple[float, float, float] = (0.4, 0.8, 0.4), display_radius: float | None = None)[source]#

Class defining a receiver

Parameters:
  • name (str) – Name

  • position (mitsuba.Point3f) – Position \((x,y,z)\) [m]

  • orientation (mitsuba.Point3f | None) – Orientation specified through three angles \((\alpha, \beta, \gamma)\) corresponding to a 3D rotation as defined in (3). This parameter is ignored if look_at is not None.

  • look_at (mitsuba.Point3f | Self | None) – A position or the instance of RadioDevices to look at. If set to None, then orientation is used to orientate the device.

  • velocity (mitsuba.Vector3f | None) – Velocity vector of the receiver [m/s]

  • color (Tuple[float, float, float]) – Defines the RGB (red, green, blue) color parameter for the device as displayed in the previewer and renderer. Each RGB component must have a value within the range \(\in [0,1]\).

  • display_radius (float | None) – Defines the radius, in meters, of the sphere that will represent this device when displayed in the previewer and renderer. If not specified, the radius will be chosen automatically using a heuristic.

class sionna.rt.Transmitter(name: str, position: mitsuba.Point3f, orientation: mitsuba.Point3f | None = None, look_at: mitsuba.Point3f | Self | None = None, velocity: mitsuba.Vector3f | None = None, power_dbm=44, color: Tuple[float, float, float] = (1.0, 0.0, 0.0), display_radius: float | None = None)[source]#

Class defining a transmitter

Parameters:
  • name (str) – Name

  • position (mitsuba.Point3f) – Position \((x,y,z)\) [m]

  • power_dbm – Transmit power [dBm]

  • orientation (mitsuba.Point3f | None) – Orientation specified through three angles \((\alpha, \beta, \gamma)\) corresponding to a 3D rotation as defined in (3). This parameter is ignored if look_at is not None.

  • look_at (mitsuba.Point3f | Self | None) – A position or the instance of RadioDevices to look at. If set to None, then orientation is used to orientate the device.

  • velocity (mitsuba.Vector3f | None) – Velocity vector of the transmitter [m/s]

  • color (Tuple[float, float, float]) – Defines the RGB (red, green, blue) color parameter for the device as displayed in the previewer and renderer. Each RGB component must have a value within the range \(\in [0,1]\).

  • display_radius (float | None) – Defines the radius, in meters, of the sphere that will represent this device when displayed in the previewer and renderer. If not specified, the radius will be chosen automatically using a heuristic.

Attributes

property power#

Get the transmit power [W]

Type:

mi.Float

property power_dbm#

Get/set transmit power [dBm]

Type:

mi.ScalarFloat