Open source VNA calibration, conversion, touchstone read-write from python or C

Joined
Aug 3, 2024
Messages
1
Hi everyone. For anyone working on open hardware vector network analyzers, I'd like to put in a plug for the open source VNA software library, libvna, available in python or C. It runs on Linux, Windows and MacOS. The library supports extensive VNA calibration including SOLT, TRL, TXYZ (a.k.a "unknown through"), as well as the others: LRL, TRM, LRM, LXYZ, LRRM, etc. If it doesn't have a specific solver for the calibration, it uses a general solver -- all that's necessary is that there is a sufficient number of calibration conditions. It supports 8, 12 and 16 error term models. It can optionally model measurement and connection non-repeatability errors. The library has full conversion routines between S, Y, Z, H, G, A (ABCD), B (inverse ABCD), T (scattering transfer) and U (inverse scattering transfer) parameters. It loads and saves Touchstone v1 and v2 file formats as well as a more general space-separated value .npd (network parameter data) format.

From python3:
pip install libvna

Python documentation is here: Welcome to libvna’s Documentation — libvna documentation There are extensive examples in the docs.
Python/Cython source is here: GitHub - scott-guthridge/pylibvna: Vector Network Analyzer Module for Python3
C source is here: GitHub - scott-guthridge/libvna: Vector network analyzer 8, 10, 12 and 16-term calibration, generalized parameter conversion and touchstone file load/save

There is definitely some overlap with scikit-rf, but we've taken fairly different approaches and I believe that this library is complementary to that one. Please try it out and let me know what you think.
 
Top