spinqick.experiments.measure_noise
Defines the MeasureNoise class used to perform general noise measurements with QICK.
Attributes
Classes
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.DotExperimentThis class holds functions that help the user characterize their system’s noise.
- Parameters:
soccfg – QickConfig object
soc – Qick object
voltage_source (spinqick.helper_functions.hardware_manager.VoltageSource) – Initialized DC voltage source object. This is used here for saving the DC voltage state each time data is saved.
- 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:
m_bias (float)
measure_buffer (float)
time_steps (int)
mode (Literal['sd_chop', 'transdc'])
num_avgs (int)
- Return type:
- 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:
- 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]