qiskit-documentation/docs/api/qiskit/0.38/qiskit.pulse.library.Gaussi...

224 lines
8.6 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

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: GaussianSquare
description: API reference for qiskit.pulse.library.GaussianSquare
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit.pulse.library.GaussianSquare
---
# GaussianSquare
<Class id="qiskit.pulse.library.GaussianSquare" isDedicatedPage={true} github="https://github.com/qiskit/qiskit/tree/stable/0.21/qiskit/pulse/library/symbolic_pulses.py" signature="GaussianSquare(duration, amp, sigma, width=None, risefall_sigma_ratio=None, name=None, limit_amplitude=None)" modifiers="class">
Bases: [`qiskit.pulse.library.symbolic_pulses.SymbolicPulse`](qiskit.pulse.library.SymbolicPulse "qiskit.pulse.library.symbolic_pulses.SymbolicPulse")
A square pulse with a Gaussian shaped risefall on both sides lifted such that its first sample is zero.
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}
$$
In both cases, the lifted gaussian square pulse $f'(x)$ is defined as:
$$
\begin{split}f'(x) &= \begin{cases} \exp\biggl(-\frac12 \frac{(x - \text{risefall})^2}{\text{sigma}^2}\biggr) & x < \text{risefall}\\
1 & \text{risefall} \le x < \text{risefall} + \text{width}\\
\exp\biggl(-\frac12 \frac{{\bigl(x - (\text{risefall} + \text{width})\bigr)}^2} {\text{sigma}^2} \biggr) & \text{risefall} + \text{width} \le x \end{cases}\\
f(x) &= \text{amp} \times \frac{f'(x) - f'(-1)}{1-f'(-1)}, \quad 0 \le x < \text{duration}\end{split}
$$
where $f'(x)$ is the gaussian square waveform without lifting or amplitude scaling.
Create new pulse instance.
**Parameters**
* **duration** (`Union`\[`int`, [`ParameterExpression`](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression")]) Pulse length in terms of the sampling period dt.
* **amp** (`Union`\[`complex`, [`ParameterExpression`](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression")]) The amplitude of the Gaussian and of the square pulse.
* **sigma** (`Union`\[`float`, [`ParameterExpression`](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression")]) A measure of how wide or narrow the Gaussian risefall is; see the class docstring for more details.
* **width** (`Union`\[`float`, [`ParameterExpression`](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression"), `None`]) The duration of the embedded square pulse.
* **risefall\_sigma\_ratio** (`Union`\[`float`, [`ParameterExpression`](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression"), `None`]) The ratio of each risefall duration to sigma.
* **name** (`Optional`\[`str`]) Display name for this pulse envelope.
* **limit\_amplitude** (`Optional`\[`bool`]) If `True`, then limit the amplitude of the waveform to 1. The default is `True` and the amplitude is constrained to 1.
**Raises**
[**PulseError**](pulse#qiskit.pulse.PulseError "qiskit.pulse.PulseError") When width and risefall\_sigma\_ratio are both empty or both non-empty.
## Methods
### draw
<Function id="qiskit.pulse.library.GaussianSquare.draw" signature="GaussianSquare.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. See `IQXStandard`, `IQXSimple`, and `IQXDebugging` 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 either `dt` or `ns`. The unit of `ns` is available only when `backend` object is provided.
* **show\_waveform\_info** (`bool`) Show waveform annotations, i.e. name, of waveforms. Set `True` to show additional information about waveforms.
* **plotter** (`str`)
Name of plotter API to generate an output image. One of following APIs should be specified:
```python
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 given `axis` 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.
</Function>
### get\_waveform
<Function id="qiskit.pulse.library.GaussianSquare.get_waveform" signature="GaussianSquare.get_waveform()">
Return a Waveform with samples filled according to the formula that the pulse represents and the parameter values it contains.
Since the returned array is a discretized time series of the continuous function, this method uses a midpoint sampler. For `duration`, return:
$$
\{f(t+0.5) \in \mathbb{C} | t \in \mathbb{Z} \wedge 0<=t<\texttt{duration}\}
$$
**Return type**
[`Waveform`](qiskit.pulse.library.Waveform "qiskit.pulse.library.waveform.Waveform")
**Returns**
A waveform representation of this pulse.
**Raises**
* [**PulseError**](pulse#qiskit.pulse.PulseError "qiskit.pulse.PulseError") When parameters are not assigned.
* [**PulseError**](pulse#qiskit.pulse.PulseError "qiskit.pulse.PulseError") When expression for pulse envelope is not assigned.
</Function>
### is\_parameterized
<Function id="qiskit.pulse.library.GaussianSquare.is_parameterized" signature="GaussianSquare.is_parameterized()">
Return True iff the instruction is parameterized.
**Return type**
`bool`
</Function>
### validate\_parameters
<Function id="qiskit.pulse.library.GaussianSquare.validate_parameters" signature="GaussianSquare.validate_parameters()">
Validate parameters.
**Raises**
[**PulseError**](pulse#qiskit.pulse.PulseError "qiskit.pulse.PulseError") If the parameters passed are not valid.
**Return type**
`None`
</Function>
## Attributes
### constraints
<Attribute id="qiskit.pulse.library.GaussianSquare.constraints">
Return symbolic expression for the pulse parameter constraints.
**Return type**
`Expr`
</Attribute>
### duration
<Attribute id="qiskit.pulse.library.GaussianSquare.duration" />
### envelope
<Attribute id="qiskit.pulse.library.GaussianSquare.envelope">
Return symbolic expression for the pulse envelope.
**Return type**
`Expr`
</Attribute>
### id
<Attribute id="qiskit.pulse.library.GaussianSquare.id">
Unique identifier for this pulse.
**Return type**
`int`
</Attribute>
### limit\_amplitude
<Attribute id="qiskit.pulse.library.GaussianSquare.limit_amplitude" attributeValue="True" />
### name
<Attribute id="qiskit.pulse.library.GaussianSquare.name" />
### parameters
<Attribute id="qiskit.pulse.library.GaussianSquare.parameters">
**Return type**
`Dict`\[`str`, `Any`]
</Attribute>
### pulse\_type
<Attribute id="qiskit.pulse.library.GaussianSquare.pulse_type">
Return display name of the pulse shape.
**Return type**
`str`
</Attribute>
### risefall\_sigma\_ratio
<Attribute id="qiskit.pulse.library.GaussianSquare.risefall_sigma_ratio">
Return risefall\_sigma\_ratio. This is auxiliary parameter to define width.
</Attribute>
### valid\_amp\_conditions
<Attribute id="qiskit.pulse.library.GaussianSquare.valid_amp_conditions">
Return symbolic expression for the pulse amplitude constraints.
**Return type**
`Expr`
</Attribute>
</Class>