Dispersive shift¶
In this section we present the dispersive shift routines provided by Qibocal.
Theory¶
A system with a qubit and a resonator, interacting with each other, is described by the James-Cummings Hamiltonian. Restricting the qubit states to the first two levels, we get
where \(\omega_r\) and \(\omega_q\) are respectively the resonator and the qubit frequencies, and \(g\) is the coupling constant between the qubit and the resonator. In the dispersive regime \(g \ll \lvert \omega_r - \omega_q \rvert\), the Hamiltonian can be rewritten as
where we introduced the dispersive shift
Equation (1) shows that the resonator frequency is \(\omega_{r,0} = \omega_r - \chi\) (\(\omega_{r,1} = \omega_r + \chi\)) when the qubit is in the ground (excited) state. The separation between the two freqiencies is \(\lvert 2 \chi \rvert\).
Protocol description¶
After collecting the data from the two spectroscopies, for each readout frequency the distance of the centers of the blobs for \(\ket{0}\) and \(\ket{1}\) states are evaluated. The best readout frequency is the one maximizing the distance between the two blobs.
Parameters¶
- class qibocal.protocols.dispersive_shift.dispersive_shift.DispersiveShiftParameters(frequency: tuple[float, float, float] | tuple[Literal['linspace'], float, float, int] | tuple[Literal['window'], float, float, float] | tuple[Literal['linwindow'], float, float, int] | tuple[Literal['center'], float, float] | tuple[Literal['lincenter'], float, int] | tuple[Literal['asym'], tuple[float, float], float] | tuple[Literal['linasym'], tuple[float, float], int] | None = None, freq_width: int | None = None, freq_step: int | None = None)[source]
Dispersive shift inputs.
- frequency: tuple[float, float, float] | tuple[Literal['linspace'], float, float, int] | tuple[Literal['window'], float, float, float] | tuple[Literal['linwindow'], float, float, int] | tuple[Literal['center'], float, float] | tuple[Literal['lincenter'], float, int] | tuple[Literal['asym'], tuple[float, float], float] | tuple[Literal['linasym'], tuple[float, float], int] | None = None
Frequency range [Hz].
- freq_width: int | None = None
Width [Hz] for frequency sweep relative to the readout frequency [Hz].
- nshots: int
Number of executions on hardware.
- relaxation_time: float
Wait time for the qubit to decohere back to the ground state.
Example¶
It follows an example of the experiment parameters.
- id: dispersive shift qt
operation: dispersive_shift_qutrit
parameters:
freq_step: 200000
freq_width: 1000000
After running qq run, the experiment is executed and the result will looks like the following picture.