SMA Calibration Kit (2)

I am not very sure if I am doing one port calibration correctly using scikit-rf.

import skrf as rf
from skrf.plotting import save_all_figs
from skrf.calibration import OnePort

my_ideals = rf.read_all('ideals/')
my_measured = rf.read_all('measured/')
dut = rf.Network('sma_8dB.s1p')

cal = rf.OnePort(
    ideals   = [my_ideals  [k] for k in ['sma_short', 'sma_open', 'sma_50ohm']],
    measured = [my_measured[k] for k in ['sma_short', 'sma_open', 'sma_50ohm']],
    )

caled_dut = cal.apply_cal(dut)

caled_dut.plot_s_smith()
#caled_dut.plot_s_db()
#caled_dut.plot_z_im()
#caled_dut.plot_z_im()

save_all_figs('./', format=['png'])
$ ls -l ./ideals/ ./measured/
./ideals/:
total 24
-rw-r--r--  1 user1  staff  869 Mar 31 20:02 sma_50ohm.s1p
-rw-r--r--  1 user1  staff  869 Mar 31 20:04 sma_open.s1p
-rw-r--r--  1 user1  staff  970 Mar 31 20:07 sma_short.s1p

./measured/:
total 32
-rw-r--r--  1 user1  staff  2686 Mar 31 20:13 sma_50ohm.s1p
-rw-r--r--  1 user1  staff  2450 Mar 31 20:13 sma_8dB.s1p
-rw-r--r--  1 user1  staff  2426 Mar 31 20:13 sma_open.s1p
-rw-r--r--  1 user1  staff  2337 Mar 31 20:13 sma_short.s1p
$ head ./ideals/sma_50ohm.s1p ./measured/sma_50ohm.s1p 
==> ./ideals/sma_50ohm.s1p <==
# MHz S RI R 50
0 0 0
0.3 0 0
0.6 0 0
0.9 0 0
1.2 0 0
1.5 0 0
1.8 0 0
2.1 0 0
2.4 0 0

==> ./measured/sma_50ohm.s1p <==
# MHz S RI R 50
0 0.00701499 0.00504031
0.3 0.00701499 0.00504031
0.6 0.00701499 0.00504031
0.9 0.00878989 0.0028871
1.2 0.00932459 0.00274434
1.5 0.00956452 0.00248623
1.8 0.01028 0.00211041
2.1 0.0100815 0.00206556
2.4 0.0127909 0.00148593

Are these better than uncalibrated ones?

Leave a Reply

Your email address will not be published. Required fields are marked *