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 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.

detuning

Explicit detuning to bake into iq values

anh

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

t0

Center/offset for pulse centroid (s)

sample_rate

Generate samples at this rate (Hz)

fwhm

Full width half maximum of the pulse (s)

phase

Phase shift for entire waveform

duration

Full duration of the pulse (s)

scale

Scale to apply to waveform envelope

alpha

DRAG parameter - controls strength of the imaginary term

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.

phase

Phase shift for entire waveform

positive_polarity

Toggle for positive/negative polarity

risetime

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

sample_rate

Generate wavform samples at this rate (Hz)

scale

Scale to apply to waveform envelope

pad_left

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

detuning

Explicit detuning to bake into iq values

duration

Full duration of the pulse (s)

pad_right

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

class Gaussian:

Creates a waveform with a Gaussian shape.

def into_iq_value(self, /):

Get the a list of complex values from this waveform.

duration

Full duration of the pulse (s)

t0

Center/offset for pulse centroid (s)

sample_rate

Generate waveform samples at this rate (Hz)

fwhm

Full width half maximum of the pulse (s)

phase

Phase shift for entire waveform

detuning

Explicit detuning to bake into IQ values

scale

Scale to apply to waveform envelope

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.

second_order_hrm_coeff

Coefficient of the second order Hermite polynomial term.

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

t0

Center/offset for pulse centroid

duration

Full duration of the pulse

fwhm

Full width half maximum of the pulse

scale

Scale to apply to waveform envelope

phase

Phase shift for entire waveform

detuning

Explicit detuning to bake into iq values

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

Modulate and phase shift waveform IQ data in place.