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 = np.array([])
|
||||||
self.base_data = self.get_data()[1]
|
self.base_data = self.get_data()[1]
|
||||||
|
|
||||||
|
self.min_freq = 0
|
||||||
|
self.max_freq = 0
|
||||||
|
|
||||||
def reset(self):
|
def reset(self):
|
||||||
#self.instrument.write('*RST')
|
self.instrument.write('*RST')
|
||||||
#self.instrument.write('SYST:PRES') # reloads current setup.
|
|
||||||
self.instrument.write('*CLS')
|
|
||||||
self.instrument.write('INST:NSEL 2')
|
self.instrument.write('INST:NSEL 2')
|
||||||
self.instrument.write('DISPlay:WINDow1:STATe ON')
|
self.instrument.write('DISPlay:WINDow1:STATe ON')
|
||||||
self.instrument.write(":CALC:PAR:MEAS 'Trc1', 'S11'")
|
self.instrument.write(":CALC:PAR:MEAS 'Trc1', 'S11'")
|
||||||
self.instrument.write('CALC:FORM MLOG')
|
self.instrument.write('CALC:FORM MLOG')
|
||||||
self.instrument.write('INIT:CONT OFF')
|
self.instrument.write('INIT:CONT OFF')
|
||||||
self.instrument.write("SYST:USER:DISP:TITL 'Frappy connection'")
|
self.instrument.write("SYST:USER:DISP:TITL 'Frappy connection'")
|
||||||
#self.instrument.write('INIT:SCOP OFF')
|
self.instrument.write('*ESE')
|
||||||
#self.instrument.write('DISPlay:WINDow2:STATe ON')
|
|
||||||
|
self.min_freq, self.max_freq = self.get_freq_range() # default is largest.
|
||||||
|
|
||||||
def load_calibration(self, f):
|
def reload_calibration(self):
|
||||||
self.instrument.write(f":MMEMORY:STORE:CORR 1, 'OSM1 {f}'") # put calibration in pool
|
self.reset()
|
||||||
self.instrument.write(f":MMEMORY:LOAD:CORR 1, 'OSM1 {f}'") # load from pool
|
#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):
|
def set_freq_range(self, start, stop):
|
||||||
'''In Hz'''
|
'''In Hz'''
|
||||||
self.instrument.write(f'SENS1:FREQ:STAR {start}')
|
if(start >= self.min_freq) and (stop <= self.max_freq):
|
||||||
self.instrument.write(f'SENS1:FREQ:STOP {stop}')
|
|
||||||
|
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):
|
def set_freq_span(self, center, span):
|
||||||
'''In Hz'''
|
'''In Hz'''
|
||||||
self.instrument.write(f'SENS1:FREQ:CENT {center}')
|
start = center - span/2
|
||||||
self.instrument.write(f'SENS1:FREQ:SPAN {span}')
|
stop = center + span/2
|
||||||
|
|
||||||
|
self.set_freq_range(start, stop)
|
||||||
|
|
||||||
def set_averaging_passes(self,avgs):
|
def set_averaging_passes(self,avgs):
|
||||||
'''
|
'''
|
||||||
@@ -101,6 +119,7 @@ class ZVLNetAnalyzer():
|
|||||||
assert(averaging_passes<=999)
|
assert(averaging_passes<=999)
|
||||||
assert(units in ['dB', 'unitless'])
|
assert(units in ['dB', 'unitless'])
|
||||||
|
|
||||||
|
self.instrument.write('INIT:CONT OFF')
|
||||||
self.instrument.write(f'SWE:POIN {N}')
|
self.instrument.write(f'SWE:POIN {N}')
|
||||||
self.instrument.write(f'SWE:COUN {averaging_passes}')
|
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