def test_conversions(self):
     #Converting to other format and back to S-parameters should return the original network
     for test_z0 in (50, 10, 90+10j, 4-100j):
         for test_ntwk in (self.ntwk1, self.ntwk2, self.ntwk3):
             ntwk = rf.Network(s=test_ntwk.s, f=test_ntwk.f, z0=test_z0)
             npy.testing.assert_allclose(rf.a2s(rf.s2a(ntwk.s, test_z0), test_z0), ntwk.s)
             npy.testing.assert_allclose(rf.z2s(rf.s2z(ntwk.s, test_z0), test_z0), ntwk.s)
             npy.testing.assert_allclose(rf.y2s(rf.s2y(ntwk.s, test_z0), test_z0), ntwk.s)
             npy.testing.assert_allclose(rf.h2s(rf.s2h(ntwk.s, test_z0), test_z0), ntwk.s)
             npy.testing.assert_allclose(rf.t2s(rf.s2t(ntwk.s)), ntwk.s)
     npy.testing.assert_allclose(rf.t2s(rf.s2t(self.Fix.s)), self.Fix.s)        
Beispiel #2
0
    def test_conversions(self):
        #Converting to other format and back to S-parameters should return the original network
        tinyfloat = 1e-11
        for test_z0 in (50, 10, 90+10j, 4-100j):
            for test_ntwk in (self.ntwk1, self.ntwk2, self.ntwk3):
                ntwk = rf.Network(s=test_ntwk.s, f=test_ntwk.f, z0=test_z0)

                self.assertTrue((abs(rf.a2s(rf.s2a(ntwk.s, test_z0), test_z0)-ntwk.s) < tinyfloat).all())
                self.assertTrue((abs(rf.z2s(rf.s2z(ntwk.s, test_z0), test_z0)-ntwk.s) < tinyfloat).all())
                self.assertTrue((abs(rf.y2s(rf.s2y(ntwk.s, test_z0), test_z0)-ntwk.s) < tinyfloat).all())
                self.assertTrue((abs(rf.t2s(rf.s2t(ntwk.s))-ntwk.s) < tinyfloat).all())
        self.assertTrue((abs(rf.t2s(rf.s2t(self.Fix.s))-self.Fix.s) < tinyfloat).all())
Beispiel #3
0
    def test_conversions(self):
        #Converting to other format and back to S-parameters should return the original network
        tinyfloat = 1e-12
        for test_z0 in (50, 10, 90+10j, 4-100j):
            for test_ntwk in (self.ntwk1, self.ntwk2, self.ntwk3):
                ntwk = rf.Network(s=test_ntwk.s, f=test_ntwk.f, z0=test_z0)

                self.assertTrue((abs(rf.a2s(rf.s2a(ntwk.s, test_z0), test_z0)-ntwk.s) < tinyfloat).all())
                self.assertTrue((abs(rf.z2s(rf.s2z(ntwk.s, test_z0), test_z0)-ntwk.s) < tinyfloat).all())
                self.assertTrue((abs(rf.y2s(rf.s2y(ntwk.s, test_z0), test_z0)-ntwk.s) < tinyfloat).all())
                self.assertTrue((abs(rf.t2s(rf.s2t(ntwk.s))-ntwk.s) < tinyfloat).all())
        self.assertTrue((abs(rf.t2s(rf.s2t(self.Fix.s))-self.Fix.s) < tinyfloat).all())
Beispiel #4
0
 def test_conversions(self):
     #Converting to other format and back to S-parameters should return the original network
     s_random = npy.random.uniform(-10, 10, (self.freq.npoints, 2, 2)) + 1j * npy.random.uniform(-10, 10, (self.freq.npoints, 2, 2))
     ntwk_random = rf.Network(s=s_random, frequency=self.freq)
     for test_z0 in (50, 10, 90+10j, 4-100j):
         for test_ntwk in (self.ntwk1, self.ntwk2, self.ntwk3, ntwk_random):
             ntwk = rf.Network(s=test_ntwk.s, f=test_ntwk.f, z0=test_z0)
             npy.testing.assert_allclose(rf.a2s(rf.s2a(ntwk.s, test_z0), test_z0), ntwk.s)
             npy.testing.assert_allclose(rf.z2s(rf.s2z(ntwk.s, test_z0), test_z0), ntwk.s)
             npy.testing.assert_allclose(rf.y2s(rf.s2y(ntwk.s, test_z0), test_z0), ntwk.s)
             npy.testing.assert_allclose(rf.h2s(rf.s2h(ntwk.s, test_z0), test_z0), ntwk.s)
             npy.testing.assert_allclose(rf.t2s(rf.s2t(ntwk.s)), ntwk.s)
     npy.testing.assert_allclose(rf.t2s(rf.s2t(self.Fix.s)), self.Fix.s)
Beispiel #5
0
#----------------------------------------------------------

S_75 = Network("C:/Users/SH/PycharmProjects/Course_Python_Django/SP/Two_ports/Reference_75_DUT.s2p")
Cascade = Network("C:/Users/SH/PycharmProjects/Course_Python_Django/SP/Two_ports/Cascade_D_A_D.s2p")
Attenuator = Network("C:/Users/SH/PycharmProjects/Course_Python_Django/SP/Two_ports/Attenuator_9db.s2p")
F = S_75.f[:]





#----------------------------------------------------------
#Conversion and calculations
#----------------------------------------------------------

Cascade_t = rf.s2t(Cascade.s)
Attenuator_t = rf.s2t(Attenuator.s)

Matrix = np.zeros((len(Cascade_t), 2, 2), complex)
for i in range(len(Cascade_t)):

    Value_1 = Cascade_t[i]@Attenuator_t[i]
    Value_2 = linalg.sqrtm(Value_1)
    Value_3 = [email protected](Attenuator_t[i])

    Matrix[i, 0, 0] = Value_3[0, 0]
    Matrix[i, 1, 0] = Value_3[1, 0]
    Matrix[i, 1, 1] = Value_3[1, 1]
    Matrix[i, 0, 1] = Value_3[0, 1]