quil.waveforms

class BoxcarKernel:

A Boxcar waveform.

def into_iq_value(self, /):

Get the complex value this BoxcarKernel represents.

scale

Scale applied to the waveform envelope.

sample_count

Sample count, which must be positive.

phase

The phase, in cycles.

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.

pad_left

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

sample_rate

Generate wavform samples at this rate (Hz)

positive_polarity

Toggle for positive/negative polarity

detuning

Explicit detuning to bake into iq values

scale

Scale to apply to waveform envelope

risetime

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

pad_right

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

phase

Phase shift for entire waveform

duration

Full duration of the 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.

sample_rate

Generate waveform samples at this rate (Hz)

scale

Scale to apply to waveform envelope

phase

Phase shift for entire waveform

detuning

Explicit detuning to bake into IQ values

duration

Full duration of the pulse (s)

fwhm

Full width half maximum of the pulse (s)

t0

Center/offset for pulse centroid (s)

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.

sample_rate

Generate samples at this rate (Hz)

duration

Full duration of the pulse (s)

fwhm

Full width half maximum of the pulse (s)

phase

Phase shift for entire waveform

scale

Scale to apply to waveform envelope

anh

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

alpha

DRAG parameter - controls strength of the imaginary term

detuning

Explicit detuning to bake into iq values

t0

Center/offset for pulse centroid (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.

second_order_hrm_coeff

Coefficient of the second order Hermite polynomial term.

alpha

DRAG parameter - controls strength of the imaginary term

phase

Phase shift for entire waveform

scale

Scale to apply to waveform envelope

t0

Center/offset for pulse centroid

duration

Full duration of the pulse

detuning

Explicit detuning to bake into iq values

sample_rate

Generate samples at this rate

anh

Qubit anharmonicity - sets rate of evolution for the imaginary term

fwhm

Full width half maximum of the pulse

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

Modulate and phase shift waveform IQ data in place.