Random Trigger¶
The random trigger model introduces a synchronization offset that is uniformly distributed over the interval \([0, T_{\mathrm{Frame}}]\) where \(T_{\mathrm{Frame}}\) denotes the maximal frame duration of all devices controlled by the same trigger instance.
It can be configured by assigning the same RandomTrigger
instance to the trigger_model
property of multiple simulated devices:
# Create a new simulation featuring two sets of two linked, synchronized devices
simulation = Simulation()
# Create devices
device_A_Tx = simulation.new_device(carrier_frequency=3.7e9)
device_A_Rx = simulation.new_device(carrier_frequency=3.7e9)
device_B_Tx = simulation.new_device(carrier_frequency=3.9e9)
device_B_Rx = simulation.new_device(carrier_frequency=3.9e9)
# Specify trigger models
trigger_model_A = RandomTrigger()
device_A_Tx.trigger_model = trigger_model_A
device_A_Rx.trigger_model = trigger_model_A
trigger_model_B = RandomTrigger()
device_B_Tx.trigger_model = trigger_model_B
device_B_Rx.trigger_model = trigger_model_B
- class RandomTrigger[source]¶
Bases:
TriggerModel
,Serializable
Model of a trigger that generates a random offset between drop start and frame start
- realize(rng=None)[source]¶
Realize a triggering of all controlled devices.
- Parameters:
rng (np.random.Generator, optional) – Random number generator used to realize this trigger model. If not specified, the object’s internal generator will be queried.
- Return type:
Returns: Realization of the trigger model.