PRX_CustomWaveforms#

class iqm.pulse.gates.prx.PRX_CustomWaveforms(parent, name, locus, calibration_data, builder)#

Bases: PRX_SinglePulse_GateImplementation, CustomIQWaveforms

ABC for PRX gates implemented using a single IQ pulse and hot-swappable waveforms.

Module: iqm.pulse.gates.prx

Attributes

dependent_waves

If set True, the Q channel waveform is considered to depend on the I channel's waveform so that they share the waveform parameters, (e.g. a DRAG PRX implementation).

root_parameters

Parameters independent of the of Waveforms.

wave_i

Waveform for the I channel.

wave_q

Waveform for the Q channel.

Methods

Parameters:
root_parameters: dict[str, Parameter | Setting] = {'amplitude_i': Parameter(name='', label='pi pulse I channel amplitude', unit='', data_type=<DataType.NUMBER: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None, _parent_name=None, _parent_label=None), 'amplitude_q': Parameter(name='', label='pi pulse Q channel amplitude', unit='', data_type=<DataType.NUMBER: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None, _parent_name=None, _parent_label=None), 'duration': Parameter(name='', label='pi pulse duration', unit='s', data_type=<DataType.NUMBER: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None, _parent_name=None, _parent_label=None)}#

Parameters independent of the of Waveforms. Inheriting classes may override this to include parameters common to all such implementations.

classmethod _get_pulse(*, amplitude_i, amplitude_q, n_samples, **rest_of_calibration_data)#

Builds an x_pi pulse out of the calibration data.

Parameters:
  • amplitude_i (float) –

  • amplitude_q (float) –

  • n_samples (int) –

Return type:

IQPulse

dependent_waves: bool = True#

If set True, the Q channel waveform is considered to depend on the I channel’s waveform so that they share the waveform parameters, (e.g. a DRAG PRX implementation). If not provided, will be initialised as True.