T2Ramsey

class T2Ramsey(physical_qubits, delays, backend=None, osc_freq=0.0)[source]

An experiment to measure the Ramsey frequency and the qubit dephasing time sensitive to inhomogeneous broadening.

Overview

This experiment is used to estimate two properties for a single qubit: \(T_2^*\) and Ramsey frequency. \(T_2^*\) is the dephasing time or the transverse relaxation time of the qubit on the Bloch sphere as a result of both energy relaxation and pure dephasing in the transverse plane. Unlike \(T_2\), which is measured by T2Hahn, \(T_2^*\) is sensitive to inhomogenous broadening.

This experiment consists of a series of circuits of the form

     ┌───┐┌──────────────┐┌──────┐ ░ ┌───┐ ░ ┌─┐
q_0: ┤ H ├┤   DELAY(t)   ├┤ P(λ) ├─░─┤ H ├─░─┤M├
     └───┘└──────────────┘└──────┘ ░ └───┘ ░ └╥┘
c: 1/═════════════════════════════════════════╩═
                                            0

for each t from the specified delay times, where \(\lambda =2 \pi \times {osc\_freq}\), and the delays are specified by the user. The circuits are run on the device or on a simulator backend.

References

[1] Philip Krantz, Morten Kjaergaard, Fei Yan, Terry P. Orlando, Simon Gustavsson, William D. Oliver, A Quantum Engineer’s Guide to Superconducting Qubits, Applied Physics Reviews 6, 021318 (2019), doi: 10.1063/1.5089550 (open)

User manual

T2* Ramsey Characterization

Analysis class reference

T2RamseyAnalysis

Experiment options

These options can be set by the set_experiment_options() method.

Options
  • Defined in the class T2Ramsey:

    • delays (Iterable[float])

      Default value: None
      Delay times of the experiments in seconds.
    • osc_freq (float)

      Default value: 0.0
      Oscillation frequency offset in Hz.
  • Defined in the class BaseExperiment:

    • max_circuits (Optional[int])

      Default value: None
      The maximum number of circuits per job when running an experiment on a backend.

Example

import numpy as np
import qiskit
from qiskit_experiments.library import T2Ramsey

delays = list(np.arange(1.00e-6, 50.0e-6, 2.00e-6))
exp = T2Ramsey(physical_qubits=(0, ), delays=delays, backend=backend, osc_freq=1.0e5)

exp_data = exp.run().block_for_results()
display(exp_data.figure(0))
exp_data.analysis_results(dataframe=True)
../_images/qiskit_experiments.library.characterization.T2Ramsey_1_0.png
name experiment components value quality backend run_time chisq unit
0afeb6f4 @Parameters_T2RamseyAnalysis T2Ramsey [Q0] CurveFitResult:\n - fitting method: least_squa... good aer_simulator_from(fake_manila) None None None
d454e7df Frequency T2Ramsey [Q0] (9.987+/-0.012)e+04 good aer_simulator_from(fake_manila) None 0.695203 Hz
34ffa56e T2star T2Ramsey [Q0] (9.8+/-0.6)e-05 good aer_simulator_from(fake_manila) None 0.695203 s

Initialization

Initialize the T2Ramsey class.

Parameters:
  • physical_qubits (Sequence[int]) – a single-element sequence containing the qubit under test.

  • delays (List[float] | array) – delay times of the experiments in seconds.

  • backend (Backend | None) – Optional, the backend to run the experiment on.

  • osc_freq (float) – the oscillation frequency induced by the user. The frequency is given in Hz.

Attributes

analysis

Return the analysis instance for the experiment

backend

Return the backend for the experiment

experiment_options

Return the options for the experiment.

experiment_type

Return experiment type.

num_qubits

Return the number of qubits for the experiment.

physical_qubits

Return the device qubits for the experiment.

run_options

Return options values for the experiment run() method.

transpile_options

Return the transpiler options for the run() method.

Methods

circuits()[source]

Return a list of experiment circuits.

Each circuit consists of a Hadamard gate, followed by a fixed delay, a phase gate (with a linear phase), and an additional Hadamard gate.

Returns:

The experiment circuits

Return type:

List[QuantumCircuit]

config()

Return the config dataclass for this experiment

Return type:

ExperimentConfig

copy()

Return a copy of the experiment

Return type:

BaseExperiment

classmethod from_config(config)

Initialize an experiment from experiment config

Return type:

BaseExperiment

job_info(backend=None)

Get information about job distribution for the experiment on a specific backend.

Parameters:

backend (Backend) – Optional, the backend for which to get job distribution information. If not specified, the experiment must already have a set backend.

Returns:

A dictionary containing information about job distribution.

  • ”Total number of circuits in the experiment”: Total number of circuits in the experiment.

  • ”Maximum number of circuits per job”: Maximum number of circuits in one job based on backend and experiment settings.

  • ”Total number of jobs”: Number of jobs needed to run this experiment on the currently set backend.

Return type:

dict

Raises:

QiskitError – if backend is not specified.

run(backend=None, sampler=None, analysis='default', timeout=None, backend_run=None, **run_options)

Run an experiment and perform analysis.

Parameters:
  • backend (Backend | None) – Optional, the backend to run on. Will override existing backend settings.

  • sampler (BaseSamplerV2 | None) – Optional, the sampler to run the experiment on. If None then a sampler will be invoked from previously set backend

  • analysis (BaseAnalysis | None) – Optional, a custom analysis instance to use for performing analysis. If None analysis will not be run. If "default" the experiments analysis() instance will be used if it contains one.

  • timeout (float | None) – Time to wait for experiment jobs to finish running before cancelling.

  • backend_run (bool | None) – Use backend run (temp option for testing)

  • run_options – backend runtime options used for circuit execution.

Returns:

The experiment data object.

Raises:

QiskitError – If experiment is run with an incompatible existing ExperimentData container.

Return type:

ExperimentData

set_experiment_options(**fields)

Set the experiment options.

Parameters:

fields – The fields to update the options

Raises:

AttributeError – If the field passed in is not a supported options

set_run_options(**fields)

Set options values for the experiment run() method.

Parameters:

fields – The fields to update the options

See also

The Setting options for your experiment guide for code example.

set_transpile_options(**fields)

Set the transpiler options for run() method.

Parameters:

fields – The fields to update the options

Raises:

QiskitError – If initial_layout is one of the fields.

See also

The Setting options for your experiment guide for code example.