DynamicDecouplingSequence
- class qctrlopencontrols.DynamicDecouplingSequence(duration, offsets, rabi_rotations, azimuthal_angles, detuning_rotations, name=None)[source]
Creates a dynamic decoupling sequence.
- Parameters
duration (float) – The total time in seconds for the sequence \(\tau\).
offsets (np.ndarray) – The times offsets \(\{t_j\}\) in seconds for the center of pulses.
rabi_rotations (np.ndarray) – The Rabi rotation \(\omega_j\) at each time offset \(t_j\).
azimuthal_angles (np.ndarray) – The azimuthal angle \(\phi_j\) at each time offset \(t_j\).
detuning_rotations (np.ndarray) – The detuning rotation \(\delta_j\) at each time offset \(t_j\).
name (str, optional) – Name of the sequence. Defaults to None.
Notes
Dynamical decoupling sequence (DDS) is canonically defined as a series of \(n\)-instantaneous unitary operations, often \(\pi\)-pulses, executed at time offsets \(\{t_j\}_{j=1}^n\) over the time interval with a total duration \(\tau\). The \(j\)-th operation applied at time \(t_j\) can be parameterized as
\[U_j = \exp\left[-\frac{i}{2}(\omega_j \cos \phi_j \sigma_x + \omega_j\sin \phi_j\sigma_y + \delta_j\sigma_z)\right] \;,\]Note that in practice all DDSs typically have a \(X_{\pi/2}\) operation at the start \(t = 0\) and end \(t = \tau\) of the sequence. This is because it is assumed that the qubit is initially in the state \(|0\rangle\) and a superposition needs to be created and removed to make the qubit sensitive to dephasing.
Methods
Returns a dictionary for plotting using the qctrl-visualizer package.
Prepares and saves the dynamical decoupling sequence in a file.