qblox_scheduler.schedules.spectroscopy_schedules#
Module containing schedules for common spectroscopy experiments.
Functions#
Generate a schedule for performing heterodyne spectroscopy. |
|
Generate a batched schedule for performing fast heterodyne spectroscopy |
|
|
Generate a schedule for performing two-tone spectroscopy. |
Generate a batched schedule for performing fast two-tone spectroscopy using |
|
|
Generates a schedule for a dark ESR experiment on an NV-center. |
Generates a schedule for a dark ESR experiment on an NV-center, in which |
Module Contents#
- heterodyne_spec_sched(pulse_amp: float, pulse_duration: float, frequency: float, acquisition_delay: float, integration_time: float, port: str, clock: str, init_duration: float = 1e-05, repetitions: int = 1, port_out: str | None = None) qblox_scheduler.schedules.schedule.TimeableSchedule[source]#
Generate a schedule for performing heterodyne spectroscopy.
- Parameters:
pulse_amp – Amplitude of the spectroscopy pulse in Volt.
pulse_duration – Duration of the spectroscopy pulse in seconds.
frequency – Frequency of the spectroscopy pulse in Hertz.
acquisition_delay – Start of the data acquisition with respect to the start of the spectroscopy pulse in seconds.
integration_time – Integration time of the data acquisition in seconds.
port – Location on the device where the acquisition is performed.
clock – Reference clock used to track the spectroscopy frequency.
init_duration – The relaxation time or dead time.
repetitions – The amount of times the TimeableSchedule will be repeated.
port_out – Output port on the device where the pulse should be applied. If None, then use the same as port.
- heterodyne_spec_sched_nco(pulse_amp: float, pulse_duration: float, frequencies: numpy.ndarray, acquisition_delay: float, integration_time: float, port: str, clock: str, init_duration: float = 1e-05, repetitions: int = 1, port_out: str | None = None) qblox_scheduler.schedules.schedule.TimeableSchedule[source]#
Generate a batched schedule for performing fast heterodyne spectroscopy using the
SetClockFrequencyoperation for doing an NCO sweep.- Parameters:
pulse_amp – Amplitude of the spectroscopy pulse in Volt.
pulse_duration – Duration of the spectroscopy pulse in seconds.
frequencies – Sample frequencies for the spectroscopy pulse in Hertz.
acquisition_delay – Start of the data acquisition with respect to the start of the spectroscopy pulse in seconds.
integration_time – Integration time of the data acquisition in seconds.
port – Location on the device where the acquisition is performed.
clock – Reference clock used to track the spectroscopy frequency.
init_duration – The relaxation time or dead time.
repetitions – The amount of times the TimeableSchedule will be repeated.
port_out – Output port on the device where the pulse should be applied. If None, then use the same as port.
- two_tone_spec_sched(spec_pulse_amp: float, spec_pulse_duration: float, spec_pulse_port: str, spec_pulse_clock: str, spec_pulse_frequency: 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 = 1e-05, repetitions: int = 1) qblox_scheduler.schedules.schedule.TimeableSchedule[source]#
Generate a schedule for performing two-tone spectroscopy.
- Parameters:
spec_pulse_amp – Amplitude of the spectroscopy pulse in Volt.
spec_pulse_duration – Duration of the spectroscopy pulse in seconds.
spec_pulse_port – Location on the device where the spectroscopy pulse should be applied.
spec_pulse_clock – Reference clock used to track the spectroscopy frequency.
spec_pulse_frequency – Frequency of the spectroscopy pulse in Hertz.
ro_pulse_amp – Amplitude of the readout (spectroscopy) pulse in Volt.
ro_pulse_duration – Duration of the readout (spectroscopy) pulse in seconds.
ro_pulse_delay – Time between the end of the spectroscopy pulse and the start of the readout (spectroscopy) pulse.
ro_pulse_port – Location on the device where the readout (spectroscopy) pulse should be applied.
ro_pulse_clock – Reference clock used to track the readout (spectroscopy) frequency.
ro_pulse_frequency – Frequency of the readout (spectroscopy) pulse 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 TimeableSchedule will be repeated.
- two_tone_spec_sched_nco(spec_pulse_amp: float, spec_pulse_duration: float, spec_pulse_port: str, spec_pulse_clock: str, spec_pulse_frequencies: numpy.ndarray, 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) qblox_scheduler.schedules.schedule.TimeableSchedule[source]#
Generate a batched schedule for performing fast two-tone spectroscopy using the
SetClockFrequencyoperation for doing an NCO sweep.For long-lived qubits, it is advisable to use a small number of repetitions and compensate by doing continuous spectroscopy (low amplitude, long duration pulse with simultaneous long readout).
The “dead-time” between two data points needs to be sufficient to properly reset the qubit. That means that init_duration should be >> T1 (so typically >200us).
- Parameters:
spec_pulse_amp – Amplitude of the spectroscopy pulse in Volt.
spec_pulse_duration – Duration of the spectroscopy pulse in seconds.
spec_pulse_port – Location on the device where the spectroscopy pulse should be applied.
spec_pulse_clock – Reference clock used to track the spectroscopy frequency.
spec_pulse_frequencies – Sample frequencies for the spectroscopy pulse in Hertz.
ro_pulse_amp – Amplitude of the readout (spectroscopy) pulse in Volt.
ro_pulse_duration – Duration of the readout (spectroscopy) pulse in seconds.
ro_pulse_delay – Time between the end of the spectroscopy pulse and the start of the readout (spectroscopy) pulse.
ro_pulse_port – Location on the device where the readout (spectroscopy) pulse should be applied.
ro_pulse_clock – Reference clock used to track the readout (spectroscopy) frequency.
ro_pulse_frequency – Frequency of the readout (spectroscopy) pulse 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 TimeableSchedule will be repeated.
- nv_dark_esr_sched(qubit: str, repetitions: int = 1) qblox_scheduler.schedules.schedule.TimeableSchedule[source]#
Generates a schedule for a dark ESR experiment on an NV-center.
The spectroscopy frequency is taken from the device element. Please use the clock specified in the spectroscopy_operation entry of the device config.
- Parameters:
qubit – Name of the DeviceElement representing the NV-center.
repetitions – Number of schedule repetitions.
- Returns:
: TimeableSchedule with a single frequency
- nv_dark_esr_sched_nco(qubit: str, spec_clock: str, spec_frequencies: numpy.ndarray, repetitions: int = 1) qblox_scheduler.schedules.schedule.TimeableSchedule[source]#
Generates a schedule for a dark ESR experiment on an NV-center, in which the NCO frequency is swept.
- Parameters:
qubit – Name of the DeviceElement representing the NV-center.
spec_clock – Reference clock of the spectroscopy operation.
spec_frequencies – Sample frequencies for the spectroscopy pulse in Hertz.
repetitions – Number of schedule repetitions.
- Returns:
: TimeableSchedule with NCO frequency sweeping for spectroscopy operation.