iqm.pulse.utils.fuse_iq_pulses

Contents

iqm.pulse.utils.fuse_iq_pulses#

iqm.pulse.utils.fuse_iq_pulses(iq_pulses)#

Fuse multiple IQPulses into one by concatenating the sampled waveforms.

Works by flushing IQPulse.phase_increment s to the front, updating the IQPulse.phase s, sampling the pulses, concatenating, normalizing the amplitudes, and putting the result into a new IQPulse instruction with a phase_increment that is a sum of the individual phase_increment s.

Additionally, to conserve waveform memory on the AWGs, we normalize the waveform phase by setting IQPulse.phase of the fused pulse to the flushed phase of the first pulse.

Parameters:

iq_pulses (Iterable[IQPulse]) – IQPulse instructions to fuse.

Returns:

Fused IQPulse that behaves indentically to the sequence iq_pulses on an AWG.

Return type:

IQPulse