qiskit-documentation/docs/api/qiskit/0.24/qiskit.pulse.Drag.mdx

204 lines
8.8 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Drag
description: API reference for qiskit.pulse.Drag
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit.pulse.Drag
---
<span id="qiskit-pulse-drag" />
# qiskit.pulse.Drag
<Class id="qiskit.pulse.Drag" isDedicatedPage={true} github="https://github.com/qiskit/qiskit/tree/stable/0.16/qiskit/pulse/library/parametric_pulses.py" signature="Drag(duration, amp, sigma, beta, name=None)" modifiers="class">
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).*](https://link.aps.org/doi/10.1103/PhysRevA.83.012308)
2. [*F. Motzoi, J. M. Gambetta, P. Rebentrost, and F. K. Wilhelm Phys. Rev. Lett. 103, 110501 Published 8 September 2009.*](https://link.aps.org/doi/10.1103/PhysRevLett.103.110501)
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\_\_
<Function id="qiskit.pulse.Drag.__init__" signature="__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.
</Function>
## Methods
| | |
| -------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| [`__init__`](#qiskit.pulse.Drag.__init__ "qiskit.pulse.Drag.__init__")(duration, amp, sigma, beta\[, name]) | Initialize the drag pulse. |
| [`assign_parameters`](#qiskit.pulse.Drag.assign_parameters "qiskit.pulse.Drag.assign_parameters")(value\_dict) | Return a new ParametricPulse with parameters assigned. |
| [`draw`](#qiskit.pulse.Drag.draw "qiskit.pulse.Drag.draw")(\[dt, style, filename, interp\_method, …]) | Plot the pulse. |
| [`get_sample_pulse`](#qiskit.pulse.Drag.get_sample_pulse "qiskit.pulse.Drag.get_sample_pulse")() | Deprecated. |
| [`get_waveform`](#qiskit.pulse.Drag.get_waveform "qiskit.pulse.Drag.get_waveform")() | Return a Waveform with samples filled according to the formula that the pulse represents and the parameter values it contains. |
| [`validate_parameters`](#qiskit.pulse.Drag.validate_parameters "qiskit.pulse.Drag.validate_parameters")() | Validate parameters. |
## Attributes
| | |
| ---------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| [`amp`](#qiskit.pulse.Drag.amp "qiskit.pulse.Drag.amp") | The Gaussian amplitude. |
| [`beta`](#qiskit.pulse.Drag.beta "qiskit.pulse.Drag.beta") | The weighing factor for the Gaussian derivative component of the waveform. |
| [`id`](#qiskit.pulse.Drag.id "qiskit.pulse.Drag.id") | Unique identifier for this pulse. |
| [`parameters`](#qiskit.pulse.Drag.parameters "qiskit.pulse.Drag.parameters") | Return a dictionary containing the pulses parameters. |
| [`sigma`](#qiskit.pulse.Drag.sigma "qiskit.pulse.Drag.sigma") | The Gaussian standard deviation of the pulse width. |
### amp
<Attribute id="qiskit.pulse.Drag.amp">
The Gaussian amplitude.
**Return type**
`Union`\[`complex`, `ParameterExpression`]
</Attribute>
### assign\_parameters
<Function id="qiskit.pulse.Drag.assign_parameters" signature="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.
</Function>
### beta
<Attribute id="qiskit.pulse.Drag.beta">
The weighing factor for the Gaussian derivative component of the waveform.
**Return type**
`Union`\[`float`, `ParameterExpression`]
</Attribute>
### draw
<Function id="qiskit.pulse.Drag.draw" signature="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*](qiskit.visualization.pulse.qcstyle#pulsestyle "qiskit.visualization.pulse.qcstyle.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
</Function>
### get\_sample\_pulse
<Function id="qiskit.pulse.Drag.get_sample_pulse" signature="get_sample_pulse()">
Deprecated.
**Return type**
`Waveform`
</Function>
### get\_waveform
<Function id="qiskit.pulse.Drag.get_waveform" signature="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`
</Function>
### id
<Attribute id="qiskit.pulse.Drag.id">
Unique identifier for this pulse.
**Return type**
`int`
</Attribute>
### parameters
<Attribute id="qiskit.pulse.Drag.parameters">
Return a dictionary containing the pulses parameters.
**Return type**
`Dict`\[`str`, `Any`]
</Attribute>
### sigma
<Attribute id="qiskit.pulse.Drag.sigma">
The Gaussian standard deviation of the pulse width.
**Return type**
`Union`\[`float`, `ParameterExpression`]
</Attribute>
### validate\_parameters
<Function id="qiskit.pulse.Drag.validate_parameters" signature="validate_parameters()">
Validate parameters.
**Raises**
[**PulseError**](qiskit.pulse.PulseError "qiskit.pulse.PulseError") If the parameters passed are not valid.
**Return type**
`None`
</Function>
</Class>