qutip-pulses
Table of Contents
Pulse Shaping
Pulse shaping designs smooth time-dependent control fields to minimize errors and off-resonant effects. Common pulse shapes: Gaussian, STIRAP, DRAG.
DRAG Pulses
DRAG (Derivative Removal by Adiabatic Gate) reduces leakage errors in two-qubit gates:
$$u(t) = \Omega(t) + i \beta \frac{d\Omega}{dt} \sigma_x$$
where $\Omega(t)$ is the pulse envelope and $\beta$ is a calibrated parameter.
from qutip import * import numpy as np # DRAG pulse for qubit control def drag_pulse(t, tlist, Omega0, beta): # Gaussian envelope sigma = (tlist[-1] - tlist[0]) / 4 t_center = (tlist[-1] + tlist[0]) / 2 envelope = Omega0 * np.exp(-(t - t_center)**2 / (2 * sigma**2)) # Derivative for DRAG correction d_envelope = -Omega0 * (t - t_center) / sigma**2 * np.exp(-(t - t_center)**2 / (2 * sigma**2)) return envelope + 1j * beta * d_envelope times = np.linspace(0, 10, 100) H_ctrl = [sigmax(), lambda t, args: drag_pulse(t, times, 0.1, 0.05)]
Common Shapes
- Gaussian: smooth envelope, minimal sideband excitation
- STIRAP: adiabatic population transfer
- Square: minimal duration but high bandwidth
- Ramp: linear interpolation, smooth edges
Pulse shaping compensates for hardware non-idealities and reduces errors. Proper pulse design is critical for high-fidelity operations.
qutip-pulses.md · Last modified: by 127.0.0.1
