Tuesday, December 31, 2019

VNA: Notes on the 12-Term Error Model

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:

Ed:  Directivity Error (from the "output" signal leaking into the "reflected" path via the directional coupler).

Er:  Reflection Tracking Error (from differences between Test and Reference paths).

Es:  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]:

  • e00 is equivalent to Ed, the Directivity Error.
  • e11 is equivalent to Er, the Reflection Tracking Error.
  • e10e01 is equivalent to Es, the Source Match Error.

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

(1)  Γ = (ΓM - e00)/(ΓMe11 - Δe), where Δe = e00*e11 - (e10e01)     [Rytting, VNA Error Models]

M is the measured Gamma, and Γ is the actual Gamma).

 So, if we know e00, e11, 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 e00, e11, 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 known Gammas.  This will give us three Γ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 e00, e11, and Δe.  But first we need to transform equation (1), above, into the following three linear equations:

(2)  ΓM1 = e00 + Γ1ΓM1e11 - Γ1Δe

(3)  ΓM2 = e00 + Γ2ΓM2e11 - Γ2Δe

(4)  ΓM3 = e00 + Γ3ΓM3e11 - Γ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 e00, e11, and Δe.  These equations, in turn, will give us the value of e00, e11, and Δe that we can plug into equation (1).

Solving for e00, e11, 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 e00, e11, 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 (C0-3 for the Open, L0-3 for the Short, and RL 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.  ZT 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 ZT (the lumped-element impedance of the Standard's termination) which we can then substitute into the equation for ΓT, below.

ΓT = (ZT - Zr)/(ZT + Zr)

Determining ZT for SOL Standards :

So...how does Keysight specify ZT for their SOL standards?  Let's take a look:

1.  Open ZT 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:

Copen = C0 + C1*f + C2*f2 * C3*f3

and therefore:

ZT(open) = -j/(2πfCopen)

2.  Short ZT 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:

Lshort = L0 + L1*f + L2*f2 * L3*f3

and therefore:

ZT(short) = j2πfLshort

(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 ZT Definition:

My HP 8753C VNA assumes the load standard always has an impedance of equal to Zr (i.e. ZT(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 ZT(load) so that it no longer equals Zr.

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 S11M, S21M, S12M,  and S22M., 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 e00, e11, and Δe(Port1).  Then, from these three values, calculate e10e01, given that e10e01 = e00*e11 - Δ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'23e'32. (given e'23e'32 =  e'33e'22 - Δe(Port2)). 

3.  Connect Load terminations to both Port 1 and Port 2 of the VNA and measure S21M. and S12M.   The Isolation term e30  equals S21M, and the Isolation term e'03 equals S12M.

4. Connect ports 1 and 2 together and measure S11M and S21M.  e22 and  e10e32 can now be calculated from the following two equations:

(9)    e22 = (S11M - e00)/(S11Me11 - Δe(Port1))

(10)    e10e32 = (S21M - e30)*(1 - e11e22)

5.  With the ports still connected, measure S22M and S12M. Calculate e'11 and  e'23e'01:

(11)    e'11 = (S22M - e'33)/(S22Me'22 - Δe(Port2))

(12)    e'23e'01 = (S12M - e'03)*(1 - e'22e'11)

Important Note:  These corrections assume that the THRU connection used in step 3, above, is a zero-length 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). 

But often a THRU is not zero length.  More on this topic in the next blog post, here: 


8753D User Guide – Chapter 6:  Note note regarding Thru length.  Also equations and drawings.

Rumiantsev, VNA Calibration IEEE Mag June 2008 page 86:  Models use similar nomenclature to HP. 

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.

Thursday, December 5, 2019

A 500 Watt HF PA, Part 8: Complete Schematics

This is the last post in my series of posts describing my 500 watt HF PA project:

In this post I have gathered all of the schematics that were scattered across the previous posts.

But first, the block diagram, for reference:

And now, Schematics!

PA Assembly:

LPF Assembly:

Power Supply and Supervisory Circuitry (and Fan Control):

T/R Switching and Output Directional Coupler:

Front Panel and Controller Assembly:

Back Panel and Interconnects:

That's it!  The other posts in this series are here...

K6JCA HF PA Posts:

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.

A 500 Watt HF PA, Part 7: Back Panel, Interconnects, and Miscellaneous

This post is the seventh post in my series describing my 500 watt HF power amplifier project:

In this post I will describe the back panel, the various interconnecting cables, and any other miscellaneous topics that come to mind:

Here's a shot of the Back Panel:

And the its other side...

Back Panel Schematics:

There's really only one circuit on the back panel, and it is for the connectors to control the PA.  Here is its schematic:

My FPGA-SDR transceiver uses the RJ-45 connector (shielded!) to control the PA.  If I want to use the PA with a different receiver/transmitter combo (or transceiver), I've included a traditional RCA jack for the T/R conrol.

The diode to the RCA blocks any positive DC voltage that might be on the RCA jack's T/R signal so that it does not blow up my control circuitry.

Interconnect Cables Schematics:

The various assemblies within the PA require cables to interconnect them.  These cables are shown in the two schematics, below:


(Control cables with one end soldered to a board are not shown in the drawing, above.  Instead, they are shown on the appropriate schematic).




Some time ago I decided to standardize on using the carcasses of old HP gear for my project builds.  You can see an example of this here with my Automatic ATU, FPGA-SDR transceiver, and ancillary equipment (apart from the Tek scope and microphone):

For this project I chose another HP chassis, but while trying to fit the switching power supplies, the PA, LPF, Supervisory, T/R Switching, and other assemblies into it, I realized I had created a "blivet."

What is a "blivet"?  It's what you get when you try to squeeze 10 pounds of manure into a five pound bag.

The Blivet-to-be...

(Shown with an analog Vdd supply that I later discarded for switchers).

Back to the drawing board, or, in this case, a search of my attic, where I found another chassis.  At the time it seemed a little too large (but in hind sight the size is perfect!).  And, best of all, it was essentially a "virgin" HP chassis -- there were neither holes nor labels on the front panel.

In other words, apart from some holes in a back panel, it appeared unused.

Where did it come from?  I suspect a local HP engineer (this area is where HP started, after all) decided to use the chassis for a project but did not get too far with it.  Later it must have appeared at the local swapmeet where I picked up, long ago in the dim past.

Here is that HP chassis, now containing my new PA...

I had to purchase a 12"x12" 0.1" thick aluminum plate (from OnlineMetals) upon which I mounted  the various assemblies.

And I had to drill (and, for the bottom cover, punch) holes for ventilation:

But apart from that, the mechanical build was relatively painless.

And the case even included these very convenient carrying handles!

Overall weight of the entire Power Amplifier is about 27 lbs.

And that's it for miscellaneous topics and this blog post!    Continue on to the other posts in this series via the links, below...

K6JCA HF PA Posts:

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.