win = MainApplication(dut) win.resize(1000, 600) win.setWindowTitle("PYRF FFT Plot Example") if len(sys.argv) > 1: ip = sys.argv[1] else: ip, ok = QtGui.QInputDialog.getText(win, 'Open Device', 'Enter a hostname or IP address:') dut.connect(ip) # initialize WSA configurations dut.reset() dut.request_read_perm() dut.freq(CENTER_FREQ) dut.decimation(DECIMATION) #dut.attenuator(ATTENUATOR) dut.rfe_mode(RFE_MODE) BANDWIDTH = dut.properties.FULL_BW[RFE_MODE] # initialize plot fft_plot = win.addPlot(title="Power Vs. Frequency") # initialize x-axes limits plot_xmin = (CENTER_FREQ) - (BANDWIDTH / 2) plot_xmax = (CENTER_FREQ) + (BANDWIDTH / 2) fft_plot.setLabel('left', text='Power', units='dBm', unitPrefix=None) # initialize the y-axis of the plot plot_ymin = -130
if event.text() == ';': cmd, ok = QtGui.QInputDialog.getText(win, 'Enter SCPI Command', 'Enter SCPI Command:') if ok: if '?' not in cmd: dut.scpiset(cmd) win = MainApplication(dut) win.resize(1000,600) win.setWindowTitle("PYRF FFT Plot Example") # initialize WSA configurations dut.reset() dut.request_read_perm() dut.freq(CENTER_FREQ) dut.decimation(DECIMATION) dut.attenuator(ATTENUATOR) dut.rfe_mode(RFE_MODE) BANDWIDTH = dut.properties.FULL_BW[RFE_MODE] # initialize plot fft_plot = win.addPlot(title="Power Vs. Frequency") # initialize x-axes limits plot_xmin = (CENTER_FREQ) - (BANDWIDTH / 2) plot_xmax = (CENTER_FREQ) + (BANDWIDTH / 2) fft_plot.setLabel('left', text= 'Power', units = 'dBm', unitPrefix=None) # initialize the y-axis of the plot plot_ymin = -130
'fstart': (CENTER_FREQ - 1e6), # some value 'fstop': (CENTER_FREQ + 1e6), # some value 'amplitude': -100 } REFLEVEL = None #%% dut = WSA() dut.connect('169.254.16.253') # initialize RTSA configurations dut.reset() dut.request_read_perm() dut.rfe_mode(RFE_MODE) dut.freq(CENTER_FREQ) dut.attenuator(ATTENUATION) dut.psfm_gain(GAIN) dut.trigger(TRIGGER_SETTING) #%% bw = 40e6 fstart = CENTER_FREQ - bw / 2 fstop = CENTER_FREQ + bw / 2 #%% startT = time() avglist = [1, 5, 10, 50, 100, 500, 1000, 5000, 10000] timelist = [] spectrum = []
#!/usr/bin/env python import sys from pyrf.devices.thinkrf import WSA # connect to wsa dut = WSA() dut.connect(sys.argv[1]) # setup test conditions dut.reset() dut.request_read_perm() dut.freq(2450e6) # capture 1 packet dut.capture(1024, 1) # read until I get 1 data packet while not dut.eof(): pkt = dut.read() if pkt.is_data_packet(): break # print I/Q data into i and q for i, q in pkt.data: print "%d,%d" % (i, q)
## Testing the capture with averages #%% # declare sweep constants RBW = 10e3 F_CENTER = 5.12e9 SPAN = 5e6 TRIGGER_SETTING = { 'type': 'NONE', 'fstart': F_CENTER - SPAN / 2, # some value 'fstop': F_CENTER + SPAN / 2, # some value 'amplitude': -100 } dut.freq(F_CENTER) dut.trigger(TRIGGER_SETTING) dut.scpiset(':SOUR:REF:PLL EXT') # setup graph fstart, fstop, spectra_data = capture_spectrum(dut, RBW, average=100) fig = figure(1) xvalues = np.linspace(fstart, fstop, len(spectra_data)) xlabel("Frequency") ylabel("Amplitude") # plot something plot(xvalues, spectra_data, color='blue')