PRX_ModulatedCustomWaveForms#
- class iqm.pulse.gates.prx.PRX_ModulatedCustomWaveForms(parent, name, locus, calibration_data, builder)#
Bases:
PRX_CustomWaveforms
ABC for PRX gates with modulated frequency, hot-swappable waveforms.
The class takes baseband I and Q waveform as input, and modulates them with frequency in the root_parameters. The final pulse shape after modulation is:
\[A_I^{\delta}\Omega_I(t)\cos((\omega_d + \delta)t) - A_Q^{\delta}\Omega_Q(t)\sin((\omega_d + \delta)t)\]where \(A_I\) is amplitude_i, \(A_Q\) is amplitude_q, \(\Omega\) is arbitrary waveform in baseband, \(\omega_d/2\pi\) is the drive frequency and \(\delta/2\pi\) is the modulated frequency.
Module:
iqm.pulse.gates.prx
Attributes
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).Parameters independent of the of Waveforms.
wave_i
Waveform for the I channel.
wave_q
Waveform for the Q channel.
Methods
- Parameters:
parent (QuantumOp) –
name (str) –
locus (Locus) –
calibration_data (OILCalibrationData) –
builder (ScheduleBuilder) –
- root_parameters: dict[str, Parameter | Setting] = {'amplitude_i': Parameter(name='', label='pi pulse amplitude of base band I waveform', unit='', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'amplitude_q': Parameter(name='', label='pi pulse amplitude of base band Q waveform', unit='', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'duration': Parameter(name='', label='pi pulse duration', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'frequency': Parameter(name='', label='modulated pulse frequency', unit='Hz', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=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)#
Return the IQPulse with modulated arbitrary waveform based on the calibration data.