HdDragI

HdDragI#

class iqm.pulse.playlist.hd_drag.HdDragI(n_samples, full_width, coefficients, suppressed_frequencies, compute_coefs_from_frequencies, center_offset=0)#

Bases: HdDrag

I-component of the higher derivative (HD) drag pulse.

The I-component is defined according to Eq. (B1) of [1] ,

\[I(t) = \sum_{n=0}^{K} \beta_{2n} g^{(2n)}(t),\]

where \(\{\beta_{2n}\}_{n=0}^K\) are the coefficients of the derivative terms, \(K\) is the number of suppressed frequencies, and \(g(t)\) is the basis envelope given by

\[g(t) = \sum_{k=1}^K d_k (1 - \cos(2 \pi k t/t_p + k\pi)),\]

where \(d_k\) are pre-computed to ensure continuous derivatives up to order \(2K + 1\), \(t_p\) denotes the pulse duration, and the pulse is defined across \(t \in (-t_p/2, t_p/2)\).

The sampled pulse is always normalized to have a maximum value slightly below 1.0.

Module: iqm.pulse.playlist.hd_drag

Attributes

full_width

coefficients

suppressed_frequencies

compute_coefs_from_frequencies

n_samples

Requested number of samples for the waveform.

Methods

Parameters:
  • n_samples (int) –

  • full_width (float) –

  • coefficients (ndarray) –

  • suppressed_frequencies (ndarray) –

  • compute_coefs_from_frequencies (bool) –

  • center_offset (float) –

_sample(sample_coords)#

Actually samples the waveform.

Parameters:

sample_coords (ndarray) – coordinates of the samples to be returned

Returns:

array of samples (same shape as sample_coords, dtype == float)

Return type:

ndarray