timedomain_schedules#
Module containing schedules for common time domain experiments such as a Rabi and T1 measurement.
Module Contents#
Functions#
| 
 | Generate a schedule for performing a Rabi using a Gaussian pulse. | 
| 
 | Generate a schedule for performing a \(T_1\) experiment to measure the qubit | 
| 
 | Generate a schedule for performing a Ramsey experiment to measure the | 
| 
 | Generate a schedule for performing an Echo experiment to measure the qubit | 
| 
 | Generate a schedule for performing a CPMG (n gates) experiment to measure the qubit | 
| 
 | Generate a schedule for performing an AllXY experiment. | 
| A schedule for readout calibration. Prepares a state and immediately performs | |
| 
 | Generate a schedule for performing a Rabi experiment using a | 
- rabi_sched(pulse_amp: numpy.ndarray | float, pulse_duration: numpy.ndarray | float, frequency: float, qubit: str, port: str = None, clock: str = None, repetitions: int = 1) quantify_scheduler.schedules.schedule.Schedule[source]#
- Generate a schedule for performing a Rabi using a Gaussian pulse. - Schedule sequence
- Reset – DRAG – Measure 
 - Parameters:
- pulse_amp – amplitude of the Rabi pulse in V. 
- pulse_duration – duration of the Gaussian shaped Rabi pulse. Corresponds to 4 sigma. 
- frequency – frequency of the qubit 01 transition. 
- qubit – the device element name on which to perform a Rabi experiment. 
- port – location on the chip where the Rabi pulse should be applied. if set to - None, will use the naming convention- "<device element name>:mw"to infer the port.
- clock – name of the location in frequency space where to apply the Rabi pulse. if set to - None, will use the naming convention- "<device_element>.01"to infer the clock.
- repetitions – The amount of times the Schedule will be repeated. 
 
 
- t1_sched(times: numpy.ndarray | float, qubit: str, repetitions: int = 1) quantify_scheduler.schedules.schedule.Schedule[source]#
- Generate a schedule for performing a \(T_1\) experiment to measure the qubit relaxation time. - Schedule sequence
- Reset – pi – Idle(tau) – Measure 
 - See section III.B.2. of Krantz et al. [KKY+19] for an explanation of the Bloch-Redfield model of decoherence and the \(T_1\) experiment. - Parameters:
- times – an array of wait times tau between the start of pi-pulse and the measurement. 
- qubit – the name of the device element e.g., - "q0"to perform the T1 experiment on.
- repetitions – The amount of times the Schedule will be repeated. 
 
- Returns:
- An experiment schedule. 
 
- ramsey_sched(times: numpy.ndarray | float, qubit: str, artificial_detuning: float = 0, repetitions: int = 1) quantify_scheduler.schedules.schedule.Schedule[source]#
- Generate a schedule for performing a Ramsey experiment to measure the dephasing time \(T_2^{\star}\). - Schedule sequence
- Reset – pi/2 – Idle(tau) – pi/2 – Measure 
 - See section III.B.2. of Krantz et al. [KKY+19] for an explanation of the Bloch-Redfield model of decoherence and the Ramsey experiment. - Parameters:
- times – an array of wait times tau between the start of the first pi/2 pulse and the start of the second pi/2 pulse. 
- artificial_detuning – frequency in Hz of the software emulated, or - artificialqubit detuning, which is implemented by changing the phase of the second pi/2 (recovery) pulse. The artificial detuning changes the observed frequency of the Ramsey oscillation, which can be useful to distinguish a slow oscillation due to a small physical detuning from the decay of the dephasing noise.
- qubit – the name of the device element e.g., - "q0"to perform the Ramsey experiment on.
- repetitions – The amount of times the Schedule will be repeated. 
 
- Returns:
- An experiment schedule. 
 
- echo_sched(times: numpy.ndarray | float, qubit: str, repetitions: int = 1) quantify_scheduler.schedules.schedule.Schedule[source]#
- Generate a schedule for performing an Echo experiment to measure the qubit echo-dephasing time \(T_2^{E}\). - Schedule sequence
- Reset – pi/2 – Idle(tau/2) – pi – Idle(tau/2) – pi/2 – Measure 
 - See section III.B.2. of Krantz et al. [KKY+19] for an explanation of the Bloch-Redfield model of decoherence and the echo experiment. - Parameters:
- qubit – the name of the device element e.g., “q0” to perform the echo experiment on. 
- times – an array of wait times. Used as tau/2 wait time between the start of the first pi/2 pulse and pi pulse, tau/2 wait time between the start of the pi pulse and the final pi/2 pulse. 
- repetitions – The amount of times the Schedule will be repeated. 
 
- Returns:
- An experiment schedule. 
 
- cpmg_sched(n_gates: int, times: numpy.ndarray | float, qubit: str, variant: Literal['X', 'Y', 'XY'] = 'X', artificial_detuning: float = 0, repetitions: int = 1) quantify_scheduler.schedules.schedule.Schedule[source]#
- Generate a schedule for performing a CPMG (n gates) experiment to measure the qubit dephasing time \(T_2^{CPMG}\) with dynamical decoupling. - Schedule sequence
- Reset – pi/2 – [Idle(tau/(2n)) – pi – Idle(tau/2n)]*n – pi/2 – Measure 
 - Parameters:
