Flux crosstalk experiments#

In this section we show how to run flux crosstalk experiments.

As we saw in Flux tunable qubits the external flux affecting a qubit line \(i\) will receive contributions from other qubits

\[\Phi_i = \sum_{j} C_{ij} V_j + \Phi_i^{\text{offset}} \quad ,\]

which means that the transmon frequency can change when current is applied on other qubits.

Qubit crosstalk#

It is possible to measure qubit crosstalk by running a qubit_crosstalk experiment. Assuming that the target qubit is at the sweetspot, in order to measure crosstalk effects it is suggested to bias the qubit away.

Here is a possible runcard where we measure the crosstalk on qubit 2 caused by qubit 3 and 0.

Parameters#

class qibocal.protocols.flux_dependence.qubit_crosstalk.QubitCrosstalkParameters(freq_width: int, freq_step: int, bias_width: ~typing.Optional[float] = None, bias_step: ~typing.Optional[float] = None, drive_amplitude: ~typing.Optional[float] = None, drive_duration: int = 2000, bias_point: ~typing.Optional[dict[typing.Union[int, str], float]] = <factory>, flux_qubits: ~typing.Optional[list[typing.Union[int, str]]] = None)[source]

Crosstalk runcard inputs.

bias_point: Optional[dict[Union[int, str], float]]

bias_point_qubit_id}.

Type:

Dictionary with {qubit_id

flux_qubits: Optional[list[Union[int, str]]] = None

IDs of the qubits that we will sweep the flux on. If None flux will be swept on all qubits that we are running the routine on in a multiplex fashion. If given flux will be swept on the given qubits in a sequential fashion (n qubits will result to n different executions). Multiple qubits may be measured in each execution as specified by the qubits option in the runcard.

bias_step: Optional[float] = None

Bias step for sweep [a.u.].

bias_width: Optional[float] = None

Width for bias sweep [V].

drive_amplitude: Optional[float] = None

Drive amplitude (optional). If defined, same amplitude will be used in all qubits. Otherwise the default amplitude defined on the platform runcard will be used

drive_duration: int = 2000

Duration of the drive pulse.

hardware_average: bool = False

By default hardware average will be performed.

freq_width: int

Width for frequency sweep relative to the readout frequency [Hz].

freq_step: int

Frequency step for sweep [Hz].

nshots: int

Number of executions on hardware.

relaxation_time: float

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

Example#

- id: qubit crosstalk
  operation: qubit_crosstalk
  targets: [2]
  parameters:
    bias_point:
        2: 0.25
    bias_step: 0.001
    bias_width: 0.05
    drive_amplitude: 0.002
    drive_duration: 4000
    flux_qubits: [0, 3]
    freq_step: 200000
    freq_width: 10000000
    nshots: 1024
    relaxation_time: 20000
../../_images/qubit_crosstalk.png

The previous runcard aims at extracting the crosstalk coefficients \(C_{20}\) and \(C_{23}\).

Requirements#