Tφ Characterization

Tφ, or 1/Γφ, is the pure dephasing time of depolarization in the xy plane of the Bloch sphere. We compute Γφ by computing Γ2, the transverse relaxation rate, and subtracting Γ1, the longitudinal relaxation rate. It follows that 1Tφ=1T212T1.

We therefore create a composite experiment consisting of a T1 experiment and a T2 experiment. Both Ramsey and Hahn echo experiments can be used here, with different effects. The T2 estimate of the Ramsey experiment is sensitive to inhomogeneous broadening, low-frequency fluctuations that vary between experiments due to 1/f-type noise. The T2 estimate from the Hahn echo (defined as T2E in [1]) is less sensitive to inhomogeneous broadening due to its refocusing pulse, and so it is strictly larger than T2 on a real device. In superconducting qubits, T2 tends to be significantly smaller than T1, so T2 is usually used.

From the T1 and T2 estimates, we compute the results for Tφ.

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")
../../_images/tphi_1_0.png
exp.component_experiment(1).circuits()[-1].draw(output="mpl", style="iqp")
../../_images/tphi_2_0.png

Run the experiment and print results:

expdata = exp.run(backend=backend, seed_simulator=100).block_for_results()
display(expdata.analysis_results("T_phi", dataframe=True))
name experiment components value quality backend run_time unit chisq
6e44e5be T_phi Tphi [Q0] -0.0004+/-0.0008 bad aer_simulator_from(fake_perth) None s None

You can also retrieve the results and figures of the constituent experiments. T1:

display(expdata.analysis_results("T1", dataframe=True))
display(expdata.figure(0))
name experiment components value quality backend run_time unit chisq
cb4bdfbc T1 T1 [Q0] (5.59+/-0.08)e-05 good aer_simulator_from(fake_perth) None s 1.247985
../../_images/tphi_4_1.png

And T2Hahn:

display(expdata.analysis_results("T2", dataframe=True))
display(expdata.figure(1))
name experiment components value quality backend run_time unit chisq
3ed33cb2 T2 T2Hahn [Q0] 0.00015+/-0.00011 bad aer_simulator_from(fake_perth) None s 1.502093
../../_images/tphi_5_1.png

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")
../../_images/tphi_6_0.png

Run and display results:

expdata = exp.run(backend=backend, seed_simulator=100).block_for_results()
display(expdata.analysis_results("T_phi", dataframe=True))
display(expdata.figure(1))
name experiment components value quality backend run_time unit chisq
8ffd8d5e T_phi Tphi [Q0] 0.00053+/-0.00017 good aer_simulator_from(fake_perth) None s None
../../_images/tphi_7_1.png

Because we are using a simulator that doesn’t model inhomogeneous broadening, the T2 and T2 values are not significantly different. On a real superconducting device, Tφ should be significantly larger when the Hahn echo experiment is used.

References

See also

  • API documentation: Tphi