Skip to content

Instantly share code, notes, and snippets.

@DavidLutton
Created December 14, 2018 00:16
Show Gist options
  • Save DavidLutton/c530da778bd4adc94e4b10b2d5c17611 to your computer and use it in GitHub Desktop.
Save DavidLutton/c530da778bd4adc94e4b10b2d5c17611 to your computer and use it in GitHub Desktop.
import skrf as rf
from skrf.media import Freespace
from skrf.frequency import Frequency
rf.stylely()
frequency = Frequency(300e3, 6e9, 801, unit='Hz', sweep_type='lin')
med = Freespace(frequency=frequency, z0=50)
f = frequency.f
C0 = 89.939 * 10**-15
C1 = 2536.800 * 10**-27
C2 = -264.990 * 10**-36
C3 = 13.400 * 10**-45
# http://na.support.keysight.com/pna/caldefs/PNA/85032F.htm
# https://www.kirkbymicrowave.co.uk/Support/FAQ/What-are-the-calibration-kit-coefficients/
# https://www.metas.ch/dam/data/metas/Fachbereiche/Hochfrequenz/vna-tools/vnatoolsmath-v2-1-0.pdf
Cfringing = C0 + C1*f + C2*(f**2) + C3*(f**3)
ideal_open = med.capacitor(Cfringing)**med.open()
ideal_open.plot_s_deg()
ideal_open_and_delay = ideal_open.delay(4.0856E-011, unit='s', media=None)
ideal_open_and_delay.plot_s_deg()
ideal_open.write_touchstone(filename='ideal_open.s1p', dir=None, write_z0=False, skrf_comment=True, return_string=False, form='db')
# ideal_open.write_touchstone(filename='ideal_open.s1p', dir=None, write_z0=False, skrf_comment=True, return_string=False, form='ma')
# ideal_open.write_touchstone(filename='ideal_open.s1p', dir=None, write_z0=False, skrf_comment=True, return_string=False, form='ri')