skrf.calibration.deembedding.IEEEP370_MM_ZC_2xThru

class skrf.calibration.deembedding.IEEEP370_MM_ZC_2xThru(dummy_2xthru, dummy_fix_dut_fix, name=None, z0=50, port_order='second', bandwidth_limit=0, pullback1=0, pullback2=0, side1=True, side2=True, NRP_enable=True, leadin=1, verbose=False, *args, **kwargs)[source]

Creates error boxes from a 4-port from 2x-Thru and FIX-DUT-FIX networks.

Based on [I3E370].

A deembedding object is created with 2x-Thru (FIX-FIX) and FIX-DUT-FIX measurements, which are split into left (FIX-1_2) and right (FIX-3_4) fixtures with IEEEP370 Zc2xThru method.

When Deembedding.deembed() is applied, the s-parameters of FIX-1_2 and FIX-3_4 are deembedded from FIX_DUT_FIX network.

This method is applicable only when there is 2xThru and FIX_DUT_FIX networks.

The possible difference of impedance between 2x-Thru and FIX-DUT-FIX is corrected.

Note

The port_order =’first’, means front-to-back also known as odd/even, while `port_order`=’second’ means left-to-right also known as sequential. `port_order`=’third’ means yet another numbering method. Next figure show example of port numbering with 4-port networks.

The scikit-rf cascade ** 2N-port operator use second scheme. This is very convenient to write compact deembedding and other expressions.

numbering diagram:

port_order = 'first'
     +---------+
    -|0       1|-
    -|2       3|-
     +---------+

port_order = 'second'
     +---------+
    -|0       2|-
    -|1       3|-
     +---------+

port_order = 'third'
     +---------+
    -|0       3|-
    -|1       2|-
     +---------+

use Network.renumber to change port ordering.

Example

>>> import skrf as rf
>>> from skrf.calibration import IEEEP370_MM_ZC_2xThru

Create network objects for 2xThru and FIX-DUT-FIX

>>> s2xthru = rf.Network('2xthru.s4p')
>>> fdf = rf.Network('f-dut-f.s4p')

Create de-embedding object

>>> dm = IEEEP370_MM_ZC_2xThru(dummy_2xthru = s2xthru,
                         dummy_fix_dut_fix = fdf,
                         bandwidth_limit = 10e9,
                         pullback1 = 0, pullback2 = 0,
                         leadin = 0,
                         name = 'zc2xthru')

Apply deembedding to get the DUT

>>> dut = dm.deembed(fdf)

Note

numbering diagram:

 FIX-1_2  DUT      FIX-3_4
 +----+   +----+   +----+
-|1  3|---|1  3|---|3  1|-
-|2  4|---|2  4|---|4  2|-
 +----+   +----+   +----+

Warning

There is one difference compared to the original matlab implementation [I3E370]:

  • FIX-2 is flipped (see diagram above)

References

Parameters:

port_order (str)

Methods

__init__

IEEEP370_MM_ZC_2xThru De-embedding Initializer

deembed

Perform the de-embedding calculation

split2xthru