def test_yz(self): tinyfloat = 1e-12 ntwk = rf.Network() ntwk.z0 = npy.array([28,75+3j]) ntwk.f = npy.array([1000, 2000]) ntwk.s = rf.z2s(npy.array([[[1+1j,5,11],[40,5,3],[16,8,9+8j]], [[1,20,3],[14,10,16],[27,18,-19-2j]]])) self.assertTrue((abs(rf.y2z(ntwk.y)-ntwk.z) < tinyfloat).all()) self.assertTrue((abs(rf.y2s(ntwk.y, ntwk.z0)-ntwk.s) < tinyfloat).all()) self.assertTrue((abs(rf.z2y(ntwk.z)-ntwk.y) < tinyfloat).all()) self.assertTrue((abs(rf.z2s(ntwk.z, ntwk.z0)-ntwk.s) < tinyfloat).all())
def short_deembed(data, data_open, data_short, datadir=None): ''' Subtracts admittance of open from that of device and short, then subtracts dembeded short impedance from device and saves results in new network n. If save_deembedded is defined, saves a copy of the deembedded short and device networks in snp format. ''' d = open_deembed(data, data_open, datadir) # s = open_deembed(data_short, data_open, datadir) s = open_Network(data_short) n = rf.Network() n.frequency = d.frequency n.z0 = d.z0 n.name = d.name n.z = d.z - s.z n.s = rf.z2s(n.z) n.y = rf.y2z(n.z) if datadir: savedir = os.path.join(datadir, 'deembedded_openshort') if not os.path.isfile(os.path.join(savedir, n.name)): n.write_touchstone(dir=savedir) return n