# Drag¶

class Drag(duration, amp, sigma, beta, name=None)[source]

The Derivative Removal by Adiabatic Gate (DRAG) pulse is a standard Gaussian pulse with an additional Gaussian derivative component. It is designed to reduce the frequency spectrum of a normal gaussian pulse near the $$|1\rangle$$ - $$|2\rangle$$ transition, reducing the chance of leakage to the $$|2\rangle$$ state.

$f(x) = Gaussian + 1j * beta * d/dx [Gaussian] = Gaussian + 1j * beta * (-(x - duration/2) / sigma^2) [Gaussian]$

where ‘Gaussian’ is:

$Gaussian(x, amp, sigma) = amp * exp( -(1/2) * (x - duration/2)^2 / sigma^2) )$

References

Initialize the drag pulse.

Parameters
• duration (int) – Pulse length in terms of the the sampling period dt.

• amp (Union[complex, ParameterExpression]) – The amplitude of the Drag envelope.

• sigma (Union[float, ParameterExpression]) – A measure of how wide or narrow the Gaussian peak is; described mathematically in the class docstring.

• beta (Union[float, ParameterExpression]) – The correction amplitude.

• name (Optional[str]) – Display name for this pulse envelope.

Attributes

 Drag.amp The Gaussian amplitude. Drag.beta The weighing factor for the Gaussian derivative component of the waveform. Drag.id Unique identifier for this pulse. Drag.parameters Return a dictionary containing the pulse’s parameters. Drag.sigma The Gaussian standard deviation of the pulse width.

Methods

 Drag.assign_parameters(value_dict) Return a new ParametricPulse with parameters assigned. Drag.draw([dt, style, filename, …]) Plot the pulse. Deprecated. Return a Waveform with samples filled according to the formula that the pulse represents and the parameter values it contains. Validate parameters.