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
Exemple #3
0
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