Rabi¶
- class Rabi(qubit, schedule, amplitudes=None, backend=None)[source]¶
An experiment that scans a pulse amplitude to calibrate rotations between 0 and 1.
Overview
The circuits have a custom rabi gate with the pulse schedule attached to it through the calibrations. The circuits are of the form:
┌───────────┐ ░ ┌─┐ q_0: ┤ Rabi(amp) ├─░─┤M├ └───────────┘ ░ └╥┘ measure: 1/═════════════════╩═ 0
The user provides his own schedule for the Rabi at initialization which must have one free parameter, i.e. the amplitude to scan and a drive channel which matches the qubit.
Tutorials
Calibrating single-qubit gates on a real device
See also Qiskit Textbook for the pulse level programming of a Rabi experiment.
Analysis Class Reference
Experiment Options
These options can be set by
set_experiment_options()
method.- Parameters:
amplitudes (iterable) – The list of amplitude values to scan.
schedule (ScheduleBlock) – The schedule for the Rabi pulse. This schedule must have exactly one free parameter. The drive channel should match the qubit.
Transpiler Options
This option can be set by
set_transpile_options()
method.This option is used for circuit optimization. See the documentation of
qiskit.transpile
for available options.Backend Run Options
This option can be set by
set_run_options()
method.This option is used for controlling job execution condition. Note that this option is provider dependent. See provider’s backend runner API for available options. See the documentation of
IBMQBackend.run
for the IBM Quantum Service.Initialization
Initialize a Rabi experiment on the given qubit.
- Parameters:
qubit (
int
) – The qubit on which to run the Rabi experiment.schedule (
ScheduleBlock
) – The schedule that will be used in the Rabi experiment. This schedule should have one free parameter namely the amplitude.amplitudes (
Optional
[Iterable
[float
]]) – The pulse amplitudes that one wishes to scan. If this variable is not specified it will default tonp.linspace(-0.95, 0.95, 51)
.backend (
Optional
[Backend
]) – Optional, the backend to run the experiment on.
Attributes
Return the analysis instance for the experiment
Return the analysis options for
run()
analysis.Return the backend for the experiment
Return the options for the experiment.
Return experiment type.
Return the number of qubits for the experiment.
Return the device qubits for the experiment.
Return options values for the experiment
run()
method.Return the transpiler options for the
run()
method.Methods
Create the circuits for the Rabi experiment.
Return the config dataclass for this experiment
Return a copy of the experiment
Rabi.enable_restless
([rep_delay, ...])Enables a restless experiment by setting the restless run options and the restless data processor.
Rabi.from_config
(config)Initialize an experiment from experiment config
Rabi.run
([backend, analysis, timeout])Run an experiment and perform analysis.
Rabi.set_experiment_options
(**fields)Set the experiment options.
Rabi.set_run_options
(**fields)Set options values for the experiment
run()
method.Rabi.set_transpile_options
(**fields)Set the transpiler options for
run()
method.