Given the high price of calibration standards for VNA's, some time ago I thought I'd make my own BNC and N-connector standards for my HP 3577A and 8753C VNAs.

At the frequencies that interest me (0 - 30 MHz), imperfections in homebrew Short and Open standards are usually insignificant. And the Load standard's resistance can often simply be checked at DC with a good 4-wire ohm meter.

But I wanted to see how high in frequency I could use these standards before their imperfections began to significantly affect measurements.

So, I used a set of homebrew standards to calibrate my 8753C and then ran a T-Check verification on the calibration.

The results were less than spectacular. But there were several possible causes for these poor results. Of course, my homebrew standards could be junk -- that was certainly one possibility. But another possibility had to do with the Calibration Coefficients pre-programmed into the 8753C.

The 8753C contains pre-programmed Calibration Coefficients for various calibration kits supplied by HP (e.g. 7mm, N, and 3.5mm cal kits). Using the 8753C's menus, the user selects which HP cal kit will be used for calibration, and the VNA will automatically know the physical characteristics of the standards in that kit (e.g. offset-delay, fringe-capacitance, etc.).

But suppose one is using home-brew standards? The Calibration Coefficients need to accurately reflect the properties of the Short, Open, Load, and Thru (SOLT) standards of the selected cal kit. If they do not, then calibration of the VNA becomes meaningless.

If the 8753C's calibration coefficients did not match the

*actual*values of my standards, then the calibration itself could be a source of the poor T-Check performance I was seeing.

Fortunately, HP allows a user to modify the Calibration Coefficients. But what should my entries be?

There was a lot I did not understand. So I thought I'd explore how Calibration standards are characterized as well as how VNA measurements are error-corrected.

For me, exploration means notes. This blog post is foremost a collection of notes to myself.

First, a look at the error-correction of S11 "Reflection" measurements...

__Correcting One-port VNA Measurements:__Per the literature, there are typically three system errors involved when making one-port S11 (Reflection Coefficient) measurements. These errors are:

E

_{d}: Directivity Error (from the "output" signal leaking into the "reflected" path via the directional coupler).

E

_{r}: Reflection Tracking Error (from differences between Test and Reference paths).

E

