spinqick.experiments.measure_noise

Defines the MeasureNoise class used to perform general noise measurements with QICK.

Attributes

logger

Classes

MeasureNoise

This class holds functions that help the user characterize their system's noise.

Module Contents

spinqick.experiments.measure_noise.logger
class spinqick.experiments.measure_noise.MeasureNoise(soccfg, soc, voltage_source, **kwargs)

Bases: spinqick.core.dot_experiment.DotExperiment

This class holds functions that help the user characterize their system’s noise.

Parameters:
soccfg
soc
vdc
readout_noise_at_bias(m_dot, m_bias, measure_buffer, time_steps=1000, mode='sd_chop', num_avgs=1)

Measure noise spectrum at a specific bias configuration of the device.

Parameters:
Return type:

spinqick.core.spinqick_data.SpinqickData

dcs_stability(m_dot, m_range, measure_buffer, time_steps=1000, freq_cutoff=0.1, wait_time=None, frequency_fit=True, mode='sd_chop')

Track DCS peak for longer timescale (minutes) and look for drift and noise. Right now this is coded to work with only one adc readout.

Parameters:
  • m_dot (spinqick.helper_functions.spinqick_enums.GateNames) – M dot to track

  • m_range (Tuple[float, float, int]) – List of start voltage, stop voltage and number of points. Voltages are relative to the current setpoint

  • time_steps (int) – number of times to run the sweep

  • measure_buffer (float) – time in microseconds between when the sleeperdac steps in voltage and the QICK starts a DCS measurement.

  • wait_time (float | None) – delay time in seconds between m-gate measurements, to measure longer timescale drift

  • frequency_fit (bool) – if true, fits frequency spectrum

  • freq_cutoff (float) – fit frequencies below this value to a power law

  • mode (Literal['sd_chop', 'transdc'])

Return type:

spinqick.core.spinqick_data.CompositeSpinqickData

readout_noise_raw(readout_time, n_averages=2, add_tone=False)

Grab raw time traces from one ADC and fft them. Using DDR4 buffer we are able to get up to ~3 seconds of raw data.

Parameters:
  • readout_time (float) – time (in seconds) to collect data on ddr4 buffer

  • n_averages (int) – number of times to repeat data capture, averaging the psd every time

  • add_tone (bool) – play the readout tone while capturing data

Returns:

-frequency of fft points -averaged amplitude spectral density

Return type:

tuple[numpy.ndarray, numpy.ndarray]

readout_noise_demodulate(readout_time, n_averages=10, continuous_tone=False)

Grab raw time traces from one ADC and fft them. Play a tone and turn on demodulation. Using DDR4 buffer we are able to capture up to ~3 seconds of raw data.

Parameters:
  • readout_time (float) – time in seconds to collect data on ddr4 buffer

  • n_averages (int) – number of times to repeat data capture, averaging the psd every time

  • continuous_tone (bool) – play the readout tone constantly

Returns:

-frequency of fft points -averaged amplitude spectral density

Return type:

tuple[numpy.ndarray, numpy.ndarray]