Skip to content

Darrengll/Measurement-automation

 
 

Repository files navigation

Measurement automation

CircleCI codecov

This is the system designed to perform various experiments with superconducting quantum circuits. It was developed in response to the increasing number and diversity of tasks and provides a common framework for all of them.

It is fully open-source and is based on pyvisa, matplotlib, scipy, ipython (jupyter) and some other open-source packages (i.e. resonator tools by S. Probst)

Features:

  • Percievable and scalable object-oriented code (with encapsulation, polymorphism and inheritance)
  • Distinct self-sufficient classes for each of the primitive experiments and their results with common interface
  • Eye-pleasing visualization using matplotlib
  • Real-time plotting and data collection in separate threads
  • Image fitting modules to extract parameters of flux-tunable qubits from single-tone and two-tone heatmap spectra
  • Real-time robust simultaneous real-imag curve fitting in time-resolved experiments
  • Human-friendly storage and loading of raw data and measurement result objects (with pickle, high-res .png and .pdf plots)
  • No GUI

The key goal of this project is to develop measurement protocols and fully automate processes to reduce overall human participation in experiments

Gallery

Here some of the dispersive measurement results are presented

Single-tone spectroscopy

STS = SingleToneSpectroscopy(measurement_name, sample_name, vna = ['vna1'], src=[current_src])
vna_parameters = {"bandwidth":1000, "freq_limits":(8e9, 9e9), "nop":101, "power":-15, "averages":1}
STS.set_fixed_parameters(vna = [vna_parameters])
currents = linspace(-6e-3, 8e-3, 101)
STS.set_swept_parameters({'Current': (STS._src.set_current, currents)})
sts_result = STS.launch()  # live plotting
sts_result.visualize();  # static plotting
sts_result.save()

8-9ghz-random-anticrossings-shifted-w-coil

Various anticrossings in a multimode sample

Two-tone spectroscopy

TTS = FluxTwoToneSpectroscopy("%s-two-tone"%qubit_name, sample_name, vna ="vna4", 
                              mw_src="psg2",  current_src="yok6")
vna_parameters = {"bandwidth":100, "freq_limits":res_limits, "nop":10, "power":-10, "averages":1}
mw_src_parameters = {"power":0}
mw_src_frequencies = linspace(4.5e9, 5.8e9, 101)
currents = linspace(-0.5e-5, 1.5e-5, 101) # comment out to use fluxes from STS
TTS.set_fixed_parameters(vna = [vna_parameters], mw_src = [mw_src_parameters], adaptive=True)
TTS.set_swept_parameters(mw_src_frequencies, current_values = currents)
tts_result = TTS.launch()  # live plotting
tts_result.visualize();
tts_result.save()

default

Two coupled transmons

Time-resolved experiments

awg = Tektronix_AWG5014("TCPIP::192.168.137.7::INSTR")
ro_awg = IQAWG(AWGChannel(awg, 3), AWGChannel(awg, 4))
q_awg = IQAWG(AWGChannel(awg, 1), AWGChannel(awg, 2))
DR = DispersiveRamsey("%s-ramsey"%qubit_name, sample_name, vna=["vna4"], 
                      ro_awg=[ro_awg], q_awg=[q_awg], q_lo=['psg2'])
vna_parameters = {"_res_find_nop":401, "bandwidth":10, "freq_limits":res_limits, 
                  "nop":10, "averages":1}
ramsey_delays = linspace(0, 5000, 301)
exc_frequency = q_freq - 5e6
pulse_sequence_parameters = {"awg_trigger_reaction_delay":0, "readout_duration":5000, 
                             "repetition_period":15000, "half_pi_pulse_duration":pi_pulse_duration/2}
ro_awg_params =  {"calibration":ro_cal}
q_awg_params = {"calibration":q_cal}
DR.set_fixed_parameters([vna_parameters], [ro_awg_params], [q_awg_params], 
                        exc_frequency, pulse_sequence_parameters)
DR.set_swept_parameters(ramsey_delays)
dr_result = DR.launch()  # live plotting and fitting
dr_result.visualize();
dr_result.save()

Relaxation and dephasing

tomo_arb_state pdf

Quantum state tomography (experiment and LSQ fit) for the preparation sequence +Y/4, +X/3

Q_Chain

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 74.6%
  • Python 25.4%