Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK. Go to the latest version

GaussianSquare

class GaussianSquare(duration: Union[int, qiskit.circuit.parameterexpression.ParameterExpression], amp: Union[complex, float, qiskit.circuit.parameterexpression.ParameterExpression], sigma: Union[float, qiskit.circuit.parameterexpression.ParameterExpression], width: Optional[Union[float, qiskit.circuit.parameterexpression.ParameterExpression]] = None, angle: Optional[Union[float, qiskit.circuit.parameterexpression.ParameterExpression]] = None, risefall_sigma_ratio: Optional[Union[float, qiskit.circuit.parameterexpression.ParameterExpression]] = None, name: Optional[str] = None, limit_amplitude: Optional[bool] = None)

GitHub

Bases: object

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:

risefall=risefall_sigma_ratio×sigmawidth=duration2×risefall\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:

risefall=durationwidth2\text{risefall} = \frac{\text{duration} - \text{width}}{2}

In both cases, the lifted gaussian square pulse f(x)f'(x) is defined as:

f(x)={exp(12(xrisefall)2sigma2)x<risefall1risefallx<risefall+widthexp(12(x(risefall+width))2sigma2)risefall+widthxf(x)=A×f(x)f(1)1f(1),0x<duration\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{A} \times \frac{f'(x) - f'(-1)}{1-f'(-1)}, \quad 0 \le x < \text{duration}\end{split}

where f(x)f'(x) is the gaussian square waveform without lifting or amplitude scaling, and A=amp×exp(i×angle)\text{A} = \text{amp} \times \exp\left(i\times\text{angle}\right).

Create new pulse instance.

Parameters

  • duration – Pulse length in terms of the sampling period dt.
  • amp – The magnitude of the amplitude of the Gaussian and square pulse. Complex amp support will be deprecated.
  • sigma – A measure of how wide or narrow the Gaussian risefall is; see the class docstring for more details.
  • width – The duration of the embedded square pulse.
  • angle – The angle of the complex amplitude of the pulse. Default value 0.
  • risefall_sigma_ratio – The ratio of each risefall duration to sigma.
  • name – Display name for this pulse envelope.
  • limit_amplitude – If True, then limit the amplitude of the waveform to 1. The default is True and the amplitude is constrained to 1.

Returns

ScalableSymbolicPulse instance.

Raises

PulseError – When width and risefall_sigma_ratio are both empty or both non-empty.


Attributes

alias

Default value: 'GaussianSquare'

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