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)
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())
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())
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)
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] Matrix_s = rf.t2s(Matrix) #---------------------------------------------------------- #Plot #---------------------------------------------------------- plt.figure() plt.plot(F, 20*np.log10(S_75.s[:, 1-1, 1-1]), label='Measure', linewidth ='3') plt.plot(F, 20*np.log10(Matrix_s[:,1-1,1-1]), label='Calc', linewidth ='3') plt.xlabel('F, Гц') plt.ylabel('S11, дБ') plt.legend() plt.grid()