# Acquire
npd = acquire.new_npy_directory(suffix=suffix)
tic = time.time()
try:
    tools.set_and_attempt_external_phase_lock(ri,
                                              f_lo=lo_MHz,
                                              f_lo_spacing=lo_round_to_MHz)
    ri.set_dac_attenuator(dac_attenuation)
    ri.set_tone_bins(bins=np.array([center_integer]),
                     nsamp=2**tone_sample_exponent)
    ri.fft_bins = np.atleast_2d(np.array([n_filterbank]))
    ri.select_bank(0)
    ri.select_fft_bins(np.array([0]))
    time.sleep(wait)
    tools.optimize_fft_gain(ri, fraction_of_maximum=fraction_of_maximum)
    for tone_integer in tone_integers:
        ri.set_tone_bins(bins=np.array([tone_integer]),
                         nsamp=2**tone_sample_exponent)
        ri.fft_bins = np.atleast_2d(np.array([n_filterbank]))
        ri.select_bank(0)
        ri.select_fft_bins(np.array([0]))
        time.sleep(wait)
        npd.write(
            ri.get_measurement(num_seconds=stream_length_seconds,
                               demod=False,
                               state=hw.state()))
        npd.write(ri.get_adc_measurement())
finally:
    npd.close()
    print("Wrote {}".format(npd.root_path))
suffix = 'r2h11nc'
attenuation = 10
f_lo_MHz = 3000
df_lo_MHz = 10
num_tones = 4
f_baseband_MHz = np.linspace(10, 200, num_tones)
tone_sample_exponent = 15
length_seconds = 10

# Hardware
conditioner = analog.HeterodyneMarkI()
hw = hardware.Hardware(conditioner)
ri = hardware_tools.r2h11nc_with_mk1(initialize=True, use_config=False)
#ri.adc_valon.set_ref_select(0)
#ri.lo_valon.set_ref_select(1)
ri.set_dac_attenuator(attenuation)
ri.set_lo(f_lo_MHz, chan_spacing=df_lo_MHz)
ri.set_tone_baseband_freqs(f_baseband_MHz, nsamp=2 ** tone_sample_exponent)

# Run
npd = acquire.new_npy_directory(suffix=suffix)
tic = time.time()
try:
    tools.optimize_fft_gain(ri)
    npd.write(ri.get_measurement(num_seconds=length_seconds, state=hw.state()))
    npd.write(ri.get_adc_measurement())
finally:
    npd.close()
    print("Wrote {}".format(npd.root_path))
    print("Elapsed time {:.0f} minutes.".format((time.time() - tic) / 60))
# Acquire
npd = acquire.new_npy_directory(suffix=suffix)
tic = time.time()
try:
    tools.set_and_attempt_external_phase_lock(ri, f_lo=lo_MHz, f_lo_spacing=lo_round_to_MHz)
    ri.set_lo(lomhz=lo_MHz, chan_spacing=lo_round_to_MHz)
    assert np.all(ri.adc_valon.get_phase_locks())
    assert np.all(ri.lo_valon.get_phase_locks())
    ri.set_dac_attenuator(dac_attenuation)
    ri.set_tone_bins(bins=np.array([center_integer]), nsamp=2 ** tone_sample_exponent)
    ri.fft_bins = np.atleast_2d(np.array([n_filterbank]))
    ri.select_bank(0)
    ri.select_fft_bins(np.array([0]))
    time.sleep(wait)
    tools.optimize_fft_gain(ri, fraction_of_maximum=0.5)
    time.sleep(wait)
    ri.iq_delay, _ = tools.find_best_iq_delay_adc(ri=ri)
    for tone_integer in tone_integers:
        ri.set_tone_bins(bins=np.array([tone_integer]), nsamp=2 ** tone_sample_exponent)
        ri.fft_bins = np.atleast_2d(np.array([n_filterbank]))
        ri.select_bank(0)
        ri.select_fft_bins(np.array([0]))
        time.sleep(wait)
        npd.write(ri.get_measurement(num_seconds=stream_length_seconds, demod=False, state=hw.state()))
        npd.write(ri.get_adc_measurement())
finally:
    npd.close()
    print("Wrote {}".format(npd.root_path))
    print("Elapsed time {:.0f} minutes.".format((time.time() - tic) / 60))
Exemple #4
0
# Acquire
npd = acquire.new_npy_directory(suffix=suffix)
tic = time.time()
try:
    #tools.set_and_attempt_external_phase_lock(ri, f_lo=lo_MHz, f_lo_resolution=lo_round_to_MHz)
    ri.set_lo(lomhz=lo_MHz, chan_spacing=lo_round_to_MHz)
    assert np.all(ri.adc_valon.get_phase_locks())
    assert np.all(ri.lo_valon.get_phase_locks())
    ri.set_dac_attenuator(dac_attenuation)
    ri.set_tone_bins(bins=np.array([center_integer]),
                     nsamp=2**tone_sample_exponent)
    ri.fft_bins = np.atleast_2d(np.array([n_filterbank]))
    ri.select_bank(0)
    ri.select_fft_bins(np.array([0]))
    time.sleep(wait)
    tools.optimize_fft_gain(ri)
    time.sleep(wait)
    ri.iq_delay, _ = tools.find_best_iq_delay_adc(ri=ri)
    for tone_integer in tone_integers:
        ri.set_tone_bins(bins=np.array([tone_integer]),
                         nsamp=2**tone_sample_exponent)
        ri.fft_bins = np.atleast_2d(np.array([n_filterbank]))
        ri.select_bank(0)
        ri.select_fft_bins(np.array([0]))
        time.sleep(wait)
        npd.write(
            ri.get_measurement(num_seconds=stream_length_seconds,
                               demod=False,
                               state=hw.state()))
        npd.write(ri.get_adc_measurement())
finally: