Derivation of the expression for the unknown impedance in an s21 series through measurement arrives at the following expression:
\(Zu=(Zs+Zl)(\frac{1}{s_{21}}-1)\).
The diagram above is from (Agilent 2009) and illustrates the configuration of a series-through impedance measurement.
It is commonly assumed that Zs+Zl=100Ω, as is done in (Agilent 2001). That might be a reasonable assumption if the VNA correction scheme corrects source and load mismatch, but let’s consider the NanoVNA-H running NanoVNA-D v1.2.29 (Apr 2024) firmware (the current release).
It is good practice to validate a measurement system by measuring a known component. Let’s measure a 200Ω 1% resistor that measures 200.23Ω at DC (it is actually 2 x 0806 100Ω 1% resistors in series.
Above is the test setup, the SDR-kits test board fixture was SOLIT calibrated 1-31MHz using the parts shown at centre of the pic. The fixture is shown with a 200Ω 1% DUT that measures 200.23Ω at DC.
Above is a screenshot from the NanoVNA-H measuring the SMD resistor that measures 200.23Ω at DC. The red and green traces use the internal feature to transform an S21 measurement into series thru impedance. The measured value of 204.9-j2.042Ω is significantly different to the expected 200.23Ω.
Above is a plot of calculated DUT assuming the Zs+Zl=100Ω (as does the screenshot above). The measured values are significantly different to the expected 200.23Ω.
NanoVNA-D v1.2.29 does not correct source and load mismatch, and that is probably the main cause of the apparent error.
Lets turn the measurement around, if we measure some known impedance Zk, we can calculate Zs+Zl:
\(Zs+Zl=\frac{Zu}{(\frac{1}{s_{21}}-1)}\).
#import the network nws21k=rf.Network(name+'-S21k.s2p') zu=(50+50)*(1/nws21k.s[:,1,0]-1) zk=200.23 #precision measurement of DUT resistor at DC #calculate zs+zl using zu=(zs+zl)(1/s21-1) and zu=zk zs_zl=zk/(1/nws21k.s[:,1,0]-1)
Above is a snippet of code in Jupyter to import the network and calculate the value of zs_zl (Zs+Zl) inferred by the s21 measurement of the DUT.
Above is a plotting of calculated zs_zl impedance components, real and imaginary, or R,X.
Conclusions
- The analysis here is specific to a NanoVNA-H v3.3 running NanoVNA-D v1.2.29.
- The formula often given and implemented for transformation of a series through s21 measurement to impedance depends on an assumption that source and load ports have zero mismatch error (eg that any mismatch is corrected).
- NanoVNA-D v1.2.29 does not correct source and load mismatch.
References
- Agilent. Feb 2009. Impedance Measurement 5989-9887EN.
- Agilent. Jul 2001. Advanced impedance measurement capability of the RF I-V method compared to the network analysis method 5988-0728EN.