Were some parameters more important than others, and which could be ignored if measuring, say, below a certain frequency?

Some googling took me to this Keysight application note, Specifying Calibration Standards and Kits for Keysight Vector Network Analyzers, and its terminated transmission-line one-port model for SOL (Short, Open, Load) standards:

From this model and a set of givens, Keysight has derived the application note's equation 1.4, shown below:

How do we use this equation? First, we need to look at how cal-kit standards are defined...

__Specifying a Calibration Kit's Open and Short Standards:__Keysight specifies its Open and Short cal-kit standards using the following parameters:

Open:

- C0 (Farads(e-15))
- C1 (Farads(e-27)/Hz)
- C2 (Farads(e-36)/Hz^2)
- C3 (Farads(e-45)/Hz^3)
- (Offset) Delay (Sec)
- (Offset) Loss (Gohm/Sec)
- (Offset) Zo (Ohm)

- L0 (Henries(e-12))
- L1 (Henries(e-24)/Hz)
- L2 (Henries(e-33)/Hz^2)
- L3 (Henries(e-42)/Hz^3)
- (Offset) Delay (Sec)
- (Offset) Loss (Gohm/Sec)
- (Offset) Zo (Ohm)

__Applying Equation 1.4:__Solving equation 1.4 requires calculating Γ

_{T}, Γ

_{1}, and e

^{-2γl}. Let's first look at finding Γ

_{T}.

__1. Calculating Γ__

_{T}:First, recognize that Γ

_{T}for the Open and the Short standards is calculated as follows:

For an Open standard:

Γ

_{T}= (Zopen - Zr)/(Zopen + Zr)
Zopen = -j/(2πf*(C0 + C1*f + C2*f

^{2}+ C3*f^{3}))Similarly, for a Short standard:

Γ

_{T}= (Zshort - Zr)/(Zshort + Zr)
Zshort = j2πf*(L0 + L1*f + L2*f

^{2}+ L3*f^{3})So Γ

_{T}for either the Open or the Short is easily calculated.

__2. Calculating Γ__

_{1}and e^{-2γl}:From the app note's equations, we know:

So, using the supplied-values and the formulas, above, we can calculate α

*l*, β

*l*, and Zc, from which we can then calculate γ

*l*(which we can then plug into e

^{-2γl}) and Γ

_{1}.

This, then, gives us all the values we need to solve the app note's equation 1.4.

__Simplifying the Model...__Keysight's equation 1.4 is a fairly complex equation. I was wondering...for the frequencies used, for example, by the NanoVNA (up to 900 MHz "stock" and 1500 MHz "modified"), how important are the various parameters?

That is, could we ignore some of the parameters? Simplify the model?

If we

*that we are working at frequencies in which loss is negligible (i.e. α essentially equals 0), and if we assume Zc = Zr (i.e. Γ*

__assume___{1}= 0), then equation 1.4 reduces to:

Γ

_{i}= e^{-2jβl}Γ_{T}Note that β has units of radians/meter and

*l*has units of meters. Therefore β

*l*has units of radians (of delay). And the factor of 2 in the exponent represents, from the perspective of the standard's input, a wave first traveling the distance

*l*down the line, and then its reflection traveling back that same distance, for a total travel-distance of 2

*l*.

But -- the delays of SOL standards are typically defined in terms of time (e.g. picoseconds), not length. How do we convert this equation into one that is a function of time?

First, recognize that β = 2π/λ (where λ is the wavelength, in the transmission-medium, at the frequency of interest -- i.e. λ = c*VF/f, where c is the speed-of-light (m/s), VF is the Velocity Factor (unitless), and f is frequency in cycles-per-second). Thus λ's units are meters/cycle.

Making this substitution for lambda into the equation for beta, we get:

β = 2πf/(c*VF)

Now, note that if the transmission-medium's relative

*permeability*is 1, then VF = 1/√ε

_{r}, where ε

_{r}is the relative permittivity of the transmission-medium.

We can now rewrite the equation for beta as:

β = (2πf√ε

_{r})/cThus:

β

*l*= (2πf√ε_{r})*l*/cNext, note that the Keysight app note (referenced above) defines "Offset-delay" as:

offset-delay = √ε

_{r}*l*/ c (Keysight's equation 1.5)Substituting this into our equation for β

*l,*we get:

β

*l*= 2πf*(offset-delay)_{i}, expressed in terms of β

*l,*becomes (when expressed in terms of frequency and offset-delay):

Γ

_{i}= e^{-2j(2πf)*(offset_delay)}Γ_{T}So now we can calculate Γ

_{i }in terms of frequency, the specified offset-delay, and Γ

_{T}using a much simpler equation to solve than equation 1.4!

**An even Simpler Model:**In the simplified model, above, I tossed out Keysight's "Offset Loss" and "Offset Zo" parameters by assuming loss is 0 and Offset Zo equals Zr (thus Γ

_{1}= 0).

