unint_dot_add

NoiseGenerator.unint_dot_add(data_map, magnitude, spacing, width, offset, gate_data_matrix=None)

Add a series of transitions with quantum dot lineshapes to data.

Specifically, for each pixel with coordinates \(\vec{x}\), adds the following:

\(\sum_i\text{tanh}\frac{1}{W}\big[\frac{\vec{x}\cdot\vec{S}}{|\vec{S}|} - (i + \alpha_\text{offset})*|\vec{S}|\big]\),

where \(W\) is the width of the dot peaks , and \(\vec{S}\) is the spacing vector.

Parameters:
  • data_map (ndarray[float]) – The data to add noise to.

  • magnitude (float | ndarray[float]) – The strength of the unintended dot effects. If an array is passed, it should have the same shape as data_map.

  • spacing (ndarray[float]) – A vector (with length equal to the number of gates) normal to the unitended dot transition, with magnitude equal to the spacing between transitions.

  • width (float) – The width in pixels of the unitended dot peaks.

  • offset (float) – A value between 0 and 1 which defines by how much each unintended dot peak should be offset, relative to the norm of unint_dot_spacing.

  • gate_data_matrix (ndarray[float] | None) – A matrix with shape (n_gates, len(data_map.shape)) that indicates how each of the gates changes as one of the axes of data_map changes. By default, an identity matrix will be used – this assumes len(spacing) == len(data_map.shape).

Returns:

data_map with unintended dot effects added.

Return type:

ndarray[float]