Note
This is the documentation for the current state of the development branch of Qiskit Experiments. The documentation or APIs here can change prior to being released.
Tφ Characterization¶
\(T_\varphi\), or \(1/\Gamma_\varphi\), is the pure dephasing time of depolarization in the \(x - y\) plane of the Bloch sphere. We compute \(\Gamma_\varphi\) by computing \(\Gamma_2\), the transverse relaxation rate, and subtracting \(\Gamma_1\), the longitudinal relaxation rate. It follows that \(\frac{1}{T_\varphi} = \frac{1}{T_2} - \frac{1}{2T_1}\).
We therefore create a composite experiment consisting of a \(T_1\) experiment and a \(T_2\) experiment. Both Ramsey and Hahn echo experiments can be used here, with different effects. The \(T_2^*\) estimate of the Ramsey experiment is sensitive to inhomogeneous broadening, low-frequency fluctuations that vary between experiments due to \(1/f\)-type noise. The \(T_{2}\) estimate from the Hahn echo (defined as \(T_{2E}\) in [1]) is less sensitive to inhomogeneous broadening due to its refocusing pulse, and so it is strictly larger than \(T_2^*\) on a real device. In superconducting qubits, \(T_2^*\) tends to be significantly smaller than \(T_1\), so \(T_2\) is usually used.
From the \(T_1\) and \(T_2\) estimates, we compute the results for \(T_\varphi.\)
Note
This tutorial requires the qiskit-aer and qiskit-ibm-runtime
packages to run simulations. You can install them with python -m pip
install qiskit-aer qiskit-ibm-runtime
.
import numpy as np
import qiskit
from qiskit_experiments.library.characterization import Tphi
# An Aer simulator
from qiskit_aer import AerSimulator
from qiskit_aer.noise import NoiseModel
from qiskit_ibm_runtime.fake_provider import FakePerth
# Create a pure relaxation noise model for AerSimulator
noise_model = NoiseModel.from_backend(
FakePerth(), thermal_relaxation=True, gate_error=False, readout_error=False
)
# Create a fake backend simulator
backend = AerSimulator.from_backend(FakePerth(), noise_model=noise_model)
# Time intervals to wait before measurement for t1 and t2
delays_t1 = np.arange(1e-6, 300e-6, 10e-6)
delays_t2 = np.arange(1e-6, 50e-6, 2e-6)
By default, the Tphi
experiment will use the Hahn echo experiment for its transverse
relaxation time estimate. We can see that the component experiments of the batch
Tphi
experiment are what we expect for T1
and T2Hahn
:
exp = Tphi(physical_qubits=(0,), delays_t1=delays_t1, delays_t2=delays_t2, num_echoes=1)
exp.component_experiment(0).circuits()[-1].draw(output="mpl", style="iqp")
exp.component_experiment(1).circuits()[-1].draw(output="mpl", style="iqp")
Run the experiment and print results:
expdata = exp.run(backend=backend, seed_simulator=100).block_for_results()
result = expdata.analysis_results("T_phi")
print(result)
AnalysisResult
- name: T_phi
- value: -0.0004+/-0.0008
- quality: bad
- extra: <3 items>
- device_components: ['Q0']
- verified: False
You can also retrieve the results and figures of the constituent experiments. T1
:
print(expdata.analysis_results("T1"))
display(expdata.figure(0))
AnalysisResult
- name: T1
- value: (5.59+/-0.08)e-05
- χ²: 1.2479846254534268
- quality: good
- extra: <3 items>
- device_components: ['Q0']
- verified: False
And T2Hahn
:
print(expdata.analysis_results("T2"))
display(expdata.figure(1))
AnalysisResult
- name: T2
- value: 0.00015+/-0.00011
- χ²: 1.502092672190198
- quality: bad
- extra: <3 items>
- device_components: ['Q0']
- verified: False
Let’s now run the experiment with T2Ramsey
by setting the t2type
option to
ramsey
and specifying osc_freq
. Now the second component experiment is a Ramsey
experiment:
exp = Tphi(physical_qubits=(0,),
delays_t1=delays_t1,
delays_t2=delays_t2,
t2type="ramsey",
osc_freq=1e5)
exp.component_experiment(1).circuits()[-1].draw(output="mpl", style="iqp")
Run and display results:
expdata = exp.run(backend=backend, seed_simulator=100).block_for_results()
print(expdata.analysis_results("T_phi"))
display(expdata.figure(1))
AnalysisResult
- name: T_phi
- value: 0.00053+/-0.00017
- quality: good
- extra: <3 items>
- device_components: ['Q0']
- verified: False
Because we are using a simulator that doesn’t model inhomogeneous broadening, the \(T_2\) and \(T_2^*\) values are not significantly different. On a real superconducting device, \(T_{\varphi}\) should be significantly larger when the Hahn echo experiment is used.
References¶
See also¶
API documentation:
Tphi