CPMG sequence#

In this section we show how to run the dynamical decoupling sequence CPMG.

The CPMG sequence consists in applying N equally spaced \(\pi\) pulses within two \(\pi / 2\) pulses. By increasing the number of \(\pi\) pulses \(T_2\) should increase since the estimation is less sensitive to noises of the type \(1/f\) eventually reaching the \(2 T_1\) limit.

The fit is again a dumped exponential of the following form:

\[p_e(t) = A + B e^{ - t / T^{(N)}_2}\]

Parameters#

class qibocal.protocols.coherence.cpmg.CpmgParameters(delay_between_pulses_start: int, delay_between_pulses_end: int, delay_between_pulses_step: int, single_shot: bool = False, n: int = 1)[source]

Cpmg runcard inputs.

n: int = 1

Number of pi rotations.

hardware_average: bool = False

By default hardware average will be performed.

single_shot: bool = False
delay_between_pulses_start: int

Initial delay between pulses [ns].

delay_between_pulses_end: int

Final delay between pulses [ns].

delay_between_pulses_step: int

Step delay between pulses [ns].

nshots: int

Number of executions on hardware.

relaxation_time: float

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

Example#

A possible runcard to launch a CPMG experiment could be the following:

- id: CPMG
  operation: cpmg
  parameters:
    delay_between_pulses_end: 100000
    delay_between_pulses_start: 4
    delay_between_pulses_step: 1000
    n: 10
    nshots: 1000

The expected output is the following:

../../_images/cpmg.png

\(T_2\) is determined by fitting the output signal using the formula presented above.

Requirements#