Residual ZZ Interaction¶
In superconducting transmon quantum processors, qubits are never perfectly isolated. Even when no two-qubit gate is being executed, neighboring qubits experience weak always-on interactions. One of the most important undesired interactions is the residual ZZ coupling, which produces a state-dependent frequency shift.
For two coupled qubits restricted to the computational subspace \(\{|00\rangle, |01\rangle, |10\rangle, |11\rangle\}\) the effective static Hamiltonian can be written as
where \(\zeta\) is the residual ZZ interaction strength, \(\omega_1, \omega_2\) are the (dressed) qubit frequencies and \(\zeta\) is the residual ZZ interaction rate. In a qutrit model, the ZZ rate can be approximated in the dispersive regime as
where \(\Delta_{12} = \omega_1 - \omega_2\) is the qubit-qubit detuning, \(\alpha_{1,2}\) are the qubit anharmonicities and \(g\) is the coupling strength. The latter is determined by the physical capacitance of the circuits.
The ZZ term shifts the transition frequency of one qubit depending on the state of its neighbor. ZZ coupling is a relevant effect that we need to account for durning calibration because neglecting to do so may result in:
coherent phase accumulation during idle periods;
reduced gate fidelity;
increased crosstalk;
limitations on simultaneous gate execution.
Estimating Residual ZZ¶
Two common characterization experiments are JAZZ and Ramsey ZZ [17, Sec. 14.8.1]. Both experiments are described below and exploit the same basic idea: put one qubit (the “spectator” or “control”) in \(|0\rangle\) or \(|1\rangle\), and use a Ramsey-type measurement on the other qubit (the “target”) to detect the state-dependent frequency shift.
Ramsey ZZ (Conditional Ramsey)¶
Given that through a Ramsey experiment we can carefully measure the frequency of the qubit, we can have estimate the ZZ coupling \(\zeta\) by repeating the experiment while preparing one of the neighboring qubits in state \(\ket{1}\). For a more detailed discussion of the Ramsey experiment see Ramsey.
Parameters¶
- class qibocal.protocols.zz_interaction.ramsey_zz.RamseyZZParameters(delay_range: tuple[float, float, float], detuning: float | None = None)[source]
RamseyZZ acquisition outputs.
- delay_range: tuple[float, float, float]
delay time range (start, stop, step) in the sequence. Applied twice.
- nshots: int
Number of executions on hardware.
- relaxation_time: float
Wait time for the qubit to decohere back to the ground state.
Example¶
- id: ramsey zz
operation: ramsey_zz
parameters:
delay_range: [10, 2000, 50]
detuning: 0.0
targets: [0, 1]
From Ramsey we know that both signals oscillates according to
where \(\delta_c\) is the target frequency conditioned on the control state \(c \in \{0, 1\}\). The residual ZZ rate is simply the difference between the two conditional fringe frequencies:
JAZZ (Joint Amplification of ZZ)¶
JAZZ is an echo-based variant which combines a Ramsey-with-echo sequence on both qubits simultaneously, hence mapping the ZZ-induced phase directly onto a single measured population, rather than into two separately-fitted frequencies as in the experiment before.
Since the echo the \(\pi\) pulse acts on both qubits together, ordinary single-qubit dephasing and any unconditional frequency offset of the target refocus exactly as they would in a standard echo experiment (see t2_echo), but the conditional ZZ-induced phase keeps accumulating over the entire duration \(2\tau\) of the echo. Finally a \(RY(\pi/2)\) is applied to the target qubit and the signal is measured.
Parameters¶
- class qibocal.protocols.zz_interaction.utils.ZZInteractionParameters(delay_range: tuple[float, float, float])[source]
Parameters for ZZ-interaction experiments.
- delay_range: tuple[float, float, float]
delay time range (start, stop, step) in the sequence. Applied twice.
- nshots: int
Number of executions on hardware.
- relaxation_time: float
Wait time for the qubit to decohere back to the ground state.
Example¶
- id: jazz
operation: jazz
parameters:
delay_range: [0, 800, 80]
targets: [0, 1]
by sweeping the total free-evolution time it is possible to measure clean oscillations along the measurement axis according to:
so \(\zeta\) is equal to the frequency of the measured signal.