def test_pickling(self): ideals, measured = [], [] std_list = [self.short, self.match, self.open] for ntwk in std_list: ideals.append(ntwk) measured.append(self.embeding_network**ntwk) cal = rf.Calibration(\ ideals = ideals,\ measured = measured,\ type = 'one port',\ is_reciprocal = True,\ ) original = cal f = open(os.path.join(self.test_dir, 'pickled_cal.cal'), 'wb') pickle.dump(original, f) f.close() f = open(os.path.join(self.test_dir, 'pickled_cal.cal')) unpickled = pickle.load(f) a = unpickled.error_ntwk unpickled.run() # TODO: this test should be more extensive self.assertEqual(original.ideals, unpickled.ideals) self.assertEqual(original.measured, unpickled.measured) f.close() os.remove(os.path.join(self.test_dir, 'pickled_cal.cal'))
def test_least_squares_calibration(self): ideals, measured = [], [] std_list = [self.short, self.match, self.open, self.delay_short] for ntwk in std_list: ideals.append(ntwk) measured.append(self.embeding_network**ntwk) cal = rf.Calibration(\ ideals = ideals,\ measured = measured,\ type = 'one port',\ is_reciprocal = True,\ ) # did we find correct embeding network? self.assertEqual(self.embeding_network, cal.error_ntwk) # are the de-embeded networks the same as their ideals? for ntwk in std_list: self.assertEqual(ntwk, cal.apply_cal(self.embeding_network**ntwk))
def test_readwrite_calibration(self): ideals, measured = [], [] std_list = [self.short, self.match, self.open] for ntwk in std_list: ideals.append(ntwk) measured.append(self.embeding_network**ntwk) cal = rf.Calibration(\ ideals = ideals,\ measured = measured,\ type = 'one port',\ is_reciprocal = True,\ ) original = cal rf.write(self.pickle_file, original) unpickled = rf.read(self.pickle_file) # TODO: this test should be more extensive self.assertEqual(original.ideals, unpickled.ideals) self.assertEqual(original.measured, unpickled.measured) os.remove(self.pickle_file)
import skrf as rf from pylab import * cal = rf.Calibration(\ measured = [\ rf.Network('measured/short.s1p'), rf.Network('measured/delay short 132um.s1p'), rf.Network('measured/delay short 85um.s1p'), rf.Network('measured/load.s1p'), ], ideals =[\ rf.Network('ideals/short.s1p'), rf.Network('ideals/delay short 132um.s1p'), rf.Network('ideals/delay short 85um.s1p'), rf.Network('ideals/load.s1p'), ], ) ro_meas = rf.Network('dut/radiating open.s1p') ro_cal = cal.apply_cal(ro_meas) ro_sim = rf.Network('simulation/radiating open.s1p') figure() ro_cal.plot_s_db(label='Experiment') ro_sim.plot_s_db(label='Simulated') draw();show();
fileitem = form['measure%i' % (k)] fn = os.path.basename(fileitem.filename).replace('_', '-') open(measured_dir + fn, 'wb').write(fileitem.file.read()) measured.append(rf.Network(measured_dir + fn)) fileitem = form['ideal%i' % (k)] fn = os.path.basename(fileitem.filename).replace('_', '-') open(ideals_dir + fn, 'wb').write(fileitem.file.read()) ideals.append(rf.Network(ideals_dir + fn)) for k in range(n_duts): fileitem = form['dut%i' % (k)] fn = os.path.basename(fileitem.filename).replace('_', '-') open(duts_dir + fn, 'wb').write(fileitem.file.read()) duts.append(rf.Network(duts_dir + fn)) cal = rf.Calibration( measured=measured, ideals=ideals, ) caled = [cal.apply_cal(k) for k in duts] message = ''' <div> <h2> Touchstone Files </h2> </div>''' for ntwk in caled: fn = ntwk.name + '.s' + str(ntwk.number_of_ports) + 'p' message += ''' <a href=\'%s\'>%s</a> <br>