_{s}: Source Match Error (the mismatch in impedance between the VNA's test port and its source).

These errors are also known as the "Error Adapter Coefficients" of the one-port measurement system, as shown in the following Signal Flow Graph [Keysight, 1-port Calibration]:

Different authors call these three errors by different names, but they are the same errors. Here's another example of the Signal Flow Graph. The figure is the same, but the names are different [Rytting, VNA Error Models]:

where:

- e
_{00}is equivalent to E_{d}, the Directivity Error. - e
_{11}is equivalent to E_{r}, the Reflection Tracking Error. - e
_{10}e_{01}is equivalent to E_{s}, the Source Match Error.

Using Signal Flow Graph rules, the following equation can be derived from the graph [a good exercise, see here, here, and here]:

(1) Γ = (Γ

_{M}- e

_{00})/(Γ

_{M}e

_{11}- Δ

_{e}), where Δ

_{e}= e

_{00*}e

_{11}- (e

_{10}e

_{01}) [Rytting, VNA Error Models]

(Γ

_{M}is the

*measured*Gamma, and Γ is the

*actual*Gamma).

So, if we know e

_{00}, e

_{11}, and Δ

_{e}, we can use equation (1) to correct for the system errors and calculate our one-port DUT's

*actual*Gamma (Γ) from its

*measured*Gamma (Γ

_{M}).

(By the way, DUT mean Device-Under-Test) .

The error-terms e

_{00}, e

_{11}, and Δ

_{e}are found during the calibration process. Here is how that is done...

__Three unknown errors require three equations.__We find the three error terms by making S11 measurements of three different one-port standards with

**Gammas. This will give us three Γ**

*known*_{M}measurements.

The impedances of these three one-port standards can be anything, as long as they are

__well defined__, but typically a Short (ideally, Gamma = -1), an Open (ideally, Gamma = 1), and a Load (ideally, Gamma = 0) are used.

Then, with the

*known*Gammas of the three standards and their three

*measured*Gammas, we should be able to calculate e

_{00}, e

_{11}, and Δ

_{e}. But first we need to transform equation (1), above, into the following three linear equations:

(2) Γ

_{M1}= e

_{00}+ Γ

_{1}Γ

_{M1}e

_{11}- Γ

_{1}Δ

_{e}

(3) Γ

_{M2}= e

_{00}+ Γ

_{2}Γ

_{M2}e

_{11}- Γ

_{2}Δ

_{e}

(4) Γ

_{M3}= e

_{00}+ Γ

_{3}Γ

_{M3}e

_{11}- Γ

_{3}Δ

_{e}

Now we have three linear equations -- one for the measurement of each of the three standards.

We can then transform these three equations to give us three new equations for e

_{00}, e

_{11}, and Δ

_{e}. These equations, in turn, will give us the value of e

_{00}, e

_{11}, and Δ

_{e}that we can plug into equation (1).

__Solving for e___{00}, e_{11}, and Δ_{e}:But transforming these three equations is a tedious task if done by hand! Fortunately, MATLAB and its Symbolic Math Toolbox can save us the manual effort and derive the three equations for us. (Note: in the following equations, I've replaced the Greek characters with English alphabet letters and abbreviations).

% One-port VNA Calibration, k6jca % % Find the equations for the three error terms: e00, e11, and delta_e % Derived from the equations in: % Network Analyzer Error Models and Calibration Methods, % by Doug Rytting, Agilent Technologies % G1 = Actual Gamma of Standard 1 % G2 = Actual Gamma of Standard 2 % G3 = Actual Gamma of Standard 3 % Gm1 = Measured Gamma of Standard 1 % Gm2 = Measured Gamma of Standard 2 % Gm3 = Measured Gamma of Standard 3 syms G1 G2 G3 Gm1 Gm2 Gm3 e00 e11 d_e [e00,e11,d_e] = solve(e00+e11*G1*Gm1-d_e*G1 == Gm1,... e00+e11*G2*Gm2-d_e*G2 == Gm2,... e00+e11*G3*Gm3-d_e*G3 == Gm3,[e00,e11,d_e])

(5) e00 = (G1*G2*Gm1*Gm3 - G1*G3*Gm1*Gm2 - G1*G2*Gm2*Gm3 + G2*G3*Gm1*Gm2 + G1*G3*Gm2*Gm3 - G2*G3*Gm1*Gm3)/(G1*G2*Gm1 - G1*G2*Gm2 - G1*G3*Gm1 + G1*G3*Gm3 + G2*G3*Gm2 - G2*G3*Gm3) (6) e11 = -(G1*Gm2 - G2*Gm1 - G1*Gm3 + G3*Gm1 + G2*Gm3 - G3*Gm2)/(G1*G2*Gm1 - G1*G2*Gm2 - G1*G3*Gm1 + G1*G3*Gm3 + G2*G3*Gm2 - G2*G3*Gm3) (7) d_e = -(G1*Gm1*Gm2 - G1*Gm1*Gm3 - G2*Gm1*Gm2 + G2*Gm2*Gm3 + G3*Gm1*Gm3 - G3*Gm2*Gm3)/(G1*G2*Gm1 - G1*G2*Gm2 - G1*G3*Gm1 + G1*G3*Gm3 + G2*G3*Gm2 - G2*G3*Gm3)

Equations (5), (6), and (7), above, will give us our error terms, which we can then plug into equation (1) to calculate actual Γ from measured Γ.

__Defining the Gammas of the Three Standards:__As I mentioned above, ideally the Short has a Gamma of -1, the Open a Gamma of 1, and the Load a Gamma of 0. But rarely are the Short, Open, and Load standards ideal. Often their impedances (as measured at the VNA's calibration reference plane) differ from the ideal.

Is this "deviation from ideal" a problem? No -- any three Gammas can be used -- the only criteria is that they be "known" (i.e. well defined). If we know the actual Gammas of the standards, we can solve for e

_{00}, e

_{11}, and Δ

_{e}.

And fortunately, the manufacturers of quality standards (such as Keysight) characterize these imperfections in their standards for us.

Let's take a look at Keysight's models for their Open, Short, and Load standards...

__Models for Reflection-Calibration Standards:__The model of Keysight's one-port calibration standards is shown below [Keysight, Modifying Calibration Kit].

The green box on the right represents the "lumped-element" implementation of the actual standard (C

_{0-3}for the Open, L

_{0-3}for the Short, and R

_{L}for the Load), and the three "offset" terms define the small amount of distance (modeled as a transmission line, for coaxial-cable systems) between the "Calibration reference plane" at the standard's connector and its actual "lumped-element" implementation.

Let's delve more deeply into this model. Below is another look at the basic structure I've just described. Z

_{T}is the actual impedance of the "lumped-element" implementation of the standard, and the transmission line (with loss and delay) connects this lumped-element impedance to the standard's calibration reference plane at its connector [Keysight, Specifying Calibration Standards].

Keysight has created a Signal Flow Graph of this model:

Note that:

Γ

_{i}is the standard's Gamma, measured at its Calibration Reference Plane.

Γ

_{T}is the Gamma of the standard's "lumped-element" impedance.

e

^{(-γ*length)}is the "transmission line" model of the one-way delay and attenuation of between the standard's calibration reference plane at the connector and its "lumped-element" impedance load.

Note that there are two e

^{(-γ*length)}delays in the model. The "top" delay is the forward path from the standard's connector to the load, while the "bottom" delay is the delay of the reflection from the load back to the connector.

The γ in the exponent equals α + j*β and represents both loss (e

^{(-α*length)}and delay (e

^{(-jβ*length)}). So the exponential term can also be expressed as:

(8) e

^{(-γ*length)}= e

^{(-(α+jβ)*length)}=e

^{(-α*length)}*e

^{(-jβ*length)}

Keysight has conveniently derived the equation for Γ

_{i}(Gamma at the Standard's connector), as well as Γ

_{1}and Γ

_{T}used in Γ

_{i}'s calculation

Note that to use this equation to calculate Γ

_{i}, we need to know Zc (to calculate Γ

_{1}), Γ

_{T}, α*length, and β*length (the latter two because γ*length = α*length + β*length).

Γ

_{T}is calculated using the lumped-element parameters Keysight supplies with each of its standards (more on this, below).

And for Zc, α*length, and β*length, we can use the following equations, using the published "offset" parameters with which Keysight defines its standards [Keysight, Modifying Calibration Kit]:

For reference, Keysight defines these "offset" parameters to be:

__Offset Delay:__

For a one-port Reflection standard, this is the one-way propagation time (in seconds) from the measurement plane to the standard.

For a Thru standard, this is the one-way propagation time (in seconds) from the measurement plane at one end of the Thru to the measurement plane at the other end.

__Offset Loss:__

Energy loss due to the Transmission Line's skin effect, specified in Ohms/Second at 1 GHz. Keysight notes that, for many applications, setting this value to zero won't result in significant errors.

__Offset Zo:__

Per Keysight,"The offset impedance between the standard to-be-defined and the actual measurement plane. Normally, this is set to the system's characteristic impedance."

We are almost done, but to finish the calculation of Γ

_{i}we still need to determine Γ

_{T}, which requires that we first determine Z

_{T}(the lumped-element impedance of the Standard's termination) which we can then substitute into the equation for Γ

_{T}, below.

Γ

_{T}= (Z

_{T}- Z

_{r})/(Z

_{T}+ Z

_{r})

__Determining__

__Z___{T}**:**

__for SOL Standards__So...how does Keysight specify Z

_{T}for their SOL standards? Let's take a look:

__1. Open__Z

_{T}

__Definition:__

A perfect open, with no delay, would have a Γ

_{T}equal to +1.

However, in practice, the Open's fringe capacitance at its open end can cause a frequency-dependent phase shift. This capacitance is defined as a frequency-dependent third-degree polynomial in terms of C0, C1, C2, and C3, as follows:

C

_{open}= C0 + C1*f + C2*f

^{2}* C3*f

^{3}

and therefore:

Z

_{T(open)}= -j/(2πfC

_{open})

__2. Short__Z

_{T}

__Definition:__

A perfect short, with no delay, would have a Gamma equal to -1.

However, in practice, the Short's inductance can cause a frequency-dependent phase shift. This inductance is defined as a frequency-dependent third-degree polynomial in terms of L0, L1, L2, and L3, where:

L

_{short}= L0 + L1*f + L2*f

^{2}* L3*f

^{3}

and therefore:

Z

_{T(short)}= j2πfL

_{short}

(Note that in Network Analyzers such as the HP 8753C, the pre-programmed cal kit parameters within the machine assume L0, L1, L2, and L3 have insignificant effect and thus all four are set to 0.

__3. Load__Z

_{T}

__Definition:__

My HP 8753C VNA assumes the load standard always has an impedance of equal to Z

_{r}(i.e. Z

_{T(load)}= 50 + j0, and therefore Γ

_{T(load)}= 0, for a 50-ohm system). I don't know if other Keysight VNA's allow one to change Z

_{T(load)}so that it no longer equals Z

_{r}.

Note, though, that some other network analyzer programs, such as NanoVNA-Saver (for the NanoVNA) do allow you to set a load's resistance to other values (and possibly add inductance to its impedance calculation, too).

__One-Port Calibration Summary:__In conclusion, a one-port calibration involves the S11 measurement of three standards whose Reflection Coefficients have all been pre-defined.

From these three S11 measurements, three error terms can be calculated, which, when combined with DUT's S11 measurements, should result in an essentially error-corrected S11 value for the DUT.

__Correcting Two-port VNA Measurements:__One common error-correction method for a

**two-port**VNA involves 12 error-terms.

Three error-terms correct the S11 measurement for Directivity, Source-Match, and Reflection Tracking errors at Port 1 (as described above) .

Three more error-terms correct the S22 measurement at Port 2 (same calculations as the S11 correction, but using three error-terms derived from SOL measurements at Port 2).

Two new error-terms correct for isolation errors (feed-through between Port 1 and Port 2). One error is the isolation from Port 1 to Port 2, and the other is the isolation from Port 2 to Port 1.

And four new error-terms correct for Transmission Tracking errors and opposite-port Load Match errors when a 2-port DUT is connected to both ports of the VNA.

__12-Term Error Model:__Below is a model of the Error terms, from the HP 8753D User's Guide:

And, per the HP 8753D User's Guide, the equations below, using the 12 error-terms, will correct the full two-port S-Parameter measurements:

__Different Names, Same 12-term Model...__As with the one-port model, the two-port model can be expressed with a different nomenclature, as Doug Rytting does in his presentation: [Rytting, VNA Error Models]. I'll use Rytting's terms for much of this post, rather than the terms defined in the HP 8753D Manual's model.

Rytting's model is identical to the model described in the 8753D manual with the exception of a change in error-term nomenclature (the similarity in model is not surprising, given that Doug Rytting co-authored "A System for Automatic Network Analysis" in the February, 1970 issue of the

*Hewlett Packard Journal*)

Each of the two model's above has six error terms, for a total of twelve error terms. If we can determine the values of these twelve error terms, we can correct the errors in our two-port S-parameter measurements using the following equations:

So...how do we determine the values of the twelve error terms?

__Determining the 12 Error Terms:__(Note: I've labeled the S-parameter measurements below as S

_{11M}, S

_{21M}, S

_{12M}, and S

_{22M}., where the 'M' in the subscript means their "measured" value).

Per Rytting [Rytting, VNA Error Models], the calibration steps to find these 12 error terms are:

1. Using the one-port formulas discussed, above, calibrate Port 1 with the three S.O.L. standards and calculate the Forward Model's e

_{00}, e

_{11}, and Δ

_{e(Port1)}. Then, from these three values, calculate e

_{10}e

_{01}, given that e

_{10}e

_{01}= e

_{00*}e

_{11}- Δ

_{e(Port1)}.

2. Again, using the one-port formulas, now calibrate Port 2 with the three S.O.L. standards and calculate the Reverse Model's e'

_{33}, e'

_{22}, and Δ

_{e(Port2)}. Then calculate e'

_{23}e'

_{32}. (given e'

_{23}e'

_{32}= e'

_{33}e'

_{22}- Δ

_{e(Port2)}).

3. Connect Load terminations to both Port 1 and Port 2 of the VNA and measure S

_{21M}. and S

_{12M}. The Isolation term e

_{30 }equals S

_{21M}, and the Isolation term e'

_{03}equals S

_{12M}.

4. Connect ports 1 and 2 together and measure S

_{11M}and S

_{21M}. e

_{22}and e

_{10}e

_{32}can now be calculated from the following two equations:

(9) e

_{22}= (S

_{11M}- e

_{00})/(S

_{11M}e

_{11}- Δ

_{e(Port1)})

(10) e

_{10}e

_{32}= (S

_{21M}- e

_{30})*(1 - e

_{11}e

_{22})

5. With the ports still connected, measure S

_{22M}and S

_{12M}. Calculate e'

_{11}and e'

_{23}e'

_{01}:

(11) e'

_{11}= (S

_{22M}- e'

_{33})/(S

_{22M}e'

_{22}- Δ

_{e(Port2)})

(12) e'

_{23}e'

_{01}= (S

_{12M}- e'

_{03})*(1 - e'

_{22}e'

_{11})

**These corrections assume that the THRU connection used in step 3, above, is a**

__Important Note:__**THRU (such as you would get, for example, if connecting an APC-7 cable to another APC-7 cable, or a male connector to a female connector).**

*zero-length*But often a THRU is

*zero length. More on this topic in the next blog post, here:*

**not**https://k6jca.blogspot.com/2020/01/vna-notes-on-thru-standard-de-embedding.html

__References:__**Network_Analyzer_Error_Models_and_Calibration_Methods, Rytting**: 1. Uses e00 etc. to name the error terms. 2. Does not give equations for solving for e00, e11 and e10e01 (but he does for e22 and e10e32). 3. Mentions the 4 steps for determining the 12 error terms. No de-embedding of Thru.

**Time-domain thru-reflect-line (TRL) calibration errorassessment**: Nice drawings of FWD and REVERSE models (page 7).

**Effect of Loss on VNA Calibration Standards, Monsalve**: Good recapitulation of HP’s lossy-standard equations (i.e. equation for gamma, etc – see Keysight’s “Specifying Calibration Standards and Kits”).

**Schreuder – DeEmbed Manual**: Good source of equations, but note error. Also, I don’t think he properly de-embeds the thru standard. Includes Thru standard de-embedding (some equations might have errors).

**HP Journal 1970-02**: Note that the equations (author Hand) use the e00 terminology. Note: does not de-embed the thru (assumed to be ideal).

**Improved RF Hardware and Calibration Methods, Rytting**: Recapitulation of error terms using ‘e’ nomenclature (e.g. e00). Does not give equations for solving for e00, etc. But does introduce “bilinear transform’ for expressing the equation for S11m. No de-embedding of thru.

**Modifying Calibration Kit Definition**: Compact summary of the Reflection Model of Standards. Note equation for Offset Loss. (Need to compare to equation in other HP app note).

**Error Correction in Vector Network Analyzers, DG8SAQ**: Uses Moebius transform in lieu of the bilinear transform mentioned above (Rytting, Improved RF Hardware and Calibration Methods).

**Applying Error Correction to Network AnalyzerMeasurements, Agilent (app note 1287-3)**: Summary of 2-port error correction but with error term nomenclature Ed, Es, Ert, etc.

**Keysight, Specifying Calibration Standards and Kits, 5989-4840EN**: Good model of 1 port standard. Also note equations for alpha and beta based upon offset_delay, offset_loss, etc.

**MiniCircuits -- Calibration Standards and the SOLTMethod, AN49-017**: Models of 1 port standards (but not thru). Note equations use tanh. And also Zc and gamma*length equations.

**Agilent, Specifying Calibration Standards for the 8510, 5956-4352**: Two port model in terms of Esf, Edf, Erf, etc. Note method of determing Ceff for open (page 10).

**Keysight, Modifying Calibration Kit Definition**: (Good) Models, and definition of terms, for Reflection Standards and Transmission Standard (i.e. Thru). And note that Thru’s normally considered to be “zero length”

**Keysight, In-FixtureMeasurements Using Vector Network Analyzers, 5968-5329**: (Good) Describes how to characterize Short, Open, and Load standards. (Note: Characterizing an Open’s fringing capacitance only necessary above about 300 MHz). Also interesting Cal fixture w/zero-length Thru.

__Standard Caveat:__I might have made a mistake in my designs, schematics, equations, models, etc. If anything looks confusing or wrong to you, please feel free to leave a comment or send me an email.

Also, I will note:

This design and any associated information is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without an implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.