Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK and does not exist in the latest version. We recommend you migrate to the latest version. See the release notes for more information.

qiskit.pulse.Drag

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

GitHub

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|1\rangle - 2|2\rangle transition, reducing the chance of leakage to the 2|2\rangle state.

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

where ‘Gaussian’ is:

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

References

  1. Gambetta, J. M., Motzoi, F., Merkel, S. T. & Wilhelm, F. K. Analytic control methods for high-fidelity unitary operations in a weakly nonlinear oscillator. Phys. Rev. A 83, 012308 (2011).

  2. F. Motzoi, J. M. Gambetta, P. Rebentrost, and F. K. Wilhelm Phys. Rev. Lett. 103, 110501 – Published 8 September 2009.

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.

__init__

__init__(duration, amp, sigma, beta, name=None)

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.

Methods

__init__(duration, amp, sigma, beta[, name])Initialize the drag pulse.
assign_parameters(value_dict)Return a new ParametricPulse with parameters assigned.
draw([dt, style, filename, interp_method, …])Plot the pulse.
get_sample_pulse()Deprecated.
get_waveform()Return a Waveform with samples filled according to the formula that the pulse represents and the parameter values it contains.
validate_parameters()Validate parameters.

Attributes

ampThe Gaussian amplitude.
betaThe weighing factor for the Gaussian derivative component of the waveform.
idUnique identifier for this pulse.
parametersReturn a dictionary containing the pulse’s parameters.
sigmaThe Gaussian standard deviation of the pulse width.

amp

The Gaussian amplitude.

Return type

Union[complex, ParameterExpression]

assign_parameters

assign_parameters(value_dict)

Return a new ParametricPulse with parameters assigned.

Parameters

value_dict (Dict[ParameterExpression, Union[ParameterExpression, float, int]]) – A mapping from Parameters to either numeric values or another Parameter expression.

Return type

ParametricPulse

Returns

New pulse with updated parameters.

beta

The weighing factor for the Gaussian derivative component of the waveform.

Return type

Union[float, ParameterExpression]

draw

draw(dt=1, style=None, filename=None, interp_method=None, scale=1, interactive=False)

Plot the pulse.

Parameters

  • dt (float) – Time interval of samples.
  • style (Optional[PulseStyle]) – A style sheet to configure plot appearance
  • filename (Optional[str]) – Name required to save pulse image
  • interp_method (Optional[Callable]) – A function for interpolation
  • scale (float) – Relative visual scaling of waveform amplitudes
  • interactive (bool) – When set true show the circuit in a new window (this depends on the matplotlib backend being used supporting this)

Returns

A matplotlib figure object of the pulse envelope

Return type

matplotlib.figure

get_sample_pulse

get_sample_pulse()

Deprecated.

Return type

Waveform

get_waveform

get_waveform()

Return a Waveform with samples filled according to the formula that the pulse represents and the parameter values it contains.

Return type

Waveform

id

Unique identifier for this pulse.

Return type

int

parameters

Return a dictionary containing the pulse’s parameters.

Return type

Dict[str, Any]

sigma

The Gaussian standard deviation of the pulse width.

Return type

Union[float, ParameterExpression]

validate_parameters

validate_parameters()

Validate parameters.

Raises

PulseError – If the parameters passed are not valid.

Return type

None

Was this page helpful?
Report a bug or request content on GitHub.