Flipping#
The flipping experiment corrects the amplitude in the qubit drive pulse for \(R_x(\pi)\) rotations. In this experiment, we apply an \(R_x(\pi/2)\) rotation followed by \(N\) flips (two \(R_x(\pi)\) rotations) and we measure the qubit state. The first \(R_x(\pi/2)\) is necessary to discriminate the over rotations and under rotations of the \(R_x(\pi)\) pulse: without it the difference between the two cases is just a global phase, i.e., the probabilities are the same. With the \(R_x(\pi/2)\) pulse, in case of under rotations the state will be closer to \(\ket{0}\) after the initial flip, in the over rotations one the final state will be closer to \(\ket{1}\).
By fitting the resulting data with a sinusoidal function, we can determine the delta amplitude, which allows us to refine the \(\pi\) pulse amplitude.
We implemented also a version of the flipping protocol to calibrate the drive pulse amplitude of the \(R_x(\pi/2)\) rotations, in this case each \(R_x(\pi)\) rotation is replaced by two \(R_x(\pi/2)\) rotations. The main reasons for implementing protocols to fine tune the R_x(pi/2) rotations are explained in Rabi experiments.
Parameters#
- class qibocal.protocols.flipping.FlippingParameters(nflips_max: int, nflips_step: int, unrolling: bool = False, delta_amplitude: float = 0, rx90: bool = False)[source]
Flipping runcard inputs.
- nflips_max: int
Maximum number of flips ([RX(pi) - RX(pi)] sequences).
- nflips_step: int
Flip step.
- unrolling: bool = False
If
True
it uses sequence unrolling to deploy multiple sequences in a single instrument call. Defaults toFalse
.
- delta_amplitude: float = 0
Amplitude detuning.
- rx90: bool = False
Calibration of native pi pulse, if true calibrates pi/2 pulse
- 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 a runcard example of this experiment.
- id: flipping
operation: flipping
parameters:
delta_amplitude: 0.05
nflips_max: 30
nflips_step: 1
The expected output is the following:

If the same experiment is run setting the rx90: True the flipping is performed to calibrate the amplitude of the \(R_x(\pi/2)\) rotation
- id: flipping
operation: flipping
parameters:
delta_amplitude: 0.05
nflips_max: 30
nflips_step: 1
rx90: True