def fine_sweep(ri,center_freqs, sweep_width = 0.1,npoints =128,nsamp=2**20): offsets = np.linspace(-sweep_width/2.0, sweep_width/2.0, npoints) swp = data_block.SweepData() def callback(block): swp.add_block(block) return False for k,offset in enumerate(offsets): print "subsweep",k,"of",npoints sweeps.coarse_sweep(ri, center_freqs + offset, nsamp=nsamp, nchan_per_step=4, reads_per_step=2, callback=callback,sweep_id=k) return swp
def fine_sweep(ri, center_freqs, sweep_width=0.1, npoints=128, nsamp=2**20): offsets = np.linspace(-sweep_width / 2.0, sweep_width / 2.0, npoints) swp = data_block.SweepData() def callback(block): swp.add_block(block) return False for k, offset in enumerate(offsets): print "subsweep", k, "of", npoints sweeps.coarse_sweep(ri, center_freqs + offset, nsamp=nsamp, nchan_per_step=4, reads_per_step=2, callback=callback, sweep_id=k) return swp
for k in range(len(f0s) / atonce): cfs = f0s[k::len(f0s) / atonce] offsets = np.linspace(-5e3, 5e3, 25) offsets = np.concatenate(([-40e3, -30e3, -20e3, -10e3 ], offsets, [10e3, 20e3, 30e3, 40e3])) / 1e6 offsets = offsets sweep_data = data_block.SweepData(sweep_id=k) def callback(block): sweep_data.add_block(block) for offs in offsets: print cfs + offs sweeps.coarse_sweep(ri, freqs=cfs + offs, nsamp=2**21, nchan_per_step=atonce, reads_per_step=8, callback=callback) df.add_sweep(sweep_data) # fr,s21 = sweep_data.select_index(0) # res = Resonator(fr,s21) # fmin = fr[np.abs(s21).argmin()] # print "s21 fmin", fmin, "fit fmin",f0s[k],"thisfit", res.f_0 ri.set_tone_freqs(cfs, nsamp=2**21) ri._sync() time.sleep(0.2) tsg = None dmod, addr = ri.get_data(2048 * 16, demod=True) chids = ri.fpga_fft_readout_indexes + 1
#f0s = np.array([ 77.923828, 79.814453, 81.123, 82.548828 ]) # , 111.611328, 117.845703, 143.736328, 152.423828]) #f0s = f0s*(1-0.001) atonce = 4 for k in range(len(f0s)/atonce): cfs = f0s[k::len(f0s)/atonce] offsets = np.linspace(-5e3,5e3,25) offsets = np.concatenate(([-40e3,-30e3,-20e3,-10e3],offsets,[10e3,20e3,30e3,40e3]))/1e6 offsets = offsets sweep_data = data_block.SweepData(sweep_id=k) def callback(block): sweep_data.add_block(block) for offs in offsets: print cfs+offs sweeps.coarse_sweep(ri, freqs=cfs+offs, nsamp=2**21, nchan_per_step=atonce, reads_per_step=8, callback=callback) df.add_sweep(sweep_data) # fr,s21 = sweep_data.select_index(0) # res = Resonator(fr,s21) # fmin = fr[np.abs(s21).argmin()] # print "s21 fmin", fmin, "fit fmin",f0s[k],"thisfit", res.f_0 ri.set_tone_freqs(cfs,nsamp=2**21) ri._sync() time.sleep(0.2) tsg = None dmod,addr = ri.get_data(2048*16,demod=True) chids = ri.fpga_fft_readout_indexes+1 tones = ri.tone_bins[ri.readout_selection] nsamp = ri.tone_nsamp