I need to measure a 4-port device (a directional coupler) using a 2-port VNA. This answer covers the basics, and this document goes into more detail.

My problem is that I'm not sure how to perform the "matrix renormalization" step on page 10 of the NPL document. What calculations are required to convert the six raw VNA measurements (for example, the transmission measurement between ports 1 and 3 of the DUT), and the measured (complex) reflection parameters of the loads attached to the DUT ports, into the normalized 4 x 4 matrix?

  • \$\begingroup\$ try [this](Power Waves and the Scattering Matrix, IEEE Transactions on Microwave Theory and Techniques, Vol. 13, No. 2, Mar 1965, pp. 194-202) and this, and googling for 's parameter matrix renormalisation' \$\endgroup\$
    – Neil_UK
    Mar 6, 2018 at 14:52
  • \$\begingroup\$ @Neil_UK : Thanks, but I'm afraid my problem is at a more basic level. I understand why I need to renormalize, I don't know how to do it. If we just consider one frequency, I have 16 raw measurements (S11, S22, S33 ... S34, S43), and the four load impedances (Z1, Z2, Z3, Z4). What arithmetical operations do I need to perform on these numbers to calculate (say) the corrected S31 value? \$\endgroup\$
    – Tevildo
    Mar 6, 2018 at 15:45
  • \$\begingroup\$ Do you really NEED to do the renormalization? As you can see in the NPL document, "method 1" gets you within fractions of a dB of the right answer. Assuming you can find loads with a good match (say, -20dB), I would say method 1 is easily sufficient for the majority of applications. \$\endgroup\$
    – Selvek
    Mar 8, 2018 at 17:22
  • \$\begingroup\$ @Selvek : I need the S11 measurement (in particular) to be as good as reasonably practicable (without persuading management to invest in a 4-port VNA). Renormalization would seem to be the best way of compensating for the uncalibrated loads on UUT ports 3 and 4. \$\endgroup\$
    – Tevildo
    Mar 9, 2018 at 21:32

1 Answer 1


I've found the code I need on the scikit-rf site - specifically, renormalize_s (and associated functions) from http://scikit-rf.readthedocs.io/en/latest/_modules/skrf/network.html . This is Python code that uses numpy for the calculations.

For anyone else interested, this page describes how to perform the measurement using scikit-rf.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.