new_drag_control

qctrlopencontrols.new_drag_control(rabi_rotation, segment_count, duration, width, beta, azimuthal_angle=0.0, name=None)[source]

Generates a Gaussian driven control sequence with a first-order DRAG (Derivative Removal by Adiabatic Gate) correction applied.

The addition of DRAG further reduces leakage out of the qubit subspace via an additional off-quadrature corrective driving term proportional to the derivative of the Gaussian pulse.

Parameters:
  • rabi_rotation (float) – Total Rabi rotation \(\theta\) to be performed by the driven control.

  • segment_count (int) – Number of segments in the control sequence.

  • duration (float) – Total duration \(t_g\) of the control sequence.

  • width (float) – Width (standard deviation) \(\sigma\) of the ideal Gaussian pulse.

  • beta (float) – Amplitude scaling \(\beta\) of the Gaussian derivative.

  • azimuthal_angle (float, optional) – The azimuthal angle \(\phi\) for the rotation. Defaults to 0.

  • name (str, optional) – An optional string to name the control. Defaults to None.

Returns:

A control sequence as an instance of DrivenControl.

Return type:

DrivenControl

Notes

A DRAG-corrected Gaussian driven control [1] applies a Hamiltonian consisting of a piecewise constant approximation to an ideal Gaussian pulse controlling \(\sigma_x\) while its derivative controls the application of the \(\sigma_y\) operator:

\[H(t) = \frac{1}{2}(\Omega_G(t) \sigma_x + \beta \dot{\Omega}_G(t) \sigma_y)\]

where \(\Omega_G(t)\) is simply given by new_gaussian_control. Optimally, \(\beta = -\frac{\lambda_1^2}{4\Delta_2}\) where \(\Delta_2\) is the anharmonicity of the system and \(\lambda_1\) is the relative strength required to drive a transition \(\lvert 1 \rangle \rightarrow \lvert 2 \rangle\) vs. \(\lvert 0 \rangle \rightarrow \lvert 1 \rangle\). Note that this choice of \(\beta\), sometimes called “simple drag” or “half derivative”, is a first-order version of DRAG, and it excludes an additional detuning corrective term.

References