Physical Device Scenario#

class PhysicalScenario(seed=None, devices=None)#

Bases: Scenario[PDT], Generic[PDT]

Scenario of physical device bindings.

Managing physical devices by a scenario enables synchronized triggering and shared random seed configuration.

Parameters:
  • seed (int, optional) – Random seed used to initialize the pseudo-random number generator.

  • devices (List[Device], optional) – Devices to be added to the scenario during initialization.

receive_devices(impinging_signals=None, cache=True)#

Receive over all scenario devices.

Internally calls Scenario.process_inputs() and Scenario.receive_devices().

Parameters:
  • impinging_signals (Sequence[DeviceInput | Signal | Sequence[Signal]] | None, optional) – List of signals impinging onto the devices. If not specified, the device will download the signal samples from its binding.

  • cache (bool, optional) – Cache the operator inputs at the registered receive operators for further processing. Enabled by default.

Return type:

Sequence[DeviceReception]

Returns: List of the processed device input information.

Raises:

ValueError – If the number of impinging_signals does not match the number of registered devices.

add_device(device)#

Add a new device to the scenario.

Parameters:

device (Device) – New device to be added to the scenario.

Raises:
  • ValueError – If the device already exists.

  • RuntimeError – If the scenario is not in default mode.

Return type:

None

class PhysicalScenarioType#

Type of physical scenario

alias of TypeVar(‘PhysicalScenarioType’, bound=PhysicalScenario)

class SimulatedPhysicalScenario(snr=inf, snr_type=SNRType.PN0, *args, **kwargs)#

Bases: SimulationScenario, PhysicalScenario

Simulated physical scenario for testing purposes.

Parameters:
  • snr (float, optional) – The assumed linear signal to noise ratio. Infinite by default, i.e. no added noise during reception.

  • snr_type (Union[str, SNRType], optional) – The signal to noise ratio metric to be used. By default, signal power to noise power is assumed.

receive_devices(impinging_signals=None, cache=True, trigger_realizations=None)#

Receive over all simulated scenario devices.

Internally calls SimulationScenario.process_inputs() and Scenario.receive_operators().

Parameters:
  • impinging_signals (List[Union[DeviceInput, Signal, Iterable[Signal]]]) – List of signals impinging onto the devices.

  • cache (bool, optional) – Cache the operator inputs at the registered receive operators for further processing. Enabled by default.

  • trigger_realizations (Sequence[TriggerRealization], optional) – Sequence of trigger realizations. If not specified, ideal triggerings are assumed for all devices.

Return type:

Sequence[SimulatedDeviceReception]

Returns: List of the processed device input information.

Raises:

ValueError – If the number of impinging_signals does not match the number of registered devices.