add really rudimentary 1-port calibration support
This commit is contained in:
parent
30fb1190bb
commit
80fd25e7e4
|
@ -1,16 +1,505 @@
|
|||
{
|
||||
"frequency": [
|
||||
1000000000.0,
|
||||
1100000000.0,
|
||||
1200000000.0,
|
||||
1300000000.0,
|
||||
1400000000.0,
|
||||
1500000000.0,
|
||||
1600000000.0,
|
||||
1700000000.0,
|
||||
1800000000.0,
|
||||
1900000000.0,
|
||||
2000000000.0
|
||||
80000000.0,
|
||||
80841683.36673346,
|
||||
81683366.73346694,
|
||||
82525050.1002004,
|
||||
83366733.46693386,
|
||||
84208416.83366734,
|
||||
85050100.2004008,
|
||||
85891783.56713426,
|
||||
86733466.93386774,
|
||||
87575150.3006012,
|
||||
88416833.66733468,
|
||||
89258517.03406814,
|
||||
90100200.4008016,
|
||||
90941883.76753508,
|
||||
91783567.13426854,
|
||||
92625250.501002,
|
||||
93466933.86773548,
|
||||
94308617.23446894,
|
||||
95150300.6012024,
|
||||
95991983.96793588,
|
||||
96833667.33466934,
|
||||
97675350.70140281,
|
||||
98517034.06813627,
|
||||
99358717.43486974,
|
||||
100200400.8016032,
|
||||
101042084.16833667,
|
||||
101883767.53507014,
|
||||
102725450.90180361,
|
||||
103567134.26853707,
|
||||
104408817.63527054,
|
||||
105250501.00200401,
|
||||
106092184.36873747,
|
||||
106933867.73547095,
|
||||
107775551.10220441,
|
||||
108617234.46893787,
|
||||
109458917.83567134,
|
||||
110300601.20240481,
|
||||
111142284.56913827,
|
||||
111983967.93587175,
|
||||
112825651.30260521,
|
||||
113667334.66933867,
|
||||
114509018.03607213,
|
||||
115350701.40280561,
|
||||
116192384.76953909,
|
||||
117034068.13627255,
|
||||
117875751.50300601,
|
||||
118717434.86973947,
|
||||
119559118.23647295,
|
||||
120400801.60320641,
|
||||
121242484.96993989,
|
||||
122084168.33667335,
|
||||
122925851.70340681,
|
||||
123767535.07014027,
|
||||
124609218.43687375,
|
||||
125450901.80360723,
|
||||
126292585.17034069,
|
||||
127134268.53707415,
|
||||
127975951.90380761,
|
||||
128817635.27054109,
|
||||
129659318.63727455,
|
||||
130501002.00400802,
|
||||
131342685.37074149,
|
||||
132184368.73747495,
|
||||
133026052.10420841,
|
||||
133867735.47094189,
|
||||
134709418.83767536,
|
||||
135551102.20440882,
|
||||
136392785.5711423,
|
||||
137234468.93787575,
|
||||
138076152.30460924,
|
||||
138917835.67134267,
|
||||
139759519.03807616,
|
||||
140601202.40480962,
|
||||
141442885.7715431,
|
||||
142284569.13827655,
|
||||
143126252.50501,
|
||||
143967935.8717435,
|
||||
144809619.23847696,
|
||||
145651302.60521042,
|
||||
146492985.97194389,
|
||||
147334669.33867735,
|
||||
148176352.70541084,
|
||||
149018036.07214427,
|
||||
149859719.43887776,
|
||||
150701402.80561122,
|
||||
151543086.17234468,
|
||||
152384769.53907818,
|
||||
153226452.9058116,
|
||||
154068136.2725451,
|
||||
154909819.63927856,
|
||||
155751503.00601202,
|
||||
156593186.3727455,
|
||||
157434869.73947895,
|
||||
158276553.10621244,
|
||||
159118236.4729459,
|
||||
159959919.83967936,
|
||||
160801603.20641282,
|
||||
161643286.57314628,
|
||||
162484969.93987978,
|
||||
163326653.30661324,
|
||||
164168336.6733467,
|
||||
165010020.04008016,
|
||||
165851703.40681362,
|
||||
166693386.7735471,
|
||||
167535070.14028054,
|
||||
168376753.50701404,
|
||||
169218436.8737475,
|
||||
170060120.24048096,
|
||||
170901803.60721445,
|
||||
171743486.97394788,
|
||||
172585170.34068137,
|
||||
173426853.70741484,
|
||||
174268537.0741483,
|
||||
175110220.4408818,
|
||||
175951903.80761522,
|
||||
176793587.1743487,
|
||||
177635270.54108217,
|
||||
178476953.90781564,
|
||||
179318637.2745491,
|
||||
180160320.64128256,
|
||||
181002004.00801605,
|
||||
181843687.37474948,
|
||||
182685370.74148297,
|
||||
183527054.10821643,
|
||||
184368737.4749499,
|
||||
185210420.8416834,
|
||||
186052104.20841682,
|
||||
186893787.5751503,
|
||||
187735470.94188377,
|
||||
188577154.30861723,
|
||||
189418837.67535073,
|
||||
190260521.04208416,
|
||||
191102204.40881765,
|
||||
191943887.7755511,
|
||||
192785571.14228457,
|
||||
193627254.50901806,
|
||||
194468937.8757515,
|
||||
195310621.242485,
|
||||
196152304.60921845,
|
||||
196993987.9759519,
|
||||
197835671.34268537,
|
||||
198677354.70941883,
|
||||
199519038.07615232,
|
||||
200360721.44288576,
|
||||
201202404.80961925,
|
||||
202044088.1763527,
|
||||
202885771.54308617,
|
||||
203727454.90981966,
|
||||
204569138.2765531,
|
||||
205410821.6432866,
|
||||
206252505.01002005,
|
||||
207094188.3767535,
|
||||
207935871.743487,
|
||||
208777555.11022043,
|
||||
209619238.47695392,
|
||||
210460921.8436874,
|
||||
211302605.21042085,
|
||||
212144288.5771543,
|
||||
212985971.94388777,
|
||||
213827655.31062126,
|
||||
214669338.67735472,
|
||||
215511022.04408818,
|
||||
216352705.41082165,
|
||||
217194388.7775551,
|
||||
218036072.14428857,
|
||||
218877755.51102206,
|
||||
219719438.87775552,
|
||||
220561122.24448898,
|
||||
221402805.61122245,
|
||||
222244488.9779559,
|
||||
223086172.3446894,
|
||||
223927855.71142286,
|
||||
224769539.07815632,
|
||||
225611222.44488978,
|
||||
226452905.81162325,
|
||||
227294589.1783567,
|
||||
228136272.5450902,
|
||||
228977955.91182366,
|
||||
229819639.27855712,
|
||||
230661322.64529058,
|
||||
231503006.01202404,
|
||||
232344689.37875754,
|
||||
233186372.745491,
|
||||
234028056.11222446,
|
||||
234869739.47895792,
|
||||
235711422.84569138,
|
||||
236553106.21242484,
|
||||
237394789.57915834,
|
||||
238236472.9458918,
|
||||
239078156.31262526,
|
||||
239919839.67935872,
|
||||
240761523.04609218,
|
||||
241603206.41282564,
|
||||
242444889.77955914,
|
||||
243286573.1462926,
|
||||
244128256.51302606,
|
||||
244969939.87975952,
|
||||
245811623.24649298,
|
||||
246653306.61322647,
|
||||
247494989.97995993,
|
||||
248336673.3466934,
|
||||
249178356.71342686,
|
||||
250020040.08016032,
|
||||
250861723.44689378,
|
||||
251703406.81362727,
|
||||
252545090.18036073,
|
||||
253386773.5470942,
|
||||
254228456.91382766,
|
||||
255070140.28056112,
|
||||
255911823.6472946,
|
||||
256753507.01402807,
|
||||
257595190.38076153,
|
||||
258436873.747495,
|
||||
259278557.11422846,
|
||||
260120240.48096192,
|
||||
260961923.8476954,
|
||||
261803607.21442887,
|
||||
262645290.58116233,
|
||||
263486973.9478958,
|
||||
264328657.31462926,
|
||||
265170340.68136275,
|
||||
266012024.0480962,
|
||||
266853707.41482967,
|
||||
267695390.78156313,
|
||||
268537074.1482966,
|
||||
269378757.51503,
|
||||
270220440.8817636,
|
||||
271062124.248497,
|
||||
271903807.61523044,
|
||||
272745490.98196393,
|
||||
273587174.3486974,
|
||||
274428857.71543086,
|
||||
275270541.08216435,
|
||||
276112224.44889784,
|
||||
276953907.8156313,
|
||||
277795591.1823647,
|
||||
278637274.5490982,
|
||||
279478957.9158317,
|
||||
280320641.2825651,
|
||||
281162324.6492986,
|
||||
282004008.0160321,
|
||||
282845691.38276553,
|
||||
283687374.74949896,
|
||||
284529058.1162325,
|
||||
285370741.48296595,
|
||||
286212424.8496994,
|
||||
287054108.21643287,
|
||||
287895791.58316636,
|
||||
288737474.9498998,
|
||||
289579158.3166333,
|
||||
290420841.6833668,
|
||||
291262525.0501002,
|
||||
292104208.41683364,
|
||||
292945891.78356713,
|
||||
293787575.1503006,
|
||||
294629258.51703405,
|
||||
295470941.88376755,
|
||||
296312625.25050104,
|
||||
297154308.61723447,
|
||||
297995991.98396796,
|
||||
298837675.35070145,
|
||||
299679358.7174349,
|
||||
300521042.0841683,
|
||||
301362725.4509018,
|
||||
302204408.8176353,
|
||||
303046092.1843687,
|
||||
303887775.5511022,
|
||||
304729458.9178357,
|
||||
305571142.28456914,
|
||||
306412825.6513026,
|
||||
307254509.0180361,
|
||||
308096192.38476956,
|
||||
308937875.751503,
|
||||
309779559.1182365,
|
||||
310621242.48497,
|
||||
311462925.8517034,
|
||||
312304609.2184369,
|
||||
313146292.5851704,
|
||||
313987975.9519038,
|
||||
314829659.31863725,
|
||||
315671342.68537074,
|
||||
316513026.05210423,
|
||||
317354709.41883767,
|
||||
318196392.78557116,
|
||||
319038076.15230465,
|
||||
319879759.5190381,
|
||||
320721442.8857715,
|
||||
321563126.25250506,
|
||||
322404809.6192385,
|
||||
323246492.9859719,
|
||||
324088176.3527054,
|
||||
324929859.7194389,
|
||||
325771543.08617234,
|
||||
326613226.45290583,
|
||||
327454909.8196393,
|
||||
328296593.18637276,
|
||||
329138276.5531062,
|
||||
329979959.9198397,
|
||||
330821643.2865732,
|
||||
331663326.6533066,
|
||||
332505010.0200401,
|
||||
333346693.3867736,
|
||||
334188376.753507,
|
||||
335030060.12024045,
|
||||
335871743.486974,
|
||||
336713426.85370743,
|
||||
337555110.22044086,
|
||||
338396793.58717436,
|
||||
339238476.95390785,
|
||||
340080160.3206413,
|
||||
340921843.6873748,
|
||||
341763527.05410826,
|
||||
342605210.4208417,
|
||||
343446893.7875751,
|
||||
344288577.1543086,
|
||||
345130260.5210421,
|
||||
345971943.88777554,
|
||||
346813627.25450903,
|
||||
347655310.6212425,
|
||||
348496993.98797596,
|
||||
349338677.35470945,
|
||||
350180360.7214429,
|
||||
351022044.08817637,
|
||||
351863727.45490986,
|
||||
352705410.8216433,
|
||||
353547094.1883768,
|
||||
354388777.5551102,
|
||||
355230460.9218437,
|
||||
356072144.28857714,
|
||||
356913827.65531063,
|
||||
357755511.0220441,
|
||||
358597194.38877755,
|
||||
359438877.75551105,
|
||||
360280561.1222445,
|
||||
361122244.48897797,
|
||||
361963927.85571146,
|
||||
362805611.2224449,
|
||||
363647294.5891784,
|
||||
364488977.9559118,
|
||||
365330661.3226453,
|
||||
366172344.6893788,
|
||||
367014028.05611223,
|
||||
367855711.4228457,
|
||||
368697394.78957915,
|
||||
369539078.15631264,
|
||||
370380761.5230461,
|
||||
371222444.88977957,
|
||||
372064128.25651306,
|
||||
372905811.6232465,
|
||||
373747494.98998,
|
||||
374589178.3567134,
|
||||
375430861.7234469,
|
||||
376272545.0901804,
|
||||
377114228.4569138,
|
||||
377955911.8236473,
|
||||
378797595.19038075,
|
||||
379639278.55711424,
|
||||
380480961.92384773,
|
||||
381322645.29058117,
|
||||
382164328.65731466,
|
||||
383006012.0240481,
|
||||
383847695.3907816,
|
||||
384689378.7575151,
|
||||
385531062.1242485,
|
||||
386372745.490982,
|
||||
387214428.8577154,
|
||||
388056112.2244489,
|
||||
388897795.59118235,
|
||||
389739478.95791584,
|
||||
390581162.32464933,
|
||||
391422845.69138277,
|
||||
392264529.05811626,
|
||||
393106212.4248497,
|
||||
393947895.7915832,
|
||||
394789579.1583167,
|
||||
395631262.5250501,
|
||||
396472945.8917836,
|
||||
397314629.258517,
|
||||
398156312.6252505,
|
||||
398997995.991984,
|
||||
399839679.35871744,
|
||||
400681362.72545093,
|
||||
401523046.09218436,
|
||||
402364729.45891786,
|
||||
403206412.8256513,
|
||||
404048096.1923848,
|
||||
404889779.5591183,
|
||||
405731462.9258517,
|
||||
406573146.2925852,
|
||||
407414829.6593186,
|
||||
408256513.0260521,
|
||||
409098196.3927856,
|
||||
409939879.75951904,
|
||||
410781563.12625253,
|
||||
411623246.49298596,
|
||||
412464929.85971946,
|
||||
413306613.22645295,
|
||||
414148296.5931864,
|
||||
414989979.95991987,
|
||||
415831663.3266533,
|
||||
416673346.6933868,
|
||||
417515030.0601203,
|
||||
418356713.4268537,
|
||||
419198396.7935872,
|
||||
420040080.16032064,
|
||||
420881763.52705413,
|
||||
421723446.89378756,
|
||||
422565130.26052105,
|
||||
423406813.62725455,
|
||||
424248496.993988,
|
||||
425090180.36072147,
|
||||
425931863.7274549,
|
||||
426773547.0941884,
|
||||
427615230.4609219,
|
||||
428456913.8276553,
|
||||
429298597.1943888,
|
||||
430140280.56112224,
|
||||
430981963.92785573,
|
||||
431823647.2945892,
|
||||
432665330.66132265,
|
||||
433507014.02805614,
|
||||
434348697.3947896,
|
||||
435190380.76152307,
|
||||
436032064.12825656,
|
||||
436873747.49499,
|
||||
437715430.8617235,
|
||||
438557114.2284569,
|
||||
439398797.5951904,
|
||||
440240480.96192384,
|
||||
441082164.3286573,
|
||||
441923847.6953908,
|
||||
442765531.06212425,
|
||||
443607214.42885774,
|
||||
444448897.7955912,
|
||||
445290581.16232467,
|
||||
446132264.52905816,
|
||||
446973947.8957916,
|
||||
447815631.2625251,
|
||||
448657314.6292585,
|
||||
449498997.995992,
|
||||
450340681.3627255,
|
||||
451182364.7294589,
|
||||
452024048.0961924,
|
||||
452865731.46292585,
|
||||
453707414.82965934,
|
||||
454549098.1963928,
|
||||
455390781.56312627,
|
||||
456232464.92985976,
|
||||
457074148.2965932,
|
||||
457915831.6633267,
|
||||
458757515.0300601,
|
||||
459599198.3967936,
|
||||
460440881.7635271,
|
||||
461282565.1302605,
|
||||
462124248.496994,
|
||||
462965931.86372745,
|
||||
463807615.23046094,
|
||||
464649298.59719443,
|
||||
465490981.96392787,
|
||||
466332665.33066136,
|
||||
467174348.6973948,
|
||||
468016032.0641283,
|
||||
468857715.4308618,
|
||||
469699398.7975952,
|
||||
470541082.1643287,
|
||||
471382765.5310621,
|
||||
472224448.8977956,
|
||||
473066132.26452905,
|
||||
473907815.63126254,
|
||||
474749498.99799603,
|
||||
475591182.36472946,
|
||||
476432865.73146296,
|
||||
477274549.0981964,
|
||||
478116232.4649299,
|
||||
478957915.83166337,
|
||||
479799599.1983968,
|
||||
480641282.5651303,
|
||||
481482965.9318637,
|
||||
482324649.2985972,
|
||||
483166332.6653307,
|
||||
484008016.03206414,
|
||||
484849699.39879763,
|
||||
485691382.76553106,
|
||||
486533066.13226455,
|
||||
487374749.498998,
|
||||
488216432.8657315,
|
||||
489058116.23246497,
|
||||
489899799.5991984,
|
||||
490741482.9659319,
|
||||
491583166.3326653,
|
||||
492424849.6993988,
|
||||
493266533.0661323,
|
||||
494108216.43286574,
|
||||
494949899.79959923,
|
||||
495791583.16633266,
|
||||
496633266.53306615,
|
||||
497474949.89979964,
|
||||
498316633.2665331,
|
||||
499158316.63326657,
|
||||
500000000.0
|
||||
],
|
||||
"power": -5
|
||||
}
|
|
@ -6,7 +6,7 @@ import numpy as np
|
|||
from charon_vna.gui import DEFAULT_CONFIG
|
||||
|
||||
config = dict(
|
||||
frequency=np.linspace(1e9, 2e9, 11).tolist(),
|
||||
frequency=np.linspace(80e6, 500e6, 500).tolist(),
|
||||
power=-5,
|
||||
)
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
# %% imports
|
||||
import json
|
||||
import pickle
|
||||
import re
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
@ -7,11 +8,13 @@ from typing import List
|
|||
|
||||
import matplotlib as mpl
|
||||
import numpy as np
|
||||
import skrf as rf
|
||||
import xarray as xr
|
||||
from numpy import typing as npt
|
||||
from PySide6.QtGui import QAction, QKeySequence
|
||||
from PySide6.QtWidgets import (
|
||||
QApplication,
|
||||
QDialogButtonBox,
|
||||
QFileDialog,
|
||||
QInputDialog,
|
||||
QLineEdit,
|
||||
|
@ -24,6 +27,7 @@ from PySide6.QtWidgets import (
|
|||
from vna import Charon
|
||||
|
||||
from charon_vna.plots import PlotWidget
|
||||
from charon_vna.util import net2s, s2net
|
||||
|
||||
# %%
|
||||
DEFAULT_CONFIG = Path(__file__).parent / "config_default.json"
|
||||
|
@ -88,6 +92,9 @@ class MainWindow(QMainWindow):
|
|||
|
||||
menu_calibration = QMenu("&Calibration")
|
||||
menubar.addMenu(menu_calibration)
|
||||
action_cal_solt = QAction("&SOLT", self)
|
||||
action_cal_solt.triggered.connect(self.calibrate_solt)
|
||||
menu_calibration.addAction(action_cal_solt)
|
||||
|
||||
# Content
|
||||
window_layout = QVBoxLayout()
|
||||
|
@ -163,22 +170,26 @@ class MainWindow(QMainWindow):
|
|||
print(f"Loading config from {path}...")
|
||||
# TODO: load config
|
||||
|
||||
def progress_callback(self, done: int, total: int):
|
||||
self.prog_sweep.setMaximum(total)
|
||||
self.prog_sweep.setValue(done)
|
||||
|
||||
def capture(self) -> None:
|
||||
def callback(done: int, total: int):
|
||||
self.prog_sweep.setMaximum(total)
|
||||
self.prog_sweep.setValue(done)
|
||||
s = self.vna.vna_capture(self._frequency, self.progress_callback)
|
||||
|
||||
s = self.vna.vna_capture(self._frequency, callback)
|
||||
|
||||
data = xr.DataArray(
|
||||
[[s]],
|
||||
dims=["m", "n", "frequency"],
|
||||
coords=dict(
|
||||
frequency=s.coords["frequency"],
|
||||
m=[1],
|
||||
n=[1],
|
||||
),
|
||||
)
|
||||
if self.vna.calibration is not None:
|
||||
s_calibrated = self.vna.calibration.apply_cal(s2net(s))
|
||||
data = net2s(s_calibrated)
|
||||
else:
|
||||
data = xr.DataArray(
|
||||
[[s]],
|
||||
dims=["m", "n", "frequency"],
|
||||
coords=dict(
|
||||
frequency=s.coords["frequency"],
|
||||
m=[1],
|
||||
n=[1],
|
||||
),
|
||||
)
|
||||
|
||||
for plot in self.plots:
|
||||
plot.update_plot(data)
|
||||
|
@ -197,6 +208,31 @@ class MainWindow(QMainWindow):
|
|||
# Currently does not support zero span
|
||||
self._frequency = frequency
|
||||
|
||||
def calibrate_solt(self):
|
||||
if len(self.vna.ports) > 1:
|
||||
raise NotImplementedError
|
||||
|
||||
calfile = Path(__file__).parent / "cal.pkl"
|
||||
if calfile.exists():
|
||||
# don't re-cal while debugging because that's slooooooow
|
||||
with open(calfile, "rb") as f:
|
||||
calibration = pickle.load(f)
|
||||
else:
|
||||
s = dict()
|
||||
for net in ["short", "open", "load"]:
|
||||
input(f"Connect {net} standard and press ENTER...")
|
||||
s[net] = self.vna.vna_capture(self._frequency, self.progress_callback)
|
||||
|
||||
ideal = rf.media.DefinedGammaZ0(frequency=rf.media.Frequency.from_f(self._frequency, unit="Hz"))
|
||||
calibration = rf.calibration.OnePort(
|
||||
[s2net(s["short"]), s2net(s["open"]), s2net(s["load"])],
|
||||
[ideal.short(), ideal.open(), ideal.load(0)],
|
||||
)
|
||||
# TODO: don't use pickles for calibration. They're fragile
|
||||
with open(calfile, "wb") as f:
|
||||
pickle.dump(calibration, f)
|
||||
self.vna.calibration = calibration
|
||||
|
||||
|
||||
def main() -> None:
|
||||
app = QApplication(sys.argv)
|
||||
|
|
|
@ -13,7 +13,8 @@ from matplotlib import pyplot as plt
|
|||
from matplotlib.ticker import EngFormatter
|
||||
from numpy import typing as npt
|
||||
from scipy import signal
|
||||
from util import HAM_BANDS, db20, net2s, s2net
|
||||
|
||||
from charon_vna.util import HAM_BANDS, db20, net2s, s2net
|
||||
|
||||
dir_ = Path(__file__).parent
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user