DC Extrapolation for Time Domain

Extrapolates the low frequency points needed for time-domain transformations, when measurement doesn’t include DC.

Example:

In [1]:
import skrf
import matplotlib.pyplot as plt
skrf.stylely()

freq = skrf.F(0.11,110,1001)
coax1mm = skrf.media.Coaxial(freq, z0=50, Dint=0.44e-3, Dout=1.0e-3, sigma=1e20)

X = coax1mm.line(10, 'mm', z0=50, name='X', embed=True)
Y = coax1mm.line(80, 'mm', z0=75, name='Y', embed=True)
dut = X**Y**X

dut_dc = dut.extrapolate_to_dc(dc_sparam=[[0,1],[1,0]])

plt.figure()
plt.title('Step')
t, y = dut.s11.step_response(pad=2000)
t2, y2 = dut_dc.s11.step_response(pad=2000)
plt.plot(t, y, label='Original')
plt.plot(t2, y2, label='Extrapolated')
plt.legend()
plt.xlabel('Time (ns)')

plt.figure()
plt.title('Impulse')
t, y = dut.s11.impulse_response(pad=2000)
t2, y2 = dut_dc.s11.impulse_response(pad=2000)
plt.plot(t, y, label='Original')
plt.plot(t2, y2, label='Extrapolated')
plt.legend()
plt.xlabel('Time (ns)')

plt.show(block=True)
/home/docs/checkouts/readthedocs.org/user_builds/scikit-rf/conda/v0.14.8/lib/python3.5/site-packages/scikit_rf-0.14.8-py3.5.egg/skrf/network.py:2736: RuntimeWarning: Frequency doesn't begin from 0. Step response will not be correct.
  RuntimeWarning
<Figure size 720x480 with 1 Axes>
<Figure size 720x480 with 1 Axes>
In [2]: