def mdm2snp(filename): db = mdm(filename).read()[0] name = filename.split('.')[0] if 's22' in db: x = snp(name+'.s2p') x.write(db) elif 's11' in db: x = snp(name+'.s1p') x.write(db)
def mdm2snp(filename): db = mdm(filename).read()[0] name = filename.split('.')[0] if 's22' in db: x = snp(name + '.s2p') x.write(db) elif 's11' in db: x = snp(name + '.s1p') x.write(db)
def __init__(self, name='nport1', nodes=('1', '0', '2', '0'), file="", freq=None): self.name = name self.nodes = nodes self.file = file self.data = touchstone.snp(self.file).read() x = [] if freq: for i in xrange(len(nodes)/2): row = [] for j in xrange(len(nodes)/2): freqs = self.data['freq'] sij = self.data['s%d%d'%(i+1,j+1)] xsij = interp1d(freqs, sij)(freq) row.append( xsij ) x.append(row) else: for i in xrange(len(nodes)/2): row = [] for j in xrange(len(nodes)/2): row.append( self.data['s%d%d'%(i+1,j+1)][0] ) freq = self.data['freq'][0] x.append(row) self._ivcvs = [] n1 = [newnode() for i in xrange(len(nodes)/2)] for i in xrange(len(nodes)/2): self.append( Resistor(name=newname('r'), nodes=(nodes[i*2], n1[i]), r=-50) ) n2 = [newnode() for _i in xrange(len(nodes)/2)] + [nodes[1]] self.append( Resistor(name=newname('r'), nodes=(n1[i], n2[0]), r=100) ) for j in xrange(len(nodes)/2): self.append( VCVSx(nodes=(n2[j], n2[j+1], n1[j], nodes[-1]), gain=x[i][j], freq=freq) ) self._ivcvs.append( len(self)-1 )
def __init__(self, name='nport1', nodes=('1', '0', '2', '0'), file="", freq=None): self.name = name self.nodes = nodes self.file = file self.data = touchstone.snp(self.file).read() x = [] if freq: for i in xrange(len(nodes) / 2): row = [] for j in xrange(len(nodes) / 2): freqs = self.data['freq'] sij = self.data['s%d%d' % (i + 1, j + 1)] xsij = interp1d(freqs, sij)(freq) row.append(xsij) x.append(row) else: for i in xrange(len(nodes) / 2): row = [] for j in xrange(len(nodes) / 2): row.append(self.data['s%d%d' % (i + 1, j + 1)][0]) freq = self.data['freq'][0] x.append(row) self._ivcvs = [] n1 = [newnode() for i in xrange(len(nodes) / 2)] for i in xrange(len(nodes) / 2): self.append( Resistor(name=newname('r'), nodes=(nodes[i * 2], n1[i]), r=-50)) n2 = [newnode() for _i in xrange(len(nodes) / 2)] + [nodes[1]] self.append( Resistor(name=newname('r'), nodes=(n1[i], n2[0]), r=100)) for j in xrange(len(nodes) / 2): self.append( VCVSx(nodes=(n2[j], n2[j + 1], n1[j], nodes[-1]), gain=x[i][j], freq=freq)) self._ivcvs.append(len(self) - 1)