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)
Example #2
0
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)
Example #3
0
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)
Example #4
0
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)
Example #5
0
# 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
Example #6
0
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...")
    
    





Example #7
0
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