English
Languages
English
Japanese
German
Korean
Portuguese, Brazilian
French
Shortcuts

qiskit.pulse.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

  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).

  1. 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__(duration, amp, sigma, beta, name=None)[source]

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

amp

The Gaussian amplitude.

beta

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

id

Unique identifier for this pulse.

parameters

Return a dictionary containing the pulse’s parameters.

sigma

The Gaussian standard deviation of the pulse width.

property amp

The Gaussian amplitude.

Return type

Union[complex, ParameterExpression]

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.

property beta

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

Return type

Union[float, ParameterExpression]

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()

Deprecated.

Return type

Waveform

get_waveform()[source]

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

Return type

Waveform

property id

Unique identifier for this pulse.

Return type

int

property parameters

Return a dictionary containing the pulse’s parameters.

Return type

Dict[str, Any]

property sigma

The Gaussian standard deviation of the pulse width.

Return type

Union[float, ParameterExpression]

validate_parameters()[source]

Validate parameters.

Raises

PulseError – If the parameters passed are not valid.

Return type

None