# qiskit.pulse.library.GaussianSquareDrag

qiskit.pulse.library.GaussianSquareDrag(duration, amp, sigma, beta, width=None, angle=0.0, risefall_sigma_ratio=None, name=None, limit_amplitude=None)

A square pulse with a Drag shaped rise and fall

This pulse shape is similar to GaussianSquare but uses Drag for its rise and fall instead of Gaussian. The addition of the DRAG component of the rise and fall is sometimes helpful in suppressing the spectral content of the pulse at frequencies near to, but slightly offset from, the fundamental frequency of the drive. When there is a spectator qubit close in frequency to the fundamental frequency, suppressing the drive at the spectator’s frequency can help avoid unwanted excitation of the spectator.

Exactly one of the risefall_sigma_ratio and width parameters has to be specified.

If risefall_sigma_ratio is not None and width is None:

\begin{split}\text{risefall} &= \text{risefall_sigma_ratio} \times \text{sigma}\\ \text{width} &= \text{duration} - 2 \times \text{risefall}\end{split}

If width is not None and risefall_sigma_ratio is None:

$\text{risefall} = \frac{\text{duration} - \text{width}}{2}$

Gaussian $g(x, c, σ)$ and lifted gaussian $g'(x, c, σ)$ curves can be written as:

$\begin{split}g(x, c, σ) &= \exp\Bigl(-\frac12 \frac{(x - c)^2}{σ^2}\Bigr)\\ g'(x, c, σ) &= \frac{g(x, c, σ)-g(-1, c, σ)}{1-g(-1, c, σ)}\end{split}$

From these, the lifted DRAG curve $d'(x, c, σ, β)$ can be written as

$d'(x, c, σ, β) = g'(x, c, σ) \times \Bigl(1 + 1j \times β \times \Bigl(-\frac{x - c}{σ^2}\Bigr)\Bigr)$

The lifted gaussian square drag pulse $f'(x)$ is defined as:

$\begin{split}f'(x) &= \begin{cases} \text{A} \times d'(x, \text{risefall}, \text{sigma}, \text{beta}) & x < \text{risefall}\\ \text{A} & \text{risefall} \le x < \text{risefall} + \text{width}\\ \text{A} \times \times d'( x - (\text{risefall} + \text{width}), \text{risefall}, \text{sigma}, \text{beta} ) & \text{risefall} + \text{width} \le x \end{cases}\\\end{split}$

where $\text{A} = \text{amp} \times \exp\left(i\times\text{angle}\right)$.

Parameters

Returns

ScalableSymbolicPulse instance.

Raises

PulseError – When width and risefall_sigma_ratio are both empty or both non-empty.

Return type

ScalableSymbolicPulse