Rabi experiments#

In this section we present all Rabi experiments provided by Qibocal.

Rabi lenght and amplitude#

The goal of the Rabi experiment is to tune the amplitude (duration) of the drive pulse, in order to excite the qubit from the ground state up to state \(\ket{1}\).

In the Rabi experiment, the qubit is probed with a drive pulse at the qubit frequency \(w_{01}\) before measuring. This pulse sequence is repeated multiple times changing the amplitude (duration) of the pulse. The qubit starts in the ground state, changing one of the two parameters of the drive pulse, the probability of being in the first excited state increases following a sinusoidal pattern.

For the amplitude version, we expect:

\[p_e(t) =\frac{1}{2} \left( 1 - \cos\left(\Omega_R t \right) \right)\]

For the time version, we have to take into account the dephasing and the energy decay. In case the Rabi rate is larger than the decay and the pure dephasing rate,

\[p_e(t) = \frac{1}{2} \left(1- e^{-t/\tau} \cos\left(\Omega_R \frac{t}{2}\right)\right)\]

where \(\Omega_R\) is the Rabi frequency and \(\tau\) the decay time.

Since many routines and protocols in quantum computing are based on R_x(pi/2) rotations, in qibocal we implemented also another version of the Rabi experiment which can be used to tune the amplitude (duration) of the drive pulse in order to excite the qubit from the ground state up to state \(\frac{\ket{0}-i\ket{1}}{\sqrt{2}}\).

The possibility to calibrate an R_x(pi/2) rotation as native gate allows us to remove the errors that could arise from assuming that the R_x(pi/2) amplitude (duration) is exactly half that of the R_x(pi) amplitude (duration). This assumption presumes a perfectly linear response of the qubit to the drive pulse, which is often not the case due to nonlinearities in the qubit’s response or imperfections in the pulse shaping [4].

In this case the pulse sequence is the same as before with the only difference that instead of a single R_x(pi) pulse we use two concatenated R_x(pi/2) pulses.

Parameters#

class qibocal.protocols.rabi.amplitude.RabiAmplitudeParameters(min_amp: float, max_amp: float, step_amp: float, pulse_length: Optional[float] = None, rx90: bool = False)[source]

RabiAmplitude runcard inputs.

hardware_average: bool = False

By default hardware average will be performed.

pulse_length: Optional[float] = None

RX pulse duration [ns].

rx90: bool = False

Calibration of native pi pulse, if true calibrates pi/2 pulse

min_amp: float

Minimum amplitude.

max_amp: float

Maximum amplitude.

step_amp: float

Step amplitude.

nshots: int

Number of executions on hardware.

relaxation_time: float

Wait time for the qubit to decohere back to the gnd state.

class qibocal.protocols.rabi.length.RabiLengthParameters(pulse_duration_start: float, pulse_duration_end: float, pulse_duration_step: float, pulse_amplitude: Optional[float] = None, rx90: bool = False, interpolated_sweeper: bool = False)[source]

RabiLength runcard inputs.

pulse_duration_start: float

Initial pi pulse duration [ns].

pulse_duration_end: float

Final pi pulse duration [ns].

pulse_duration_step: float

Step pi pulse duration [ns].

pulse_amplitude: Optional[float] = None

Pi pulse amplitude. Same for all qubits.

rx90: bool = False

Calibration of native pi pulse, if true calibrates pi/2 pulse

interpolated_sweeper: bool = False

Use real-time interpolation if supported by instruments.

hardware_average: bool = False

By default hardware average will be performed.

nshots: int

Number of executions on hardware.

relaxation_time: float

Wait time for the qubit to decohere back to the gnd state.

Example#

It follows an example of the experiment parameters.

- id: Rabi amplitude
  operation: rabi_amplitude
  parameters:
    min_amp: 0.1
    max_amp: 1.
    step_amp: 0.01
    pulse_length: 40
    nshots: 3000
    relaxation_time: 50000

To run properly this experiment it is important to set the relaxation_time higher than the qubit T1.

After running qq run, the experiment is executed and the result will looks like the following picture.

../../_images/rabi_amplitude.png

Regarding the time version of this experiment, this is an example

- id: Rabi length
  operation: rabi_length
  parameters:
    pulse_duration_start: 16
    pulse_duration_end: 100
    pulse_duration_step: 4
    pulse_amplitude: 0.22
    nshots: 3000
    relaxation_time: 50000
../../_images/rabi_length.png

For each Rabi experiment Qibocal provides the signal version, where just the readout signal is acquired, without performing state discrimination qibocal.protocols.rabi.amplitude_signal.rabi_amplitude_signal, qibocal.protocols.rabi.length_signal.rabi_length_signal.

It follows an example runcard and plot for the signal exepriment

- id: Rabi signal
  operation: rabi_amplitude_signal
  parameters:
    min_amp: 0.2
    max_amp: 1.
    step_amp: 0.01
    pulse_length: 40
    nshots: 3000
    relaxation_time: 50000
../../_images/rabi_signal.png

In all the previous examples we run Rabi experiments for calibrating the amplitude (duration) of the drive pulse to excite the qubit from the ground state up to state \(\ket{1}\). All these example runcards can be modified to calibrate the amplitude (duration) of the drive pulse to excite the qubit from the ground state up to state \(\frac{\ket{0}-i\ket{1}}{\sqrt{2}}\) by simply setting the rx90 parameter to True.

In the following we show an example runcard for the amplitude calibration of the R_x(pi/2).

- id: Rabi signal
  operation: rabi_amplitude_signal
  parameters:
    min_amp: 0.01
    max_amp: 0.16
    step_amp: 0.002
    pulse_length: 40
    nshots: 1024
    relaxation_time: 50000
    rx90: True
../../_images/rabi_amplitude_rx90.png

Requirements#

Rabi ef#

This experiment is used to characterized the \(\pi_{12}\) pulse, in order to change the qubit state from \(\ket{1}\) to \(\ket{2}\). The experiment is similar to the Rabi experiment, but at the beginning the state should be prepared in the \(\ket{1}\) state through a \(\pi_{01}\) pulse.

Example#

It follows an example of runcard and a generated report.

- id: Rabi ef
  operation: rabi_amplitude_ef
  parameters:
    min_amp: 0.2
    max_amp: 1.
    step_amp: 0.01
    pulse_length: 400
    nshots: 3000
    relaxation_time: 50000
../../_images/rabi_ef.png

Requirements#