quil.waveforms

class BoxcarKernel:

A Boxcar waveform.

def into_iq_value(self, /):

Get the complex value this BoxcarKernel represents.

sample_count

Sample count, which must be positive.

phase

The phase, in cycles.

scale

Scale applied to the waveform envelope.

class ErfSquare:

A waveform with a flat top and edges that are error functions (erfs).

def into_iq_value(self, /):

Get the a list of complex values from this waveform.

scale

Scale to apply to waveform envelope

phase

Phase shift for entire waveform

pad_left

Length of zero padding to add to beginning of pulse (s)

duration

Full duration of the pulse (s)

risetime

Slope of erf shoulders (2x FWHM of erf in s)

detuning

Explicit detuning to bake into iq values

sample_rate

Generate wavform samples at this rate (Hz)

pad_right

Length of zero padding to add to end of pulse (s)

positive_polarity

Toggle for positive/negative polarity

class Gaussian:

Creates a waveform with a Gaussian shape.

def into_iq_value(self, /):

Get the a list of complex values from this waveform.

t0

Center/offset for pulse centroid (s)

sample_rate

Generate waveform samples at this rate (Hz)

scale

Scale to apply to waveform envelope

fwhm

Full width half maximum of the pulse (s)

duration

Full duration of the pulse (s)

phase

Phase shift for entire waveform

detuning

Explicit detuning to bake into IQ values

class DragGaussian:

Creates a waveform with a DRAG-corrected Gaussian shape.

This is a Gaussian shape with an additional component proportional to the time derivative of the main Gaussian pulse.

See Motzoi F. et al., Phys. Rev. Lett., 103 (2009) 110501. for details.

def into_iq_value(self, /):

Get the a list of complex values from this waveform.

alpha

DRAG parameter - controls strength of the imaginary term

fwhm

Full width half maximum of the pulse (s)

sample_rate

Generate samples at this rate (Hz)

phase

Phase shift for entire waveform

detuning

Explicit detuning to bake into iq values

scale

Scale to apply to waveform envelope

t0

Center/offset for pulse centroid (s)

anh

Qubit anharmonicity - sets rate of evolution for the imaginary term (Hz)

duration

Full duration of the pulse (s)

class HermiteGaussian:

Creates a Hermite Gaussian waveform.

This extends the basic DRAG pulse by adding an additional imaginary term to the pulse envelope consisting of a Gaussian pulse modified by the second order Hermite polynomial.

Refer to "Effects of arbitrary laser or NMR pulse shapes on population inversion and coherence" Warren S. Warren. 81, (1984); doi: 10.1063/1.447644 for details.

def into_iq_value(self, /):

Get the a list of complex values from this waveform.

phase

Phase shift for entire waveform

sample_rate

Generate samples at this rate

anh

Qubit anharmonicity - sets rate of evolution for the imaginary term

alpha

DRAG parameter - controls strength of the imaginary term

duration

Full duration of the pulse

detuning

Explicit detuning to bake into iq values

fwhm

Full width half maximum of the pulse

t0

Center/offset for pulse centroid

second_order_hrm_coeff

Coefficient of the second order Hermite polynomial term.

scale

Scale to apply to waveform envelope

def apply_phase_and_detuning(iq_values, phase, detuning, sample_rate):

Modulate and phase shift waveform IQ data in place.