def setUp(self): self.n_ports = 1 self.wg = rf.RectangularWaveguide(rf.F(75,100,NPTS), a=100*rf.mil,z0=50) wg = self.wg self.E = wg.random(n_ports =2, name = 'E') ideals = [ wg.short( name='short'), wg.delay_short( 45.,'deg',name='ew'), wg.delay_short( 90.,'deg',name='qw'), wg.match( name='load'), ] actuals = [ wg.short( name='short'), wg.delay_short( 10.,'deg',name='ew'), wg.delay_short( 80.,'deg',name='qw'), wg.match(name='load'), ] measured = [self.measure(k) for k in actuals] self.cal = rf.SDDL( is_reciprocal = True, ideals = ideals, measured = measured, )
def setUp(self): self.n_ports = 2 self.wg = rf.RectangularWaveguide(rf.F(75, 100, 3), a=100 * rf.mil, z0=50) wg = self.wg wg.frequency = rf.F.from_f([100]) self.X = wg.random(n_ports=2, name='X') self.Y = wg.random(n_ports=2, name='Y') self.gamma_f = wg.random(n_ports=1, name='gamma_f') self.gamma_r = wg.random(n_ports=1, name='gamma_r') ideals = [ wg.short(nports=2, name='short'), wg.open(nports=2, name='open'), wg.match(nports=2, name='load'), wg.thru(name='thru'), ] measured_sets = [] for ideal in ideals: ns = rf.NetworkSet([self.measure(ideal) for k in range(3)]) measured_sets.append(ns) self.calset = Dot(cal_class=EightTerm, ideals=ideals, measured_sets=measured_sets, switch_terms=(self.gamma_f, self.gamma_r))
def setUp(self): self.n_ports = 2 self.wg = rf.RectangularWaveguide(rf.F(75,100,NPTS), a=100*rf.mil,z0=50) wg = self.wg self.Xf = wg.random(n_ports =2, name = 'Xf') self.Xr = wg.random(n_ports =2, name = 'Xr') self.Yf = wg.random(n_ports =2, name='Yf') self.Yr = wg.random(n_ports =2, name='Yr') ideals = [ wg.short(nports=2, name='short'), wg.open(nports=2, name='open'), wg.match(nports=2, name='load'), wg.attenuator(-20,name='atten'), wg.line(45,'deg',name = 'line') , ] measured = [ self.measure(k) for k in ideals] self.cal= TwelveTerm( ideals = NetworkSet(ideals).to_dict(), measured = NetworkSet(measured).to_dict(), n_thrus=None, )
def setUp(self): raise SkipTest() self.n_ports = 2 self.wg = rf.RectangularWaveguide(rf.F(75,100,NPTS), a=100*rf.mil,z0=50) wg= self.wg self.X = wg.random(n_ports =2, name = 'X') self.Y = wg.random(n_ports =2, name='Y') ideals = [ wg.short(nports=2, name='short'), wg.open(nports=2, name='open'), wg.match(nports=2, name='load'), wg.thru(name='thru'), ] measured = [self.measure(k) for k in ideals] cal1 = rf.TwelveTerm( ideals = ideals, measured = measured, n_thrus=1, ) #coefs = rf.convert_12term_2_8term(cal1.coefs) #gamma_f = wg.load(coefs['forward switch term']) gamma_f, gamma_r = (cal1.coefs_ntwks['forward switch term'], cal1.coefs_ntwks['reverse switch term']) self.cal = rf.EightTerm( ideals = ideals, measured = measured, switch_terms = [gamma_f, gamma_r], )
def setUp(self): raise SkipTest() self.n_ports = 2 self.wg = rf.RectangularWaveguide(rf.F(75,100,NPTS), a=100*rf.mil,z0=50) wg = self.wg self.Xf = wg.random(n_ports =2, name = 'Xf') self.Yf = wg.random(n_ports =2, name='Yf') ideals = [ wg.short(nports=2, name='short'), wg.open(nports=2, name='open'), wg.match(nports=2, name='load'), wg.random(2,name='rand1'), wg.random(2,name='rand2'), ] measured = [ self.measure(k) for k in ideals] self.cal = rf.TwelveTerm( ideals = ideals, measured = measured, n_thrus=2, )
def setUp(self): self.n_ports = 2 self.wg = rf.RectangularWaveguide(rf.F(75,100,11), a=100*rf.mil,z0=50) wg = self.wg wg.frequency = rf.F.from_f([100]) self.wg = wg self.Xf = wg.random(n_ports =2, name = 'Xf') self.Xr = wg.random(n_ports =2, name = 'Xr') self.Yf = wg.random(n_ports =2, name='Yf') self.Yr = wg.random(n_ports =2, name='Yr') ideals = [ wg.short(nports=2, name='short'), wg.open(nports=2, name='open'), wg.match(nports=2, name='load'), wg.thru(name='thru'), ] measured = [ self.measure(k) for k in ideals] self.cal = rf.SOLT( ideals = ideals, measured = measured, )
def setUp(self): self.n_ports = 2 self.wg = rf.RectangularWaveguide(rf.F(75,100,NPTS), a=100*rf.mil,z0=50) wg= self.wg self.X = wg.random(n_ports =2, name = 'X') self.Y = wg.random(n_ports =2, name='Y') self.gamma_f = wg.random(n_ports =1, name='gamma_f') self.gamma_r = wg.random(n_ports =1, name='gamma_r') ideals = [ wg.short(nports=2, name='short'), wg.open(nports=2, name='open'), wg.match(nports=2, name='load'), wg.thru(name='thru'), ] measured = [self.measure(k) for k in ideals] self.cal = rf.EightTerm( ideals = ideals, measured = measured, switch_terms = (self.gamma_f, self.gamma_r) )
def setUp(self): #raise SkipTest('Doesnt work yet') self.n_ports = 1 self.wg = rf.RectangularWaveguide(rf.F(75,100,NPTS), a=100*rf.mil,z0=50) wg = self.wg self.E = wg.random(n_ports =2, name = 'E') #self.E.s[0,:,:] = npy.array([[.1j,1],[1j,1j+2]]) #print self.E.s[0] ideals = [ wg.short( name='short'), wg.delay_short( 45.,'deg',name='ew'), wg.delay_short( 90.,'deg',name='qw'), wg.load(.2+.2j, name='load'), ] actuals = [ wg.short( name='short'), wg.delay_short( 10.,'deg',name='ew'), wg.delay_short( 80.,'deg',name='qw'), wg.load(.2+.2j, name='load'), ] measured = [self.measure(k) for k in actuals] self.cal = rf.SDDLWeikle( is_reciprocal = True, ideals = ideals, measured = measured, )
def setUp(self): self.n_ports = 2 self.wg = rf.RectangularWaveguide(rf.F(75,100,NPTS), a=100*rf.mil,z0=50) wg = self.wg self.Xf = wg.random(n_ports =2, name = 'Xf') self.Yf = wg.random(n_ports =2, name='Yf') ideals = [ wg.short(nports=2, name='short'), wg.open(nports=2, name='open'), wg.match(nports=2, name='load'), wg.thru(name='thru'), ] measured = [ self.measure(k) for k in ideals] self.cal = TwoPortOnePath( ideals = ideals, measured = measured, source_port=1, ) self.cal2 = EnhancedResponse( ideals = ideals, measured = measured, source_port=1, )
def setUp(self): self.n_ports = 2 self.wg = rf.RectangularWaveguide(rf.F(75, 100, NPTS), a=100 * rf.mil, z0=50) wg = self.wg self.X = wg.random(n_ports=2, name='X') self.Y = wg.random(n_ports=2, name='Y') self.gamma_f = wg.random(n_ports=1, name='gamma_f') self.gamma_r = wg.random(n_ports=1, name='gamma_r') # make error networks have s21,s12 >> s11,s22 so that TRL # can guess at line length #self.X.s[:,0,0] *=1e-1 #self.Y.s[:,0,0] *=1e-1 #self.X.s[:,1,1] *=1e-1 #self.Y.s[:,1,1] *=1e-1 ideals = None actuals = [ wg.thru(name='thru'), wg.short(nports=2, name='short'), wg.attenuator(-3, True, 45, 'deg') ] self.actuals = actuals measured = [self.measure(k) for k in actuals] self.cal = rf.TRL(ideals=ideals, measured=measured, switch_terms=(self.gamma_f, self.gamma_r))
def setUp(self): self.n_ports = 2 self.wg = rf.RectangularWaveguide(rf.F(75,100,NPTS), a=100*rf.mil,z0=50) wg= self.wg self.X = wg.random(n_ports =2, name = 'X') self.Y = wg.random(n_ports =2, name='Y') self.gamma_f = wg.random(n_ports =1, name='gamma_f') self.gamma_r = wg.random(n_ports =1, name='gamma_r') actuals = [ wg.short(nports=2, name='short'), wg.open(nports=2, name='open'), wg.match(nports=2, name='match'), wg.impedance_mismatch(50,45)**wg.line(20,'deg',name='line')**wg.impedance_mismatch(45,50) ] ideals = [ wg.short(nports=2, name='short'), wg.open(nports=2, name='open'), wg.match(nports=2, name='match'), wg.thru(name='thru'), ] measured = [self.measure(k) for k in actuals] self.cal = rf.UnknownThru( ideals = ideals, measured = measured, switch_terms = [self.gamma_f, self.gamma_r] )
def setUp(self): raise SkipTest() self.n_ports = 2 self.wg = rf.RectangularWaveguide(rf.F(75, 100, NPTS), a=100 * rf.mil, z0=50) wg = self.wg self.X = wg.random(n_ports=2, name='X') self.Y = wg.random(n_ports=2, name='Y') ideals = [ wg.short(nports=2, name='short'), wg.open(nports=2, name='open'), wg.match(nports=2, name='load'), wg.thru(name='thru'), ] measured = [self.measure_std(k) for k in ideals] cal1 = rf.TwoPortOnePath(ideals=ideals, measured=measured) switch_terms = (cal1.coefs_ntwks['forward switch term'], cal1.coefs_ntwks['reverse switch term']) measured = [self.measure(k) for k in ideals] self.cal = rf.EightTerm( ideals=ideals, measured=measured, switch_terms=switch_terms, ) raise ValueError()
def setUp(self): self.n_ports = 2 self.wg = rf.RectangularWaveguide(rf.F(75,100,NPTS), a=100*rf.mil,z0=50) wg = self.wg self.Xf = wg.random(n_ports =2, name = 'Xf') self.Xr = wg.random(n_ports =2, name = 'Xr') self.Yf = wg.random(n_ports =2, name='Yf') self.Yr = wg.random(n_ports =2, name='Yr') ideals = [ wg.short(nports=2, name='short'), wg.open(nports=2, name='open'), wg.match(nports=2, name='load'), None, ] actuals = [ wg.short(nports=2, name='short'), wg.open(nports=2, name='open'), wg.match(nports=2, name='load'), wg.thru(), ] measured = [ self.measure(k) for k in actuals] self.cal = SOLT( ideals = ideals, measured = measured, n_thrus=1, )
def setUp(self): self.n_ports = 1 self.wg = rf.RectangularWaveguide(rf.F(75,100,NPTS), a=100*rf.mil,z0=50) wg = self.wg self.E = wg.random(n_ports =2, name = 'E') known1 = wg.short()#wg.load(0)#wg.random() known2 = wg.load(rand() + rand()*1j) #wg.random() ideals = [ wg.delay_short( 45.,'deg',name='ideal ew'), wg.delay_short( 90.,'deg',name='ideal qw'), known1, known2, ] actuals = [ wg.delay_short( 20.,'deg',name='true ew'), wg.delay_short( 110.,'deg',name='true qw'), known1, known2, ] measured = [self.measure(k) for k in actuals] self.actuals = actuals self.cal = PHN( is_reciprocal = True, ideals = ideals, measured = measured, )
def setUp(self): ''' ''' self.test_dir = os.path.dirname(os.path.abspath(__file__)) + '/' self.pickle_file = os.path.join(self.test_dir, 'pickled.p') self.hfss_oneport_file = os.path.join(self.test_dir, 'hfss_oneport.s1p') self.hfss_twoport_file = os.path.join(self.test_dir, 'hfss_twoport.s2p') self.ntwk1 = rf.Network(os.path.join(self.test_dir, 'ntwk1.s2p')) self.ntwk2 = rf.Network(os.path.join(self.test_dir, 'ntwk2.s2p')) self.ntwk3 = rf.Network(os.path.join(self.test_dir, 'ntwk3.s2p')) self.short = rf.Network(os.path.join(self.test_dir, 'short.s1p')) self.match = rf.Network(os.path.join(self.test_dir, 'match.s1p')) self.open = rf.Network(os.path.join(self.test_dir, 'open.s1p')) self.embeding_network = rf.Network( os.path.join(self.test_dir, 'embedingNetwork.s2p')) self.freq = rf.F(75, 110, 101)
def setUp(self): self.n_ports = 2 self.wg = rf.RectangularWaveguide(rf.F(75,100,2), a=100*rf.mil,z0=50) wg= self.wg #wg.frequency = rf.F.from_f([100]) self.X = wg.random(n_ports =2, name = 'X') self.Y = wg.random(n_ports =2, name='Y') self.gamma_f = wg.random(n_ports =1, name='gamma_f') self.gamma_r = wg.random(n_ports =1, name='gamma_r') def delay_shorts(d1,d2): ds1 = wg.delay_short(d1,'deg') ds2 = wg.delay_short(d2,'deg') return rf.two_port_reflect(ds1,ds2) actuals = [ wg.short(nports=2, name='short'), delay_shorts(65,130), delay_shorts(120,75), wg.load(.2+.2j,nports=2, name='match'), wg.impedance_mismatch(50,45)**wg.line(20,'deg',name='line')**wg.impedance_mismatch(45,50) ] ideals = [ wg.short(nports=2, name='short'), delay_shorts(45,90), delay_shorts(90,45), wg.load(.2+.2j,nports=2, name='match'), wg.thru(name='thru'), ] measured = [self.measure(k) for k in actuals] self.cal = rf.MRC( ideals = ideals, measured = measured, switch_terms = [self.gamma_f, self.gamma_r] )
def setUp(self): self.n_ports = 1 self.wg = rf.RectangularWaveguide(rf.F(75,100,11), a=100*rf.mil,z0=50) wg = self.wg wg.frequency = rf.F.from_f([100]) self.E = wg.random(n_ports =2, name = 'E') ideals = [ wg.short( name='short'), wg.delay_short( 45.,'deg',name='ew'), wg.delay_short( 90.,'deg',name='qw'), wg.match( name='load'), ] measured = [self.measure(k) for k in ideals] self.cal = rf.OnePort( is_reciprocal = True, ideals = ideals, measured = measured, )
def setUp(self): self.wg = rf.RectangularWaveguide(rf.F(75, 100, 11), a=100 * rf.mil, z0=50) wg = self.wg self.n_ports = 1 self.E = wg.random(n_ports=2, name='E') ideals = [ wg.short(name='short'), wg.delay_short(45., 'deg', name='ew'), wg.delay_short(90., 'deg', name='qw'), wg.match(name='load'), ] measured_sets = [] for ideal in ideals: ns = rf.NetworkSet([self.measure(ideal) for k in range(3)]) measured_sets.append(ns) self.calset = Dot(cal_class=OnePort, ideals=ideals, measured_sets=measured_sets, is_reciprocal=True)
def setUp(self): self.n_ports = 2 self.wg = rf.RectangularWaveguide(rf.F(75,100,11), a=100*rf.mil,z0=50) wg= self.wg wg.frequency = rf.F.from_f([100]) self.X = wg.random(n_ports =2, name = 'X') self.Y = wg.random(n_ports =2, name='Y') self.gamma_f = wg.random(n_ports =1, name='gamma_f') self.gamma_r = wg.random(n_ports =1, name='gamma_r') # make error networks have s21,s12 >> s11,s22 so that TRL # can guess at line length self.X.s[:,0,0] *=1e-1 self.Y.s[:,0,0] *=1e-1 self.X.s[:,1,1] *=1e-1 self.Y.s[:,1,1] *=1e-1 actuals = [ wg.thru( name='thru'), wg.short(nports=2, name='short'), wg.line(45,'deg',name='line'), ] ideals = [ wg.thru( name='thru'), wg.short(nports=2, name='short'), wg.line(90,'deg',name='line'), ] measured = [self.measure(k) for k in actuals] self.cal = rf.TRL( ideals = ideals, measured = measured, switch_terms = (self.gamma_f, self.gamma_r) )
def test_frequency(self): self.assertEqual(self.acsv.frequency, rf.F(750e9, 1100e9, 2, 'hz'))
import numpy as npy from numpy.random import rand from nose.tools import nottest from nose.plugins.skip import SkipTest from skrf.calibration import OnePort, PHN, SDDL, TRL, SOLT, UnknownThru, EightTerm, TwoPortOnePath, EnhancedResponse, TwelveTerm, terminate from skrf.networkSet import NetworkSet # number of frequency points to test calibration at # i choose 1 for speed, but given that many tests employ *random* # networks values >100 are better for initialy verification global NPTS NPTS = 1 WG = rf.RectangularWaveguide(rf.F(75, 100, NPTS), a=100 * rf.mil, z0=50) class CalibrationTest(object): ''' This is the generic Calibration test case which all Calibration Subclasses should be able to pass. They must implement ''' def test_accuracy_of_dut_correction(self): a = self.wg.random(n_ports=self.n_ports, name='actual') m = self.measure(a) c = self.cal.apply_cal(m) c.name = 'corrected' self.assertEqual(c, a) def test_error_ntwk(self):
from numpy.random import rand, uniform from nose.tools import nottest from nose.plugins.skip import SkipTest from skrf.calibration import OnePort, PHN, SDDL, TRL, SOLT, UnknownThru, EightTerm, TwoPortOnePath, EnhancedResponse, TwelveTerm, SixteenTerm, LMR16, terminate, determine_line, determine_reflect, NISTMultilineTRL from skrf import two_port_reflect from skrf.networkSet import NetworkSet # number of frequency points to test calibration at . # i choose 1 for speed, but given that many tests employ *random* # networks values >100 are better for initialy verification global NPTS NPTS = 1 WG_lossless = rf.RectangularWaveguide(rf.F(75, 100, NPTS), a=100 * rf.mil, z0=50) WG = rf.RectangularWaveguide(rf.F(75, 100, NPTS), a=100 * rf.mil, z0=50, rho='gold') class DetermineTest(unittest.TestCase): def setUp(self): self.wg = WG wg = self.wg self.X = wg.random(n_ports=2, name='X') self.Y = wg.random(n_ports=2, name='Y')
def test_frequency(self): """ This tests the reading of frequency from the test file """ self.assertEqual(self.acsv.frequency, rf.F(750e9, 1100e9, 2, 'hz'))
from numpy.random import rand, uniform from nose.tools import nottest from nose.plugins.skip import SkipTest from skrf.calibration import OnePort, PHN, SDDL, TRL, SOLT, UnknownThru, EightTerm, TwoPortOnePath, EnhancedResponse,TwelveTerm, SixteenTerm, LMR16, terminate, determine_line, determine_reflect, NISTMultilineTRL from skrf import two_port_reflect from skrf.networkSet import NetworkSet # number of frequency points to test calibration at # i choose 1 for speed, but given that many tests employ *random* # networks values >100 are better for initialy verification global NPTS NPTS = 1 WG_lossless = rf.RectangularWaveguide(rf.F(75,100,NPTS), a=100*rf.mil, z0=50) WG = rf.RectangularWaveguide(rf.F(75,100,NPTS), a=100*rf.mil, z0=50, rho='gold') class DetermineTest(unittest.TestCase): def setUp(self): self.wg = WG wg = self.wg self.X = wg.random(n_ports =2, name = 'X') self.Y = wg.random(n_ports =2, name='Y') #thru self.T = wg.thru() self.T_m = self.embed(self.T)