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, position, orientation=None, look_at=None, velocity=None, color=(0, 0, 0), display_radius=None)[source]
Class defining a generic radio device
The classes
Transmitter
andReceiver
inherit from this class and should be used.- Parameters:
name (
str
) – Nameposition (
mitsuba.Point3f
) – Position \((x,y,z)\) [m]orientation (
typing.Optional
[mitsuba.Point3f
]) – Orientation specified through three angles \((\alpha, \beta, \gamma)\) corresponding to a 3D rotation as defined in (3). This parameter is ignored iflook_at
is notNone
.look_at (
typing.Union
[mitsuba.Point3f
,typing.Self
,None
]) – A position or the instance ofRadioDevices
to look at. If set toNone
, thenorientation
is used to orientate the device.velocity (
typing.Optional
[mitsuba.Vector3f
]) – Velocity vector of the radio device [m/s]color (
typing.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 (
typing.Optional
[float
]) – 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.
- 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
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.
- Type:
float | None
- look_at(target)[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 (
typing.Union
[mitsuba.Point3f
,typing.Self
]) – A position, or instance of aRadioDevice
, in the scene to look at
- 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, position, orientation=None, look_at=None, velocity=None, color=(0.4, 0.8, 0.4), display_radius=None)[source]
Class defining a receiver
- Parameters:
name (
str
) – Nameposition (
mitsuba.Point3f
) – Position \((x,y,z)\) [m]orientation (
typing.Optional
[mitsuba.Point3f
]) – Orientation specified through three angles \((\alpha, \beta, \gamma)\) corresponding to a 3D rotation as defined in (3). This parameter is ignored iflook_at
is notNone
.look_at (
typing.Union
[mitsuba.Point3f
,typing.Self
,None
]) – A position or the instance ofRadioDevices
to look at. If set toNone
, thenorientation
is used to orientate the device.velocity (
typing.Optional
[mitsuba.Vector3f
]) – Velocity vector of the receiver [m/s]color (
typing.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 (
typing.Optional
[float
]) – 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, position, orientation=None, look_at=None, velocity=None, power_dbm=44, color=(1.0, 0.0, 0.0), display_radius=None)[source]
Class defining a transmitter
- Parameters:
name (
str
) – Nameposition (
mitsuba.Point3f
) – Position \((x,y,z)\) [m]power_dbm – Transmit power [dBm]
orientation (
typing.Optional
[mitsuba.Point3f
]) – Orientation specified through three angles \((\alpha, \beta, \gamma)\) corresponding to a 3D rotation as defined in (3). This parameter is ignored iflook_at
is notNone
.look_at (
typing.Union
[mitsuba.Point3f
,typing.Self
,None
]) – A position or the instance ofRadioDevices
to look at. If set toNone
, thenorientation
is used to orientate the device.velocity (
typing.Optional
[mitsuba.Vector3f
]) – Velocity vector of the transmitter [m/s]color (
typing.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 (
typing.Optional
[float
]) – 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.
- property power
Get the transmit power [W]
- Type:
mi.Float
- property power_dbm
Get/set transmit power [dBm]
- Type:
mi.ScalarFloat