def make_sample(srs_num, signal_freq, sample_rate, nsamples, outfbase, store_int, v_pp): """ Record a signal and save it to disk. """ print 'Setting SRS', srs_num, print 'to output at', signal_freq/1e6, 'MHz.' DFEC.set_srs(srs_num, freq=signal_freq) time.sleep(5) # The generator has some delay. # record voltage samples. print 'Sampling...' samples = DFEC.sampler(nsamples, sample_rate, dual=False, integer=store_int) # Save an npz file containing the data and a header filename = outfbase + '.npz' print 'Recording', nsamples, 'samples to', filename + '.' metadata = np.array([ ('SAMPRATE', sample_rate) , ('SIGFREQ', signal_freq) , ('VOLTPP', v_pp) ], dtype=object) np.savez(filename, metadata, samples)
def equal_frequency(): f_signal = 10e3 f_sample = 10e3 yes_array = ["y", "Y"] DFEC.set_srs(1, freq=f_signal, vpp=1.0) go = raw_input("Check that LO 1 is outputting f=%s Hz\n" % f_signal) if go in yes_array: data = DFEC.sampler(nSamp=256, freqSamp=f_sample) np.savez("../data/1_1_2/f_10000Hz.npz", data)
def slow_sample_rate(): f_signal = 10e6 f_sample = 7e3 yes_array = ["y", "Y"] DFEC.set_srs(1, freq=f_signal, vpp=1.0) go = raw_input("Check that LO 1 is outputting f=%s Hz\n" % f_signal) if go in yes_array: data = DFEC.sampler(nSamp=256, freqSamp=f_sample) np.savez("../data/1_1_2/fast_signal.npz", data)
def make_sample(srs_num, signal_freq, sample_rate, nsamples, outfbase, store_int, v_pp): """ Record a signal and save it to disk. """ print 'Setting SRS', srs_num, print 'to output at', signal_freq / 1e6, 'MHz.' DFEC.set_srs(srs_num, freq=signal_freq) time.sleep(5) # The generator has some delay. # record voltage samples. print 'Sampling...' samples = DFEC.sampler(nsamples, sample_rate, dual=False, integer=store_int) # Save an npz file containing the data and a header filename = outfbase + '.npz' print 'Recording', nsamples, 'samples to', filename + '.' metadata = np.array([('SAMPRATE', sample_rate), ('SIGFREQ', signal_freq), ('VOLTPP', v_pp)], dtype=object) np.savez(filename, metadata, samples)
# disable DFEC for testing def empty_func(*args, **kwargs): print args, kwargs # DFEC.set_srs = empty_func # DFEC.sampler = empty_func # provide arguments on command line # $ python 1_1_1.py 256 1e3 N, f_sample = sys.argv[1:] N = int(N) f_sample = float(f_sample) yes_array = ["y", "Y"] for x in np.arange(0.1, 1.0, 0.1): f_signal = x * f_sample go = raw_input("Safe to set srs?\n") if go not in yes_array: break DFEC.set_srs(1, freq=f_signal, vpp=1.0) go = raw_input("Check that LO 1 is outputting f=%s Hz\n" % f_signal) if go not in yes_array: break data = DFEC.sampler(nSamp=N, freqSamp=f_sample) array_savefile = "../data/1_1_1/fsig_%.1f.npz" % f_signal np.savez(array_savefile, data) print "Saved %s" % array_savefile
import DFEC import pylab as py import numpy as np sampling = 1e7 N = 256 for i in np.arange(0.1,1.0,.1): freq_signal = sampling*i DFEC.set_srs(1,freq=freq_signal,dbm=0,pha=180) DFEC.set_srs(2,freq=freq_signal,dbm=0,pha=180) data = DFEC.sampler(N,sampling) filename = "%svsample_10MHz.npz" % i np.savez(filename,data,sampling,N) raw_input("Press enter to continue sampling...")
import DFEC import pylab as plt import numpy as np sample = 100000. N=256 x=np.arange(((10**6)*(1/sample)),((10**6)*((N+1)/sample)),((10**6)*(1/sample))) #DFEC.set_srs(1,.2*sample,2) y=DFEC.sampler(N,sample) plt.subplot(121) plt.plot(x,y) plt.title(r'$\nu_{sig} =.9\nu_{sampl} (\nu_{sampl}=100kHz)$', fontsize=18) plt.xlabel('Time($\mu$s)',fontsize = 16) plt.ylabel("Voltage(V)", fontsize = 16) fy=np.fft.fft(y) py=np.abs(fy)**2 freq=np.fft.fftfreq(fy.size,(10**(3))*(1/sample)) plt.subplot(122) plt.plot(freq,py) plt.title('Fourier Transform', fontsize = 18) plt.xlabel('Frequency(kHz)', fontsize = 16) plt.ylabel('Power(W)', fontsize = 16) plt.show()
import DFEC import numpy as np import pylab as py vlo = 2e6 delv = .05*vlo vsighigh = vlo + delv vsiglow = vlo - delv vsample = 20e6 N = 2**14 for vsig in [vsiglow, vsighigh]: # DFEC.set_srs(2, freq=vsig,dbm=1, pha=0) # DFEC.set_srs(1, freq=vlo, dbm=7, pha=0) print 'RF srs_2 = ' + str(vsig/1000000.0) + ' MHz and dBm = 0' print 'LO srs_1 = ' + str(vlo/1000000.0) + ' MHz and dBM = 0' raw_input("Start data collection?") data = DFEC.sampler(N,vsample) filename = "vsig_%.1f.npz" % vsig np.savez(filename,data=data,vsample=vsample,vsig=vsig) print "Saved %s" % filename