Hands-on vector network analysis with a NanoVNA#
An open, computational learning module on S-parameter measurement and calibration. You derive the error model of a vector network analyzer (VNA), simulate it, and calibrate real measurements taken with a low-cost NanoVNA.
The guiding idea is coding to learn, not learning to code: the code is the means to understand the measurement, not the goal.
Status
Version 0.9. The material is complete but has not yet been used in a classroom. Corrections and reports of use are welcome on GitHub.
Who it is for#
Undergraduate students in biomedical engineering (instrumentation and electronics courses).
Undergraduate students in electronic or telecommunication engineering (introduction to RF and measurement).
Self-learners: master’s and final-year project students, and practitioners starting out with a NanoVNA.
You need sinusoidal steady-state circuits (phasors, complex impedance) and basic Python with NumPy and Matplotlib. You do not need any previous RF course, and you do not need the instrument: every lesson runs on simulated data or on real measurements included with the module.
Allow 10 to 14 hours for the whole module.
The lessons#
Lesson |
You will learn to… |
|
|---|---|---|
00 |
explain incident and reflected waves, define S-parameters, and say what a VNA measures that other instruments do not |
|
01 |
convert between Γ and Z, read the Smith chart, and recognise a circuit from its trace |
|
02 |
identify directivity, source match and reflection tracking, and predict what each distorts |
|
03 |
solve the short–open–load system, correct a real measurement, and know what calibration does not fix |
|
05 |
quantify repeatability, use passivity as a physical test, and record a traceable result |
Work through them in order: each one uses the previous. Lesson 04, on acquiring your own measurements with a NanoVNA, is optional and not yet available.
How to use this book#
Reading is not enough. Each lesson is a Jupyter notebook, and it asks you to predict what a piece of code will show, run it, and then read the explanation. The pages of this book show the notebooks already executed, which is convenient for reading and revising, but the learning happens when you run them yourself:
Use the rocket icon at the top of any lesson to open it in Binder or Google Colab. Nothing to install.
Each lesson ends with questions to check your understanding (answers one click away) and with open exercises. Worked solutions to the exercises are in this book; try each exercise before you read its solution.
If you teach#
The instructor guide has a session plan, notes on each lesson and a summative assignment, and there is a rubric to mark it.
Licence and citation#
The code is released under the BSD 3-Clause licence. The text, figures and data are released under Creative Commons Attribution 4.0 International (CC BY 4.0).
If you use the module, please cite it with the metadata in
CITATION.cff.
The real measurements come from the research repository
nanovna-calibration
(doi:10.5281/zenodo.22722703).