quantify_scheduler.schedules.timedomain_schedules

Module containing schedules for common time domain experiments such as a Rabi and T1 measurement.

Module Contents

Functions

rabi_sched(→ quantify_scheduler.Schedule)

Generate a schedule for performing a Rabi using a Gaussian pulse.

t1_sched(→ quantify_scheduler.Schedule)

Generate a schedule for performing a \(T_1\) experiment to measure the qubit

ramsey_sched(→ quantify_scheduler.Schedule)

Generate a schedule for performing a Ramsey experiment to measure the

echo_sched(→ quantify_scheduler.Schedule)

Generate a schedule for performing an Echo experiment to measure the qubit

allxy_sched(, repetitions)

Generate a schedule for performing an AllXY experiment.

readout_calibration_sched(→ quantify_scheduler.Schedule)

A schedule for readout calibration. Prepares a state and immediately performs

rabi_pulse_sched(→ quantify_scheduler.Schedule)

Generate a schedule for performing a Rabi experiment using a

rabi_sched(pulse_amp: Union[numpy.ndarray, float], pulse_duration: Union[numpy.ndarray, float], frequency: float, qubit: str, port: str = None, clock: str = None, repetitions: int = 1) quantify_scheduler.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 qubit 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 "<qubit>: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 "<qubit>.01" to infer the clock.

  • repetitions – The amount of times the Schedule will be repeated.

t1_sched(times: Union[numpy.ndarray, float], qubit: str, repetitions: int = 1) quantify_scheduler.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. [2019] 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 pi-pulse and the measurement.

  • qubit – the name of the qubit 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: Union[numpy.ndarray, float], qubit: str, artificial_detuning: float = 0, repetitions: int = 1) quantify_scheduler.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. [2019] for an explanation of the Bloch-Redfield model of decoherence and the Ramsey experiment.

Parameters
  • times – an array of wait times tau between the pi/2 pulses.

  • artificial_detuning – frequency in Hz of the software emulated, or artificial qubit 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 qubit 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: Union[numpy.ndarray, float], qubit: str, repetitions: int = 1) quantify_scheduler.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. [2019] for an explanation of the Bloch-Redfield model of decoherence and the echo experiment.

Parameters
  • qubit – the name of the qubit e.g., “q0” to perform the echo experiment on.

  • times – an array of wait times between the

  • repetitions – The amount of times the Schedule will be repeated.

Returns

An experiment schedule.

allxy_sched(qubit: str, element_select_idx: Union[numpy.ndarray, int] = np.arange(21), repetitions: int = 1) quantify_scheduler.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 2.3.2 of Reed [2013] 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 qubit e.g., "q0" to perform the experiment on.

  • element_select_idx – the index of the particular element of the AllXY experiment to exectute.

  • 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) quantify_scheduler.Schedule[source]

A schedule for readout calibration. Prepares a state and immediately performs a measurement.

Parameters
  • qubit – the name of the qubit 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.

Returns

An experiment schedule.

Raises
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.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.