offsets, nsamp=nsamp) print "loaded waveforms in", (time.time() - start), "seconds" sweep_data = sweeps.do_prepared_sweep(ri, nchan_per_step=atonce, reads_per_step=1) orig_sweep_data = sweep_data meas_cfs = [] idxs = [] delays = [] for m in range(len(f0s)): fr, s21, errors = sweep_data.select_by_freq(f0s[m]) thiscf = f0s[m] res = fit_best_resonator( fr[1:-1], s21[1:-1], errors=errors[1:-1]) #Resonator(fr,s21,errors=errors) delay = res.delay delays.append(delay) s21 = s21 * np.exp(2j * np.pi * res.delay * fr) res = fit_best_resonator(fr, s21, errors=errors) fmin = fr[np.abs(s21).argmin()] print "s21 fmin", fmin, "original guess", thiscf, "this fit", res.f_0, "delay", delay, "resid delay", res.delay if use_fmin: meas_cfs.append(fmin) else: if abs(res.f_0 - thiscf) > 0.1: if abs(fmin - thiscf) > 0.1: print "using original guess" meas_cfs.append(thiscf) else:
print "setting attenuator to",attenlist[0] ri.set_dac_attenuator(attenlist[0]) f0binned = np.round(f0s*nsamp/512.0)*512.0/nsamp f0binned = f0binned*source_on_freq_scale measured_freqs = sweeps.prepare_sweep(ri,f0binned,offsets,nsamp=nsamp) print "loaded waveforms in", (time.time()-start),"seconds" sweep_data = sweeps.do_prepared_sweep(ri, nchan_per_step=atonce, reads_per_step=1) orig_sweep_data = sweep_data meas_cfs = [] idxs = [] delays = [] for m in range(len(f0s)): fr,s21,errors = sweep_data.select_by_freq(f0s[m]) thiscf = f0s[m]*source_on_freq_scale res = fit_best_resonator(fr[1:-1],s21[1:-1],errors=errors[1:-1]) #Resonator(fr,s21,errors=errors) delay = res.delay delays.append(delay) s21 = s21*np.exp(2j*np.pi*res.delay*fr) res = fit_best_resonator(fr,s21,errors=errors) fmin = fr[np.abs(s21).argmin()] print "s21 fmin", fmin, "original guess",thiscf,"this fit", res.f_0, "delay",delay,"resid delay",res.delay if use_fmin: meas_cfs.append(fmin) else: if abs(res.f_0 - thiscf) > max_fit_error: if abs(fmin - thiscf) > max_fit_error: print "using original guess" meas_cfs.append(thiscf) else: print "using fmin"
if source_state == 'on': mmw_source_modulation_freq = source_on() else: mmw_source_modulation_freq = source_off() df.log_hw_state(ri) sweep_data = sweeps.do_prepared_sweep(ri, nchan_per_step=f0s.size, reads_per_step=2) df.add_sweep(sweep_data) meas_cfs = [] idxs = [] for m in range(len(f0s)): fr, s21, errors = sweep_data.select_by_freq(f0s[m]) thiscf = f0s[m] s21 = s21 * np.exp(2j * np.pi * delay * fr) res = fit_best_resonator(fr, s21, errors=errors) # Resonator(fr,s21,errors=errors) fmin = fr[np.abs(s21).argmin()] print "s21 fmin", fmin, "original guess", thiscf, "this fit", res.f_0 if 'a' in res.result.params or use_fmin: #k != 0 or use_fmin: print "using fmin" meas_cfs.append(fmin) else: if abs(res.f_0 - thiscf) > max_fit_error: if abs(fmin - thiscf) > max_fit_error: print "using original guess" meas_cfs.append(thiscf) else: print "using fmin" meas_cfs.append(fmin) else: print "using this fit"
else: mmw_source_modulation_freq = source_off() df.log_hw_state(ri) sweep_data = sweeps.do_prepared_sweep(ri, nchan_per_step=f0s.size, reads_per_step=2) df.add_sweep(sweep_data) meas_cfs = [] idxs = [] for m in range(len(f0s)): fr, s21, errors = sweep_data.select_by_freq(f0s[m]) thiscf = f0s[m] s21 = s21 * np.exp(2j * np.pi * delay * fr) res = fit_best_resonator( fr, s21, errors=errors) # Resonator(fr,s21,errors=errors) fmin = fr[np.abs(s21).argmin()] print "s21 fmin", fmin, "original guess", thiscf, "this fit", res.f_0 if 'a' in res.result.params or use_fmin: #k != 0 or use_fmin: print "using fmin" meas_cfs.append(fmin) else: if abs(res.f_0 - thiscf) > max_fit_error: if abs(fmin - thiscf) > max_fit_error: print "using original guess" meas_cfs.append(thiscf) else: print "using fmin" meas_cfs.append(fmin) else: print "using this fit"