Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
    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 )
Ejemplo n.º 4
0
    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)