Can I simplify the model even further?

Let's assume that, for the Open model, only C0 is important at our frequencies of interest (e.g. up to 900 MHz). Thus, I'll set C1, C2, and C3 to 0.

And let's also assume that the Short model's inductance terms (L0, L1, L2, and L3) can all be set to 0 -- in other words, the actual short is modeled as an ideal short.

Now the model is

*very*simple. But have I simplified it too far?

Let's run some calculations and compare the models, using values from actual Keysight cal-kits...

__Comparing the Models:____Matlab Code to Perform the Comparisons:__

Here's my Matlab code for calculating gamma for my simplified models and for Keysight's complete ("full") model, per the equations, above.

% ************************************** % Comparison of VNA Cal-Standard Models % ************************************** clear % First -- Cal standard values from Rune's v0.0.8 python code: % C0 = 50e-15; % C1 = 0; % C2 = 0; % C3 = 0; % Delay_Open = 0; % Loss_Open = 0; % Offset_Zo_Open = 50; % % L0 = 0; % L1 = 0; % L2 = 0; % L3 = 0; % Delay_Short = 0; % Loss_Short = 9.99e20; % Offset_Zo_Short = 50; % % From Keysight Board Message for 85032B, per 8753C % C0 = 62e-15; % C1 = 17e-27; % C2 = 28e-36; % C3 = 0; % Delay_Open = 17.544e-12; % Loss_Open = 0; % Offset_Zo_Open = 50; % % L0 = 0; % L1 = 0; % L2 = 0; % L3 = 0; % Delay_Short = 17.8e-12; % Loss_Short = 9.99e20; % Offset_Zo_Short = 50; % Now -- standards for 8753D from Keysight Website... % 85031B 7mm Cal Kit % C0 = 92.85e-15; % C1 = 0; % C2 = 7.2e-36; % C3 = 4.3e-45; % Delay_Open = 0; % Loss_Open = 0.7E9; % Offset_Zo_Open = 50; % % L0 = 0; % L1 = 0; % L2 = 0; % L3 = 0; % Delay_Short = 0; % Loss_Short = 2.1002e9; % Offset_Zo_Short = 50; % 85032B/E N Standards, Male, Keysight PNA85032B/E % % Std No. 2, Male Open % C0 = 62.14e-15; % C1 = -143.07e-27; % C2 = 82.92e-36; % C3 = 0.76e-45; % Delay_Open = 17.4e-12; % Loss_Open = 0.7E9; % Offset_Zo_Open = 50; % % % Std No. 3, Male Short % L0 = 0; % L1 = 0; % L2 = 0; % L3 = 0; % Delay_Short = 17.8e-12; % Loss_Short = 2.1002e9; % Offset_Zo_Short = 50.209; % % Std No. 5, Female Open % C0 = 119.09e-15; % C1 = -36.955e-27; % C2 = 26.258e-36; % C3 = 5.5136e-45; % Delay_Open = 0; % Loss_Open = 0.7E9; % Offset_Zo_Open = 50; % % % Std No. 6, Female Short % L0 = 0; % L1 = 0; % L2 = 0; % L3 = 0; % Delay_Short = 0.093e-12; % Loss_Short = 0.7e9; % Offset_Zo_Short = 49.992; % 85032F N Standards, Male, Keysight PNA85032F % % Standard 8, Male Open % C0 = 89.939e-15; % C1 = 2536.8e-27; % C2 = -264.99e-36; % C3 = 13.4e-45; % Delay_Open = 40.8563e-12; % Loss_Open = 0.93e9; % Offset_Zo_Open = 50; % % % Standard 7, Male Short % L0 = 3.3998e-12; % L1 = -496.4308e-24; % L2 = 34.8314e-33; % L3 = -0.7847e-42; % Delay_Short = 45.955e-12; % Loss_Short = 1.087e9; % Offset_Zo_Short = 49.992; % % Standard 2, Female Open % C0 = 89.939e-15; % C1 = 2536.8e-27; % C2 = -264.99e-36; % C3 = 13.4e-45; % Delay_Open = 40.117e-12; % Loss_Open = 0.93e9; % Offset_Zo_Open = 50; % % % Standard 1, Female Short % L0 = 3.3998e-12; % L1 = -496.4308e-24; % L2 = 34.8314e-33; % L3 = -0.7847e-42; % Delay_Short = 45.955e-12; % Loss_Short = 1.087e9; % Offset_Zo_Short = 49.99; % 85033D/E 3.5mm standards (per Keysight PNA 85033DE) % Open, Male C0 = 49.433e-15; C1 = -310.13e-27; C2 = 23.168e-36; C3 = -0.15966e-45; Delay_Open = 29.2e-12; Loss_Open = 2.2E9; Offset_Zo_Open = 50; % Short, Male L0 = 2.0765e-12; L1 = -108.54e-24; L2 = 2.1705e-33; L3 = -0.01e-42; Delay_Short = 31.8e-12; Loss_Short = 2.36e9; Offset_Zo_Short = 50; % % Open, Female % C0 = 49.433e-15; % C1 = -310.13e-27; % C2 = 23.168e-36; % C3 = -0.15966e-45; % Delay_Open = 29.2e-12; % Loss_Open = 2.3E9; % Offset_Zo_Open = 50; % % % % % Short, Female % L0 = 2.0765e-12; % L1 = -108.54e-24; % L2 = 2.1705e-33; % L3 = -0.01e-42; % Delay_Short = 31.8e-12; % Loss_Short = 2.36e9; % Offset_Zo_Short = 50; zr = 50; % reference impedance f = 900e6; % frequency % ***************************** % Calculations for Open Standard % ***************************** % First, calculate the Short's Gamma %assuming no Loss and Offset_Zo = 50 ohms. divisor = (2*pi*f * (C0 + C1*f + C2*f^2 + C3*f^3)); Zop = -1i / divisor; GammaOpen = ((Zop/50) - 1) / ((Zop/50) + 1); abs(GammaOpen); angle(GammaOpen)*180/pi; delayedOpenGamma = GammaOpen * ... exp(-1i*2*2*pi*f*Delay_Open); % Magnitude of Gamma rho_NoLoss_Open = abs(delayedOpenGamma) % Angle of Gamma (degrees) theta_NoLoss_Open = angle(delayedOpenGamma)*180/pi % Repeat open calculation, but make C1-C3 zero: divisor2 = (2 * pi * f * C0); Zop2 = -1i / divisor2; GammaOpen2 = ((Zop2/50) - 1) / ((Zop2/50) + 1); abs(GammaOpen2); angle(GammaOpen2)*180/pi; delayedOpenGamma = GammaOpen2 *... exp(-1i*2*2*pi*f*Delay_Open); rho_C0_Only_Open = abs(delayedOpenGamma) theta_C0_Only_Open = angle(delayedOpenGamma)*180/pi % Now, let's repeat the calculation for the % Open's Gamma, but now assuming loss and % specified Offset_Zo. % % Per equation 1.10 in Keysight's % "Specifying Calibration Standards % and kits for Keysight Vector Network Analyzers". al_op = ((Loss_Open*Delay_Open)/... (2*Offset_Zo_Open))*sqrt(f/1e9); Bl_op = 2*pi*f*Delay_Open + al_op; zc_open = Offset_Zo_Open +... (1-1i)*(Loss_Open/(4*pi*f))*sqrt(f/1e9); % From the givens of eq. 1.1: gammaEl_op = al_op + 1i*Bl_op; % Next, calculate a common exponential term... e2gammaEl_op = exp(-2*gammaEl_op); % Then applying to equation 1.4: % Now, calculate Gamma-sub-1 and Gamma-sub-i % (the latter equation 1.4 in Keysight doc. Gamma_1_op = (zc_open-zr)/(zc_open+zr); Open_Gamma_i = (Gamma_1_op*... (1-e2gammaEl_op-Gamma_1_op*GammaOpen)... +(e2gammaEl_op*GammaOpen)) / ... (1-Gamma_1_op*(e2gammaEl_op*Gamma_1_op +... GammaOpen*(1-e2gammaEl_op))); rho_FullModel_open = abs(Open_Gamma_i) theta_FullModel_open = angle(Open_Gamma_i)*180/pi % ***************************** % Repeat for the short Standard % ***************************** % First, calculate the Short's Gamma assuming % no Loss and Offset_Zo = 50 ohms. Zsh = 1i * (2*pi*f * (L0 + L1*f + L2*f^2 + L3*f^3)); GammaShort = ((Zsh/50) - 1) / ((Zsh/50) + 1); abs(GammaShort); angle(GammaShort)*180/pi; delayedShortGamma = GammaShort *... exp(-1i*2*2*pi*f*Delay_Short); % Gamma magnitude rho_NoLoss_Short = abs(delayedShortGamma) % Gamma angle (degrees0 theta_NoLoss_Short = angle(delayedShortGamma)*180/pi % Repeat short calculation, but make L0-L3 zero % (i.e. perfect short): GammaShort2 = ((0/50) - 1) / ((0/50) + 1); abs(GammaShort2); angle(GammaShort2)*180/pi; delayedShortGamma = GammaShort2 *... exp(-1i*2*2*pi*f*Delay_Short); rho_PerfectShort = abs(delayedShortGamma) theta_PerfectShort = angle(delayedShortGamma)*180/pi % Now, let's repeat the calculation for the % Short's Gamma, but now assuming loss and % specified Offset_Zo. % % Per equation 1.10 in Keysight's % "Specifying Calibration Standards % and kits for Keysight Vector Network Analyzers". al_sh = ((Loss_Short*Delay_Short)/... (2*Offset_Zo_Short))*sqrt(f/1e9); Bl_sh = 2*pi*f*Delay_Short + al_sh; zc_short = Offset_Zo_Short + ... (1-1i)*(Loss_Short/(4*pi*f))*sqrt(f/1e9); % From the givens of eq. 1.1: gammaEl_sh = al_sh + 1i*Bl_sh; % Next, calculate a common exponential term... e2gammaEl_sh = exp(-2*gammaEl_sh); % Then applying to equation 1.4: % Now, calculate Gamma-sub-1 and Gamma-sub-i % (the latter equation 1.4 in the Keysight app note. Gamma_1_sh = (zc_short-zr)/(zc_short+zr); Short_Gamma_i = (Gamma_1_sh*... (1-e2gammaEl_sh-Gamma_1_sh*GammaShort)+ ... (e2gammaEl_sh*GammaShort)) / ... (1-Gamma_1_sh*(e2gammaEl_sh*Gamma_1_sh + ... GammaShort*(1-e2gammaEl_sh))); rho_FullModel_short = abs(Short_Gamma_i) theta_FullModel_short = angle(Short_Gamma_i)*180/pi

rho_NoLoss_Open = 1.0000 theta_NoLoss_Open = -20.5147 rho_C0_Only_Open = 1.0000 theta_C0_Only_Open = -20.5231 rho_FullModel_open = 1.0000 theta_FullModel_open = -20.5163 rho_NoLoss_Short = 1.0000 theta_NoLoss_Short = 159.3679 rho_PerfectShort = 1 theta_PerfectShort = 159.3936 rho_FullModel_short = 0.9972 theta_FullModel_short = 159.2065

Note that the above block ends with the calculated values of Gamma for the 85033D/E Male SMA standards at 900 MHz.

__Comparison Results at 900 MHz:__

Here are the Matlab results for various cal-kit standards:

Notes:

1. The "Simple" model uses C0-C3 and L0-L3, but not (offset) Loss nor (offset) Zo (i.e. α essentially equals 0). Also, Zc is assumed to equal Zr (refer to Keysight equations).

2. The "Very Simplified" model is the "Simple" model but with C1-C3 and all the L terms zeroed-out.

3. The "Keysight" Model is the "full" model I've created using the equations in their app note.

4.The very last "cal kit" represents the NanoVNA's compensation, as gleaned by looking at its firmware (note that I set Loss to 0 ohms/S to force α to be 0).

__Conclusion:__

In the above results, the worst case Gamma differences between the "Full" and "Very Simplified" models, calculated at 900 MHz, are:

- rho (magnitude): Less than 0.003
- theta (degrees): Less than 0.2 degrees.

So, in my opinion, these differences are insignificant.

Note:To calculate the above values...

seconds_of_delay (one way) = angle (degrees) / 360 (degrees/cycle) / f (cycles/sec) / 2,

where the 2 represents the fact that the overall delay is two times the one-way delay. Thus the final calculated value is the one-way delay.

We can then calculate the equivalent length using this one-way delay value:

length (meters) = seconds_of_delay (sec) * speed_of_light (m/sec) * Velocity_Factor.

And here is another reason why I believe these errors to be insignificant...

Per Keysight, the electrical specifications of their 85033E cal-kit are:

Note that the Opens can have an error (from nominal) of +/- 0.55 degrees and the Shorts can have an error (from nominal) of +/- 0.48 degrees. My calculated error under 0.2 degrees is less than half of either of these errors (errors for which we usually do not compensate).

__Comparison Results at 1500 MHz:__

Some users have modified their NanoVNA firmware to support operation up to 1500 MHz. How important are the differences between the "Full" model's parameters and my "Very Simplified" model at this higher frequency limit?

Here's the data from the Matlab calculations:

As you can see, the worst-case Gamma angle-error of an Open (SMA, in this case) is about a quarter of a degree at 1500 MHz. This angle represents an equivalent one-way delay of about 0.24 picoseconds, or a length of 72 nano-meters, assuming a Velocity Factor of 1.

Again, fairly insignificant differences.

__Other Notes:__Similar equations can be found at these URL's:

Effect of Loss on VNA Calibration Standards, Raul Monsalve

One Port Direct/Reverse Method for Characterizing VNA Calibration Standards, Raul Monsalve, et al. (see Appendix at end of paper).

Calibration values for all the Keysight standards can be found here: Keysight Cal Kit Page

__Standard Caveat:__As always, I might have made a mistake in my equations, assumptions, drawings, or interpretations. If you see anything you believe to be in error or if anything is confusing, please feel free to contact me or comment below.

And so I should add -- this information is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.