Flipping#

The flipping experiment corrects the amplitude in the qubit drive pulse. In this experiment, we applying 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 amplitue.

Parameters#

class qibocal.protocols.flipping.FlippingParameters(nflips_max: int, nflips_step: int, unrolling: bool = False, delta_amplitude: float = 0)[source]

Flipping runcard inputs.

delta_amplitude: float = 0

Amplitude detuning.

hardware_average: bool = False

By default hardware average will be performed.

unrolling: bool = False

If True it uses sequence unrolling to deploy multiple sequences in a single instrument call. Defaults to False.

nflips_max: int

Maximum number of flips ([RX(pi) - RX(pi)] sequences).

nflips_step: int

Flip step.

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:
    detuning: 0.05
    nflips_max: 30
    nflips_step: 1

The expected output is the following:

../_images/flipping.png

Qibocal provides also a “signal” version of this routine, it follows a possible runcard with its report.

- id: flipping
  operation: flipping_signal
  parameters:
    detuning: -0.5
    nflips_max: 20
    nflips_step: 1
../_images/flipping_signal.png

Requirements#