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 (
complex
) – The amplitude of the Drag envelope.sigma (
float
) – A measure of how wide or narrow the Gaussian peak is; described mathematically in the class docstring.beta (
float
) – The correction amplitude.name (
Optional
[str
]) – Display name for this pulse envelope.
Attributes
The Gaussian amplitude.
The weighing factor for the Gaussian derivative component of the waveform.
Unique identifier for this pulse.
Return a dictionary containing the pulse’s parameters.
The Gaussian standard deviation of the pulse width.
Methods
Drag.__call__
(channel)Call self as a function.
Drag.draw
([dt, style, filename, …])Plot the pulse.
Return a SamplePulse with samples filled according to the formula that the pulse represents and the parameter values it contains.
Validate parameters.
Drag.__call__
(channel)Call self as a function.