qblox_scheduler.analysis.single_qubit_timedomain#
Module containing analyses for common single qubit timedomain experiments.
Classes#
Base Analysis class for single-qubit timedomain experiments. |
|
A mixin for common analysis logic. |
|
Analysis class for a qubit T1 experiment, |
|
Analysis class for a qubit spin-echo experiment, |
|
Fits a decaying cosine curve to Ramsey data (possibly with artificial detuning) |
|
Normalizes the data from an AllXY experiment and plots against an ideal curve. |
|
Fits a cosine curve to Rabi oscillation data and finds the qubit drive |
Module Contents#
- class SingleQubitTimedomainAnalysis(dataset: xarray.Dataset | None = None, tuid: quantify_core.data.types.TUID | str | None = None, label: str = '', settings_overwrite: dict | None = None, plot_figures: bool = True)[source]#
Bases:
qblox_scheduler.analysis.base_analysis.BaseAnalysisBase Analysis class for single-qubit timedomain experiments.
- run(calibration_points: bool | Literal['auto'] = 'auto')[source]#
- Parameters:
calibration_points – Indicates if the data analyzed includes calibration points. If set to
True, will interpret the last two data points in the dataset as \(|0\rangle\) and \(|1\rangle\) respectively. If"auto", will usehas_calibration_points()to determine if the data contains calibration points.- Returns:
SingleQubitTimedomainAnalysis: The instance of this analysis.
- process_data()[source]#
Processes the data so that the analysis can make assumptions on the format.
Populates self.dataset_processed.S21 with the complex (I,Q) valued transmission, and if calibration points are present for the 0 and 1 state, populates self.dataset_processed.pop_exc with the excited state population.
- class T1Analysis(dataset: xarray.Dataset | None = None, tuid: quantify_core.data.types.TUID | str | None = None, label: str = '', settings_overwrite: dict | None = None, plot_figures: bool = True)[source]#
Bases:
SingleQubitTimedomainAnalysis,_DecayFigMixinAnalysis class for a qubit T1 experiment, which fits an exponential decay and extracts the T1 time.
- run_fitting()[source]#
Fit the data to
ExpDecayModel.
- class EchoAnalysis(dataset: xarray.Dataset | None = None, tuid: quantify_core.data.types.TUID | str | None = None, label: str = '', settings_overwrite: dict | None = None, plot_figures: bool = True)[source]#
Bases:
SingleQubitTimedomainAnalysis,_DecayFigMixinAnalysis class for a qubit spin-echo experiment, which fits an exponential decay and extracts the T2_echo time.
- run_fitting()[source]#
Fit the data to
ExpDecayModel.
- class RamseyAnalysis(dataset: xarray.Dataset | None = None, tuid: quantify_core.data.types.TUID | str | None = None, label: str = '', settings_overwrite: dict | None = None, plot_figures: bool = True)[source]#
Bases:
SingleQubitTimedomainAnalysis,_DecayFigMixinFits a decaying cosine curve to Ramsey data (possibly with artificial detuning) and finds the true detuning, qubit frequency and T2* time.
- run(artificial_detuning: float = 0, qubit_frequency: float = None, calibration_points: bool | Literal['auto'] = 'auto')[source]#
- Parameters:
artificial_detuning – The detuning in Hz that will be emulated by adding an extra phase in software.
qubit_frequency – The initial recorded value of the qubit frequency (before accurate fitting is done) in Hz.
calibration_points – Indicates if the data analyzed includes calibration points. If set to
True, will interpret the last two data points in the dataset as \(|0\rangle\) and \(|1\rangle\) respectively. If"auto", will usehas_calibration_points()to determine if the data contains calibration points.
- Returns:
RamseyAnalysis: The instance of this analysis.
- run_fitting()[source]#
Fits a
DecayOscillationModelto the data.
- class AllXYAnalysis(dataset: xarray.Dataset | None = None, tuid: quantify_core.data.types.TUID | str | None = None, label: str = '', settings_overwrite: dict | None = None, plot_figures: bool = True)[source]#
Bases:
SingleQubitTimedomainAnalysisNormalizes the data from an AllXY experiment and plots against an ideal curve.
See section 2.3.2 of :cite:t:`reed_entanglement_2013` for an explanation of the AllXY experiment and it’s applications in diagnosing errors in single-qubit control pulses.
- run()[source]#
Executes the analysis using specific datapoints as calibration points.
- Returns:
AllXYAnalysis: The instance of this analysis.
- process_data()[source]#
Processes the data so that the analysis can make assumptions on the format.
Populates self.dataset_processed.S21 with the complex (I,Q) valued transmission, and if calibration points are present for the 0 and 1 state, populates self.dataset_processed.pop_exc with the excited state population.
- class RabiAnalysis(dataset: xarray.Dataset | None = None, tuid: quantify_core.data.types.TUID | str | None = None, label: str = '', settings_overwrite: dict | None = None, plot_figures: bool = True)[source]#
Bases:
SingleQubitTimedomainAnalysisFits a cosine curve to Rabi oscillation data and finds the qubit drive amplitude required to implement a pi-pulse.
The analysis will automatically rotate the data so that the data lies along the axis with the best SNR.
- run(calibration_points: bool = True)[source]#
- Parameters:
calibration_points – Specifies if the data should be rotated so that it lies along the axis with the best SNR.
- Returns:
RabiAnalysis: The instance of this analysis.