Single Qubit Characterization Sequences¶
Simple spectroscopy and coherence experiments on a single qubit.
Initial setup¶
from QGL import *
See Auspex example notebooks on how to configure a channel library.
For the examples in this notebook, we will the channel library generated by running ex1_QGL_basics.ipynb
in this same directory.
cl = ChannelLibrary("example")
q1 was already defined in the example channel library, and we load it here
q = cl["q1"]
Keep in mind that recreating q1 at this stage would give a warning, and try to update the existing qubit to reflect the newly requested parameters: i.e.
q = cl.new_qubit("q1")
Sequences¶
Pulsed spectroscopy sequence¶
A single sequence with a long saturating pulse to find qubit transitions. The specOn
option turns the saturation pulse on/off as this sequence is also useful with just a readout pulse for cavity spectroscopy.
plot_pulse_files(PulsedSpec(q, specOn=True)) #with a Pi/saturation pulse if specOn = True
Rabi Nutation sequences¶
For spectroscopy or calibration purposes we can perform a variable nutation angle experiment by varying either the amplitude or width of the excitation pulse.
plot_pulse_files(RabiAmp(q, np.linspace(0,1,101)))
plot_pulse_files(RabiWidth(q, np.arange(40e-9, 1e-6, 10e-9)))
plot_pulse_files(InversionRecovery(q,np.arange(100e-9,10e-6,100e-9), calRepeats=2))
T$_2$¶
T$_2^*$ is usually characterized with a 90-delay-90 experiment where as the Hahn echo removes low frequency noise and that causes incoherent loss and recovers something closer to the true T$_2$. The delay parameter is the pulse spacing and so the total effective delay in the Hahn echo will be 2 times this plus the 180 pulse length.
plot_pulse_files(Ramsey(q, np.arange(100e-9,10e-6,100e-9)))
plot_pulse_files(HahnEcho(q, np.arange(100e-9,10e-6,100e-9)))