Slepian#
- class iqm.pulse.playlist.waveforms.Slepian(n_samples, full_width, lambda_1, lambda_2, frequency_initial_normalized, frequency_to_minimize_normalized, coupling_strength_normalized, center_offset=0, squid_asymmetry=0)#
Bases:
Waveform
Slepian waveform, which minimizes non-adiabatic errors during a gate.
It is assumed that the user has done the minimization in a prior step, such that the optimal \(\lambda_n\) for a specific length \(\tau_\text{pulse}\) (in the accelerated frame) is known. This class then reconstructs the waveform with the following steps:
Calculate \(\theta(\tau)\) (Slepian in the accelerated frame and in \(\theta\) space)
Calculate \(t(\tau)\) (mapping time in the accelerated frame to time in the lab frame)
Interpolate \(\theta(t)\) (Slepian in the lab frame and in \(\theta\) space)
Calculate \(f(t)\) (Slepian in the lab frame and in frequency space)
Calculate \(V(t)\) (Slepian in the lab frame and in voltage space)
Since the waveform is normalized, any voltage pre-factor should go into the pulse amplitude.
The user is advised to look up [1] for further details, since the derivation is mathematically heavy.
- Parameters:
full_width (float) – Duration of the support of the waveform.
lambda_1 (float) – First coefficient of Slepian waveform.
lambda_2 (float) – Second coefficient of Slepian waveform.
frequency_initial_normalized (float) – Initial frequency of the pulsed component (usually coupler), normalized by the maximum frequency of the pulsed component.
frequency_to_minimize_normalized (float) – Frequency of the static component (usually qubit) which to minimize the leakage from/to, normalized by the maximum frequency of the pulsed component.
coupling_strength_normalized (float) – Coupling strength between pulsed component and static component, normalized by the maximum frequency of the pulsed component.
center_offset (float) – The waveform is centered at this offset from the midpoint of the sampling window.
squid_asymmetry (float) – Squid asymmetry.
n_samples (int) –
Module:
iqm.pulse.playlist.waveforms
Attributes
center_offset
squid_asymmetry
full_width
lambda_1
lambda_2
frequency_initial_normalized
frequency_to_minimize_normalized
coupling_strength_normalized
n_samples
Requested number of samples for the waveform.
Methods
Mapping from waveform attributes to the units of their calibration data, unless that unit is second.
- static non_timelike_attributes()#
Mapping from waveform attributes to the units of their calibration data, unless that unit is second.
Used to construct the parameters for the calibration data required by the waveform. By default all the waveform attributes are “timelike” (the unit for their calibration data is s). However, some waveform attributes can be dimensionless, e.g. the relative amplitudes in a sum of consisting of multiple terms, or frequency-like (calibration data has the unit ‘Hz’). If a Waveform subclass has non-timelike attributes, it needs to redefine this method.
When the Waveform is constructed, all timelike calibration data is converted to units of the sampling window duration, and all frequency-like calibration data into units of inverse sampling window duration.
- _sample(sample_coords)#
Actually samples the waveform.
- _sample_normalized_slepian(coords)#
Calculate the samples of the actual Slepian waveform.
- _t_tau(tau, num_samples=129)#
Convert time in the accelerated frame to the lab frame (real time).
Since the conversion is defined via an integral, finding an analytical solution was not possible. Therefore, we integrate the expression numerically with
scipy.integrate.romb()
.
- _theta_tau(tau)#
Parametrization of the Slepian waveform in the accelerated frame.
The Slepian waveform is parametrized using Fourier base functions, where we only take the cosine terms into account ([1] has shown that this is a reasonable assumption). Here, \(\lambda_n\) is the amplitude of the \(n\)-th term of the Fourier base function. It is usually sufficient to take only up to second order terms into account, i.e. only \(\lambda_1\) and \(\lambda_2\) are non-zero.