T1 experiments#
In this section we show how to run T1 experiments.
T1#
Due to coupling to the environment the qubit in state \(\ket{1}\) will decay to the state \(\ket{0}\). To measure such decay we can perform a simple experiment by initializing the qubit in \(\ket{1}\) through a \(\pi\)-pulse previously calibrated, we then measure the population of the excited state for different waiting times \(\Delta \tau\). We expect to measure an exponential decay which is fitted with the following formula:
\(A\) and \(B\) are introduced to improve the performance of the fit.
Parameters#
- class qibocal.protocols.coherence.t1.T1Parameters(delay_before_readout_start: int, delay_before_readout_end: int, delay_before_readout_step: int, single_shot: bool = False)[source]
T1 runcard inputs.
- hardware_average: bool = False
By default hardware average will be performed.
- single_shot: bool = False
If
True
save single shot signal data.
- delay_before_readout_start: int
Initial delay before readout [ns].
- delay_before_readout_end: int
Final delay before readout [ns].
- delay_before_readout_step: int
Step delay before readout [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 T1 experiment could be the following:
- id: t1
operation: t1
parameters:
delay_before_readout_end: 10000
delay_before_readout_start: 4
delay_before_readout_step: 100
nshots: 1000
The expected output is the following:
![../../_images/t1_prob.png](../../_images/t1_prob.png)
\(T_1\) is determined by fitting the output signal using the formula presented above.
Requirements#
T1 with raw signal#
A standard \(T_1\) experiment will try to compute the probability of the qubit
being measured in state \(\ket{1}\). It is possible to perform a \(T_1\) experiment
without performing single shot calibration by running an experiment called t1_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.t1_signal.T1SignalParameters(delay_before_readout_start: int, delay_before_readout_end: int, delay_before_readout_step: int, single_shot: bool = False)[source]
T1 runcard inputs.
- delay_before_readout_start: int
Initial delay before readout [ns].
- delay_before_readout_end: int
Final delay before readout [ns].
- delay_before_readout_step: int
Step delay before readout [ns].
- 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: T1 with signal
operation: t1_signal
parameters:
delay_before_readout_end: 100008
delay_before_readout_start: 16
delay_before_readout_step: 1000
nshots: 2048
![../../_images/t1_signal.png](../../_images/t1_signal.png)
Note that in this case error bands will not be provided.
Requirements#
T1 with for loops#
If the instrument driver is not able to perform duration sweepers in real time, we provide a protocol where the different waiting time are swept through a python for loop. Such execution will be usually slower compared to the one where sweepers are supported but it could be useful for debugging purposes.
Here is a possible runcard:
- id: T1 with for loops
operation: t1_sequences
parameters:
delay_before_readout_end: 100008
delay_before_readout_start: 16
delay_before_readout_step: 1000
nshots: 2048
Note
For t1_sequences
on the y-axis it will be shown the raw output from instruments,
not the population of \(\ket{1}\).