numpy.ndarray, z_old: Union[numbers.Number, Sequence[numbers.Number], numpy.ndarray], z_new: Union[numbers.Number, Sequence[numbers.Number], numpy.ndarray], s_def: str = 'power') → numpy.ndarray[source]

Renormalize a s-parameter matrix given old and new port impedances

In the Parameters descriptions, F,N,N = shape(s).


This re-normalization assumes power-wave formulation per default. To use the pseudo-wave formulation, use s_def=’pseudo’. However, results should be the same for real-valued characteristic impedances. See the [1] and [2] for more details.

  • s (complex array of shape FxNxN) – s-parameter matrix
  • z_old (complex array of shape FxN, F, N or a scalar) – old (original) port impedances
  • z_new (complex array of shape FxN, F, N or a scalar) – new port impedances
  • s_def (str -> s_def : can be: 'power', 'pseudo' or 'traveling') – Scattering parameter definition : ‘power’ for power-waves definition, ‘pseudo’ for pseudo-waves definition. ‘traveling’ corresponds to the initial implementation. Default is ‘power’. NB: results are the same for real-valued characteristic impedances.


The impedance renormalization. This just calls

z2s(s2z(s,z0 = z_old), z0 = z_new)

However, you can see ref [1] or [2] for some theoretical background.

See also

method of Network to renormalize s

fix_z0_shape(), ssz(), z2s()


[1](1, 2)
    1. Marks and D. F. Williams, “A general waveguide circuit theory,” Journal of Research of the National Institute of Standards and Technology, vol. 97, no. 5, pp. 533-561, 1992.
[2](1, 2) Anritsu Application Note: Arbitrary Impedance,


>>> s = zeros(shape=(101,2,2))
>>> renormalize_s(s, 50,25)