- n_gates – Number of CPMG Gates. Note that n_gates=1 corresponds to an Echo experiment ( - echo_sched()).
- qubit – The name of the device element, e.g., “q0”, to perform the echo experiment on. 
- times – An array of wait times between the pi/2 pulses. The wait times are subdivided into multiple IdlePulse(time/(2n)) operations. Be aware that time/(2n) must be an integer multiple of your hardware backend grid time. 
- variant – CPMG using either pi_x (“X”), pi_y (“Y”) or interleaved pi_x/pi_y (“XY”) gates, default is “X”. 
- artificial_detuning – The frequency in Hz of the software emulated, or - artificialqubit detuning, which is implemented by changing the phase of the second pi/2 (recovery) pulse. The artificial detuning changes the observed frequency of the Ramsey oscillation, which can be useful to distinguish a slow oscillation due to a small physical detuning from the decay of the dephasing noise.
- repetitions – The amount of times the Schedule will be repeated, default is 1. 
 
- Returns:
- An experiment schedule. 
 
- allxy_sched(qubit: str, element_select_idx: Iterable[int] | int = np.arange(21), repetitions: int = 1) quantify_scheduler.schedules.schedule.Schedule[source]#
- Generate a schedule for performing an AllXY experiment. - Schedule sequence
- Reset – Rxy[0] – Rxy[1] – Measure 
 - for a specific set of combinations of x90, x180, y90, y180 and idle rotations. - See section 5.2.3 of Reed [Ree13] for an explanation of the AllXY experiment and it’s applications in diagnosing errors in single-qubit control pulses. - Parameters:
- qubit – the name of the device element e.g., - "q0"to perform the experiment on.
- element_select_idx – the index of the particular element of the AllXY experiment to execute. 
- repetitions – The amount of times the Schedule will be repeated. 
 
- Returns:
- An experiment schedule. 
 
- readout_calibration_sched(qubit: str, prepared_states: list[int], repetitions: int = 1, acq_protocol: Literal['SSBIntegrationComplex', 'ThresholdedAcquisition'] = 'SSBIntegrationComplex') quantify_scheduler.schedules.schedule.Schedule[source]#
- A schedule for readout calibration. Prepares a state and immediately performs a measurement. - Parameters:
- qubit – the name of the device element e.g., - "q0"to perform the experiment on.
- prepared_states – the states to prepare the qubit in before measuring as in integer corresponding to the ground (0), first-excited (1) or second-excited (2) state. 
- repetitions – The number of shots to acquire, sets the number of times the schedule will be repeated. 
- acq_protocol – The acquisition protocol used for the readout calibration. By default “SSBIntegrationComplex”, but “ThresholdedAcquisition” can be used for verifying thresholded acquisition parameters with this function (see Tutorial: Conditional Reset). 
 
- Returns:
- An experiment schedule. 
- Raises:
- ValueError – If the prepared state is not either 0, 1, or 2. 
- NotImplementedError – If the prepared state is 2. 
 
 
- rabi_pulse_sched(mw_G_amp: float, mw_D_amp: float, mw_frequency: float, mw_clock: str, mw_port: str, mw_pulse_duration: float, ro_pulse_amp: float, ro_pulse_duration: float, ro_pulse_delay: float, ro_pulse_port: str, ro_pulse_clock: str, ro_pulse_frequency: float, ro_acquisition_delay: float, ro_integration_time: float, init_duration: float, repetitions: int = 1) quantify_scheduler.schedules.schedule.Schedule[source]#
- Generate a schedule for performing a Rabi experiment using a - quantify_scheduler.waveforms.drag()pulse.- Note - This function allows specifying a Rabi experiment directly using the pulse-level abstraction. For most applications we recommend using - rabi_sched()instead.- Parameters:
- mw_G_amp – amplitude of the gaussian component of a DRAG pulse. 
- mw_D_amp – amplitude of the derivative-of-gaussian component of a DRAG pulse. 
- mw_frequency – frequency of the DRAG pulse. 
- mw_clock – reference clock used to track the qubit 01 transition. 
- mw_port – location on the device where the pulse should be applied. 
- mw_pulse_duration – duration of the DRAG pulse. Corresponds to 4 sigma. 
- ro_pulse_amp – amplitude of the readout pulse in Volt. 
- ro_pulse_duration – duration of the readout pulse in seconds. 
- ro_pulse_delay – time between the end of the spectroscopy pulse and the start of the readout pulse. 
- ro_pulse_port – location on the device where the readout pulse should be applied. 
- ro_pulse_clock – reference clock used to track the readout frequency. 
- ro_pulse_frequency – frequency of the spectroscopy pulse and of the data acquisition in Hertz. 
- ro_acquisition_delay – start of the data acquisition with respect to the start of the readout pulse in seconds. 
- ro_integration_time – integration time of the data acquisition in seconds. 
- init_duration – The relaxation time or dead time. 
- repetitions – The amount of times the Schedule will be repeated.