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.
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
Analysis class reference
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)
name experiment components value quality backend run_time chisq unit f7c1b195 @Parameters_T2RamseyAnalysis T2Ramsey [Q0] CurveFitResult:\n - fitting method: least_squa... good aer_simulator_from(fake_manila) None None None 0a89e77d Frequency T2Ramsey [Q0] (9.988+/-0.011)e+04 good aer_simulator_from(fake_manila) None 0.932637 Hz 6e92bf2e T2star T2Ramsey [Q0] (9.8+/-0.6)e-05 good aer_simulator_from(fake_manila) None 0.932637 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.
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:
- copy()¶
Return a copy of the experiment
- Return type:
- classmethod from_config(config)¶
Initialize an experiment from experiment config
- Return type:
- 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 experimentsanalysis()
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:
- 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.