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
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, transition: ~typing.Optional[str] = '01', drive_duration: int = 2000, bias_point: ~typing.Optional[dict[typing.Union[str, int], float]] = <factory>, flux_qubits: ~typing.Optional[list[typing.Union[str, int]]] = None)[source]
Crosstalk runcard inputs.
- bias_point: Optional[dict[Union[str, int], float]]
bias_point_qubit_id}.
- Type:
Dictionary with {qubit_id
- flux_qubits: Optional[list[Union[str, int]]] = 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 thequbits
option in the runcard.
- 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.
- transition: Optional[str] = '01'
Flux spectroscopy transition type (“01” or “02”). Default value is 01
- 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
The previous runcard aims at extracting the crosstalk coefficients \(C_{20}\) and \(C_{23}\).
Requirements#
Resonator crosstalk#
In a similar fashion it is possible to repeat the previous experiment by sweeping the readout frequency. Note that in this case it will be necessary to bias the qubit away from its sweetspot more to observe significant variations.
Parameters#
- class qibocal.protocols.flux_dependence.resonator_crosstalk.ResCrosstalkParameters(freq_width: int, freq_step: int, bias_width: ~typing.Optional[float] = None, bias_step: ~typing.Optional[float] = None, bias_point: ~typing.Optional[dict[typing.Union[str, int], float]] = <factory>, flux_qubits: ~typing.Optional[list[typing.Union[str, int]]] = None)[source]
ResonatorFlux runcard inputs.
- bias_point: Optional[dict[Union[str, int], float]]
bias_point_qubit_id}.
- Type:
Dictionary with {qubit_id
- flux_qubits: Optional[list[Union[str, int]]] = 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 thequbits
option in the runcard.
- 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: resonator crosstalk
operation: resonator_crosstalk
targets: [2]
parameters:
bias_point:
2: 0.5
bias_step: 0.01
bias_width: 0.4
flux_qubits: [0, 3]
freq_step: 100000
freq_width: 6000000
nshots: 2000
As we can see, even by biasing the qubit away from its sweetspot we are not able to see a dependence ( a deviation from the straight line) but only a shift.
The protocols aims at extracting the crosstalk coefficients \(C_{20}\) and \(C_{23}\).