Drag
class Drag(duration, amp, sigma, beta, name=None, limit_amplitude=None)
Bases: qiskit.pulse.library.parametric_pulses.ParametricPulse
The Derivative Removal by Adiabatic Gate (DRAG) pulse is a standard Gaussian pulse with an additional Gaussian derivative component and lifting applied.
It is designed to reduce the frequency spectrum of a normal gaussian pulse near the transition, reducing the chance of leakage to the state.
where is a standard unlifted gaussian waveform and is the DRAG waveform without lifting or amplitude scaling.
This pulse would be more accurately named as LiftedDrag
, however, for historical and practical DSP reasons it has the name Drag
.
References
Initialize the drag pulse.
Parameters
- duration (
Union
[int
,ParameterExpression
]) – 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. - limit_amplitude (
Optional
[bool
]) – IfTrue
, then limit the amplitude of the waveform to 1. The default isTrue
and the amplitude is constrained to 1.
Methods
draw
Drag.draw(style=None, backend=None, time_range=None, time_unit='dt', show_waveform_info=True, plotter='mpl2d', axis=None)
Plot the interpolated envelope of pulse.
Parameters
-
style (
Optional
[Dict
[str
,Any
]]) – Stylesheet options. This can be dictionary or preset stylesheet classes. SeeIQXStandard
,IQXSimple
, andIQXDebugging
for details of preset stylesheets. -
backend (Optional[BaseBackend]) – Backend object to play the input pulse program. If provided, the plotter may use to make the visualization hardware aware.
-
time_range (
Optional
[Tuple
[int
,int
]]) – Set horizontal axis limit. Tuple(tmin, tmax)
. -
time_unit (
str
) – The unit of specified time range eitherdt
orns
. The unit ofns
is available only whenbackend
object is provided. -
show_waveform_info (
bool
) – Show waveform annotations, i.e. name, of waveforms. SetTrue
to show additional information about waveforms. -
plotter (
str
) –Name of plotter API to generate an output image. One of following APIs should be specified:
mpl2d: Matplotlib API for 2D image generation. Matplotlib API to generate 2D image. Charts are placed along y axis with vertical offset. This API takes matplotlib.axes.Axes as `axis` input.
axis and style kwargs may depend on the plotter.
-
axis (
Optional
[Any
]) – Arbitrary object passed to the plotter. If this object is provided, the plotters use a givenaxis
instead of internally initializing a figure object. This object format depends on the plotter. See plotter argument for details.
Returns
Visualization output data. The returned data type depends on the plotter
. If matplotlib family is specified, this will be a matplotlib.pyplot.Figure
data.
get_waveform
Drag.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
is_parameterized
Drag.is_parameterized()
Return True iff the instruction is parameterized.
Return type
bool
validate_parameters
Drag.validate_parameters()
Validate parameters.
Raises
PulseError – If the parameters passed are not valid.
Return type
None
Attributes
amp
The Gaussian amplitude.
Return type
Union
[complex
, ParameterExpression
]
beta
The weighing factor for the Gaussian derivative component of the waveform.
Return type
Union
[float
, ParameterExpression
]
id
Unique identifier for this pulse.
Return type
int
limit_amplitude
Default value: True
parameters
Return type
Dict
[str
, Any
]
sigma
The Gaussian standard deviation of the pulse width.
Return type
Union
[float
, ParameterExpression
]