In [1]:
from lcapy import Circuit, j, omega, s
cct = Circuit("""
Vi 1 0_1 step; down
L 1 2; right, size=1.5
R 2 0; down
W 0_1 0; right
W 0 0_2; right, size=0.5
P1 2_2 0_2; down
W 2 2_2;right, size=0.5""")

In [2]:
cct.draw()



In [3]:
H = (cct.R.V(s) / cct.Vi.V(s)).simplify()

In [4]:
H(j * omega)


Out[4]:
$$\frac{R}{\mathrm{j} L \omega + R}$$

In [5]:
H(j * omega).rationalize_denominator()


Out[5]:
$$\frac{- \mathrm{j} L R \omega + R^{2}}{L^{2} \omega^{2} + R^{2}}$$

In [6]:
H(j * omega).real_imag


Out[6]:
$$- \frac{\mathrm{j} L R \omega}{L^{2} \omega^{2} + R^{2}} + \frac{R^{2}}{L^{2} \omega^{2} + R^{2}}$$

In [7]:
H(j * omega).magnitude


Out[7]:
$$\frac{R}{\sqrt{L^{2} \omega^{2} + R^{2}}}$$

In [8]:
H(j * omega).phase_degrees


Out[8]:
$$- \frac{180 \operatorname{atan}{\left(\frac{L \omega}{R} \right)}}{\pi}$$

In [9]:
H1 = H.subs('L',1).subs('R',1e3)
H1(j * omega)


Out[9]:
$$\frac{1000}{\mathrm{j} \omega + 1000}$$

In [10]:
from numpy import logspace
w = logspace(1, 6, 500)
%matplotlib inline
ax = H1(j * omega).dB.plot(w, log_frequency=True)



In [11]:
ax = H1(j * omega).phase_degrees.plot(w, log_frequency=True)