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.

FineFrequency

class FineFrequency(physical_qubits, delay_duration, backend=None, repetitions=None)[source]

An experiment to make a fine measurement of the qubit frequency.

Overview

The fine frequency characterization experiment measures the qubit frequency by moving to the equator of the Bloch sphere with a sx gate and idling for a time nτ where τ is the duration of the single-qubit gate and n is an integer which ranges from zero to a maximal value in integer steps. The idle time is followed by a rz rotation with an angle nπ/2 and a final sx gate. If the frequency of the pulses match the frequency of the qubit then the sequence n[0,1,2,3,4,...] will result in the sequence of measured qubit populations [1,0.5,0,0.5,1,...] due to the rz rotation. If the frequency of the pulses do not match the qubit frequency then the qubit will precess in the drive frame during the idle time and phase errors will build-up. By fitting the measured points we can extract the error in the qubit frequency. The circuit that are run are

        ┌────┐┌────────────────┐┌──────────┐┌────┐ ░ ┌─┐
     q: ┤ √X ├┤ Delay(n*τ[dt]) ├┤ Rz(nπ/2) ├┤ √X ├─░─┤M├
        └────┘└────────────────┘└──────────┘└────┘ ░ └╥┘
meas: 1/══════════════════════════════════════════════╩═
                                                      0

Analysis class reference

ErrorAmplificationAnalysis

Experiment options

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

Options
  • Defined in the class FineFrequency:

    • repetitions (List[int])

      Default value: [0, 1, 2, 3, 4, …]
      A list of the number of times that the delay is repeated.
    • delay_duration (int)

      Default value: None
      The duration of the delay as the number of dt s it contains. The total length of the delay in units of dt will be n times delay_duration where n also determines the rotation angle of the RZGate by nπ/2.
  • 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.

Initialization

Setup a fine frequency experiment on the given qubit.

Parameters:
  • physical_qubits (Sequence[int]) – List containing the qubit on which to run the fine frequency characterization experiment.

  • delay_duration (int) – The duration of the delay at n=1 in dt.

  • backend (Optional[Backend]) – Optional, the backend to run the experiment on.

  • repetitions (Optional[List[int]]) – The number of repetitions, if not given then the default value from the experiment default options will be used.

Attributes

FineFrequency.analysis

Return the analysis instance for the experiment

FineFrequency.backend

Return the backend for the experiment

FineFrequency.experiment_options

Return the options for the experiment.

FineFrequency.experiment_type

Return experiment type.

FineFrequency.num_qubits

Return the number of qubits for the experiment.

FineFrequency.physical_qubits

Return the device qubits for the experiment.

FineFrequency.run_options

Return options values for the experiment run() method.

FineFrequency.transpile_options

Return the transpiler options for the run() method.

Methods

FineFrequency.circuits()

Return the list of quantum circuits to run.

FineFrequency.config()

Return the config dataclass for this experiment

FineFrequency.copy()

Return a copy of the experiment

FineFrequency.from_config(config)

Initialize an experiment from experiment config

FineFrequency.run([backend, analysis, timeout])

Run an experiment and perform analysis.

FineFrequency.set_experiment_options(**fields)

Set the experiment options.

FineFrequency.set_run_options(**fields)

Set options values for the experiment run() method.

FineFrequency.set_transpile_options(**fields)

Set the transpiler options for run() method.