Hahn echo experiments#
In this section we show how to run Hahn echo experiments using Qibocal
Spin-echo#
The acquisition for the \(T_2^{\text{Echo}}\) experiment is similar to a Ramsey
experiment,
with the difference that between the two \(\pi / 2\) pulses we apply a \(\pi\) pulse.
Such \(\pi\) pulse is applied exactly at \(\tau / 2\) where \(\tau\) is the
waiting time between the two \(\pi / 2\) pulses.
By applying this extra pulse we can mitigate the qubit dephasing [4, 13] since any phase accumulated in first half of the sequence will be reversed in the second half. This is also why usually \(T_2^{\text{Echo}} \ge T_2\).
The fit is again a dumped exponential of the following form:
The reason why there are two distinct experiment is that in order to correct the drive frequency if the pulse is detuned enough we can proceed with short scans, while to extract reliably \(T_2\) it will be necessary to perform longer scans.
Parameters#
- class qibocal.protocols.coherence.spin_echo.SpinEchoParameters(delay_between_pulses_start: int, delay_between_pulses_end: int, delay_between_pulses_step: int, unrolling: bool = False, single_shot: bool = False)[source]
SpinEcho runcard inputs.
- hardware_average: bool = False
By default hardware average will be performed.
- single_shot: bool = False
If
True
save single shot signal data.
- unrolling: bool = False
If
True
it uses sequence unrolling to deploy multiple sequences in a single instrument call. Defaults toFalse
.
- 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 \(T_2^{\text{Echo}}\) experiment could be the following:
- id: T2 echo
operation: spin_echo
parameters:
delay_between_pulses_end: 100000
delay_between_pulses_start: 4
delay_between_pulses_step: 1000
nshots: 1000
The expected output is the following:
\(T_2^{\text{Echo}}\) is determined by fitting the output signal using the formula presented above.
Requirements#
Spin-echo with raw signal#
A standard \(T_2^{\text{Echo}}\) will try to compute the probability of the qubit
being measured in state \(\ket{1}\). It is possible to perform a \(T_2^{\text{Echo}}\) experiment
without performing single shot calibration by running an experiment called spin_echo_signal
.
The acquisition and the fitting procedure are exactly the same, the only difference being that on the y axis it will be displayed the raw measurements from the instruments.
Parameters#
- class qibocal.protocols.coherence.spin_echo_signal.SpinEchoSignalParameters(delay_between_pulses_start: int, delay_between_pulses_end: int, delay_between_pulses_step: int, unrolling: bool = False, single_shot: bool = False)[source]
SpinEcho Signal runcard inputs.
- 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].
- unrolling: bool = False
If
True
it uses sequence unrolling to deploy multiple sequences in a single instrument call. Defaults toFalse
.
- single_shot: bool = False
If
True
save single shot signal data.
- 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#
- id: Spin Echo with signal
operation: spin_echo_signal
parameters:
delay_between_pulses_end: 200000
delay_between_pulses_start: 4
delay_between_pulses_step: 4000
nshots: 5000
relaxation_time: 300000
Note that in this case error bars will not be provided.