Merge branch 'tnmr' of https://gitea.psi.ch/linse/frappy into tnmr
This commit is contained in:
@@ -30,32 +30,50 @@ class ZVLNetAnalyzer():
|
||||
self.base_data = np.array([])
|
||||
self.base_data = self.get_data()[1]
|
||||
|
||||
self.min_freq = 0
|
||||
self.max_freq = 0
|
||||
|
||||
def reset(self):
|
||||
#self.instrument.write('*RST')
|
||||
#self.instrument.write('SYST:PRES') # reloads current setup.
|
||||
self.instrument.write('*CLS')
|
||||
self.instrument.write('*RST')
|
||||
self.instrument.write('INST:NSEL 2')
|
||||
self.instrument.write('DISPlay:WINDow1:STATe ON')
|
||||
self.instrument.write(":CALC:PAR:MEAS 'Trc1', 'S11'")
|
||||
self.instrument.write('CALC:FORM MLOG')
|
||||
self.instrument.write('INIT:CONT OFF')
|
||||
self.instrument.write("SYST:USER:DISP:TITL 'Frappy connection'")
|
||||
#self.instrument.write('INIT:SCOP OFF')
|
||||
#self.instrument.write('DISPlay:WINDow2:STATe ON')
|
||||
self.instrument.write('*ESE')
|
||||
|
||||
self.min_freq, self.max_freq = self.get_freq_range() # default is largest.
|
||||
|
||||
def load_calibration(self, f):
|
||||
self.instrument.write(f":MMEMORY:STORE:CORR 1, 'OSM1 {f}'") # put calibration in pool
|
||||
self.instrument.write(f":MMEMORY:LOAD:CORR 1, 'OSM1 {f}'") # load from pool
|
||||
def reload_calibration(self):
|
||||
self.reset()
|
||||
#self.instrument.write("DISP:MENU:KEY:SEL 'Correction Off'")
|
||||
#self.instrument.write("DISP:MENU:KEY:EXEC 'Correction Off'")
|
||||
self.instrument.write("DISP:MENU:KEY:EXEC 'Recall Last Cal Set'")
|
||||
time.sleep(1)
|
||||
self.min_freq, self.max_freq = self.get_freq_range() # default is largest.
|
||||
|
||||
def get_freq_range(self):
|
||||
start = float(self.instrument.ask('SENS1:FREQ:STAR?'))
|
||||
stop = float(self.instrument.ask('SENS1:FREQ:STOP?'))
|
||||
|
||||
return start, stop
|
||||
|
||||
def set_freq_range(self, start, stop):
|
||||
'''In Hz'''
|
||||
self.instrument.write(f'SENS1:FREQ:STAR {start}')
|
||||
self.instrument.write(f'SENS1:FREQ:STOP {stop}')
|
||||
if(start >= self.min_freq) and (stop <= self.max_freq):
|
||||
|
||||
self.instrument.write(f'SENS1:FREQ:STAR {start}')
|
||||
self.instrument.write(f'SENS1:FREQ:STOP {stop}')
|
||||
self.start_freq = start
|
||||
self.stop_freq = stop
|
||||
|
||||
def set_freq_span(self, center, span):
|
||||
'''In Hz'''
|
||||
self.instrument.write(f'SENS1:FREQ:CENT {center}')
|
||||
self.instrument.write(f'SENS1:FREQ:SPAN {span}')
|
||||
start = center - span/2
|
||||
stop = center + span/2
|
||||
|
||||
self.set_freq_range(start, stop)
|
||||
|
||||
def set_averaging_passes(self,avgs):
|
||||
'''
|
||||
@@ -101,6 +119,7 @@ class ZVLNetAnalyzer():
|
||||
assert(averaging_passes<=999)
|
||||
assert(units in ['dB', 'unitless'])
|
||||
|
||||
self.instrument.write('INIT:CONT OFF')
|
||||
self.instrument.write(f'SWE:POIN {N}')
|
||||
self.instrument.write(f'SWE:COUN {averaging_passes}')
|
||||
|
||||
|
||||
50
frappy_psi/network_analysers/ZVL/test.py
Normal file
50
frappy_psi/network_analysers/ZVL/test.py
Normal file
@@ -0,0 +1,50 @@
|
||||
from ZVLDriver import *
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
# example code. profiles the per-point delay for reading data and
|
||||
ip = '129.129.156.201'
|
||||
ip = '169.254.83.53'
|
||||
import matplotlib.pyplot as plt
|
||||
print('start')
|
||||
z = ZVLNetAnalyzer()
|
||||
z.reset()
|
||||
|
||||
|
||||
#mm, mmi, fr, frq = z.find_peak(50_000_000, 350_000_000, 20_000_000)
|
||||
#plt.plot(frq, fr)
|
||||
#plt.axvline(frq[mmi])
|
||||
#plt.axhline(mm)
|
||||
#plt.show()
|
||||
|
||||
#z.reset()
|
||||
##z.set_freq_range(1_000_000, 2_000_000.5)
|
||||
##z.set_freq_span(1_000_000, 10_000)
|
||||
z.set_freq_range(25_750_000, 75_250_000)
|
||||
plt.scatter(*(z.get_data()))
|
||||
|
||||
z.reload_calibration()
|
||||
#z.set_freq_span(220_000_000, 50_000_000)
|
||||
plt.scatter(*(z.get_data()))
|
||||
plt.show()
|
||||
|
||||
#Ns = np.linspace(3, 1000, 100).astype(int)
|
||||
#ts = []
|
||||
#for N in Ns:
|
||||
# st = time.time()
|
||||
# freqs, data = z.get_data(N)
|
||||
# et = time.time()
|
||||
# dt = (et-st)
|
||||
# print(f'got data, {dt/N} ({dt})')
|
||||
# ts += [dt]
|
||||
#
|
||||
#plt.scatter(Ns, ts)
|
||||
#plt.show()
|
||||
#plt.scatter(Ns, np.array(ts)/np.array(Ns))
|
||||
#plt.show()
|
||||
|
||||
#input()
|
||||
#plt.plot(*z.get_data(averaging_passes=1), alpha=0.3)
|
||||
#plt.plot(*z.get_data(averaging_passes=64), alpha=0.3)
|
||||
#plt.show()
|
||||
|
||||
input()
|
||||
Reference in New Issue
Block a user