spinqick.experiments.ld_single_qubit

Defines the LDSingleQubit class, which contains methods for basic single- qubit.

Attributes

logger

Classes

LDSingleQubit

Contains methods that wrap the QICK code classes for single LD qubit experiments. These

Module Contents

spinqick.experiments.ld_single_qubit.logger
class spinqick.experiments.ld_single_qubit.LDSingleQubit(soccfg, soc, voltage_source, **kwargs)

Bases: spinqick.core.dot_experiment.DotExperiment

Contains methods that wrap the QICK code classes for single LD qubit experiments. These involve a microwave drive. These scripts are set up to generate a trigger which goes high during the RF pulse, so if the user is mixing their signal with an LO they can trigger an RF switch. Initialize with information about your rfsoc and your experimental setup.

:param soccfg : QickConfig object :param soc : initialized QickSoc object :param voltage_source: Initialized DC voltage source object. This is used here for saving the DC

voltage state each time data is saved.

Parameters:

voltage_source (spinqick.helper_functions.hardware_manager.VoltageSource)

soccfg
soc
vdc
idle_cell_scan_with_rf(p_gates, p_range, rf_gain, rf_freq, rf_length, point_avgs=10, full_avgs=1)

Performs a 2D sweep of idle coordinate with RF on. RF is turned on a the idle point in the spam sequence.

Parameters:
  • p_gates (Tuple[spinqick.helper_functions.spinqick_enums.GateNames, spinqick.helper_functions.spinqick_enums.GateNames]) – specify the two plunger gates being used

  • p_range (Tuple[Tuple[float, float, int], Tuple[float, float, int]]) – specify the range of each axis sweep. ((px_start, px_stop, px_points), (py_start, py_stop, py_points))

  • add_rf – add an RF pulse at the idle point

  • rf_freq (float) – frequency of RF pulse

  • rf_gain (int) – gain of RF pulse

  • rf_length (float) – length (in microseconds) of RF pulse

  • point_avgs (int)

  • full_avgs (int)

Return type:

spinqick.core.spinqick_data.PsbData

rf_freq_scan(rf_gain, start_freq, stop_freq, num_pts, rf_length, point_avgs=10, full_avgs=10)

Play a frequency sweep.

Parameters:
  • rf_gain (float) – Gain of RF tone in DAC units

  • start_freq (float) – Lowest RF frequency in MHz

  • stop_freq (float) – Max RF frequency in MHz

  • num_pts (int) – Number of points in the frequency sweep

  • rf_length (float) – Pulse length of RF drive in microseconds

  • point_avgs (int) – Number of times to repeat each measurement and average

  • full_avgs (int) – Number of times to run sweep and average full experiment

Return type:

spinqick.core.spinqick_data.PsbData

rabi_chevron(rf_gain, freq_range, time_range, point_avgs=10, full_avgs=10)

Performs a 2D sweep of RF pulse frequency and pulse length.

Parameters:
  • rf_gain (int) – RF pulse amplitude in DAC units

  • freq_range (Tuple[float, float, int]) – (start frequency (MHz), stop frequency (MHz), number of steps)

  • time_range (Tuple[float, float, int]) – (start time (us), stop time (us), number of steps)

  • point_avgs (int)

  • full_avgs (int)

Return type:

spinqick.core.spinqick_data.PsbData

time_rabi(rf_gain, time_range, point_avgs=10, full_avgs=10)

Performs a time rabi experiment, sweeping the length of the RF pulse time.

Parameters:
  • rf_gain (int) – RF gain in DAC units :time_range: (time_start, time_stop, num_points) in microseconds

  • time_range (Tuple[float, float, int])

  • point_avgs (int)

  • full_avgs (int)

Return type:

spinqick.core.spinqick_data.PsbData

amplitude_rabi(rf_time, gain_range, point_avgs=10, full_avgs=1)

Performs an experiment which sweeps RF pulse gain, keeping RF pulse length constant.

Parameters:
  • rf_time (float) – pulse length in microseconds

  • gain_range (Tuple[float, float, int]) – gain sweep parameters in dac units; (start_gain, stop_gain, number of points)

  • point_avgs (int)

  • full_avgs (int)

Return type:

spinqick.core.spinqick_data.PsbData

allxy(qubit, point_avgs=10, full_avgs=10)

Perform an all x-y experiment. This experiment consists of a series of manipulations to demonstrate x-y control.

Parameters:
  • qubit (str) – specify qubit config label

  • point_avgs (int) – averages per measurement point

  • full_averages – averages of full experiment

  • full_avgs (int)

Return type:

spinqick.core.spinqick_data.PsbData

phase_control(qubit, phase_range, point_avgs=10, full_avgs=10)

Performs two pi/2 pulses, incrementing the phase offset of the second pulse. If you are driving x-y rotations you will see a periodic output. This is a simple way to demonstrate that you have x-y control of your qubit using RF drive phase.

Parameters:
  • qubit (str) – specify qubit config label

  • phase_range (Tuple[float, float, int]) – (start_phase, end_phase, number of points)

  • point_avgs (int)

  • full_avgs (int)

Return type:

spinqick.core.spinqick_data.PsbData

ramsey_experiment(qubit, time_range, point_avgs=10, full_avgs=10)

Perform a 1D Ramsey experiment, by sweeping time delay between two pi/2 pulses.

Parameters:
  • qubit (str) – specify qubit config label

  • time_range (Tuple[float, float, int]) – (start, end, number of points) in microseconds

  • point_avgs (int)

  • full_avgs (int)

Return type:

spinqick.core.spinqick_data.PsbData

ramsey_2d(qubit, time_range, freq_range, full_avgs=10, point_avgs=10)

Performs a series of ramsey experiments, sweeping both delay time between two pulses and pulse frequency.

Parameters:
  • qubit (str) – specify qubit config label

  • time_range (Tuple[float, float, int]) – (time_start, time_stop, points) in microseconds

  • freq_range (Tuple[float, float, int]) – (freq_start, freq_stop, points) in MHz

  • full_avgs (int)

  • point_avgs (int)

Return type:

spinqick.core.spinqick_data.PsbData

spin_echo(qubit, n_echoes, time_range, full_avgs=10, point_avgs=10)

Performs a hahn echo or CPMG experiment.

Parameters:
  • n_echoes (int) – Number of pi pulses to insert. n=1 for Hahn echo. :time_range: (time_start, time_stop, points) in microseconds

  • qubit (str)

  • time_range (Tuple[float, float, int])

  • full_avgs (int)

  • point_avgs (int)

Return type:

spinqick.core.spinqick_data.PsbData