skrf.calibration.deembedding.IEEEP370_SE_ZC_2xThru

class skrf.calibration.deembedding.IEEEP370_SE_ZC_2xThru(dummy_2xthru, dummy_fix_dut_fix, name=None, z0=50, 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 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) and right (FIX-2) fixtures with IEEEP370 Zc2xThru method.

When Deembedding.deembed() is applied, the s-parameters of FIX-1 and FIX-2 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.

The algorithm computes the length of the fixtures by halving the delay of 2x-Thru in time domain transmission. The propagation constant gamma is also determined from the 2xThru. It then peels the FIX-DUT-FIX time domain impedance profile iteratively in cycles of determining start impedance and deembedding a single time sample long transmission line.

Example

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

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

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

Create de-embedding object

>>> dm = IEEEP370_SE_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    DUT      FIX-2
 +----+   +----+   +----+
-|1  2|---|1  2|---|2  1|-
 +----+   +----+   +----+

Warning

There is one difference compared to the original matlab implementation [I3E370]: - FIX-2 is flipped (see diagram above)

References

[I3E370] (1,2)

https://opensource.ieee.org/elec-char/ieee-370/-/blob/master/TG1/IEEEP370Zc2xThru.m commit 49ddd78cf68ad5a7c0aaa57a73415075b5178aa6

Parameters:

Methods

COM_receiver_noise_filter

receiver filter in COM defined by eq 93A-20 As defined in 802.3-2022 - IEEE Standard for Ethernet annex 93A

DC

Advanced reflective DC point extrapolation.

NRP

Enforce the Nyquist Rate Point.

__init__

IEEEP370_SE_ZC_2xThru De-embedding Initializer

add_dc

Extrapolate a network to DC using interpolation for all S-parameters.

dc_interp

enforces symmetric upon the first 10 points and interpolates the DC point.

deembed

Perform the de-embedding calculation

extrapolate_to_dc

Extrapolate the network to DC using IEEE370 NZC algorithm.

getz

Compute step response to get the time-domain impedance from S-parameters.

makeErrorBox_v7

Extract the fixtures on both sides.

makeErrorBox_v8

Extract the fixture only on a single side.

makeStep

Make a time-domain step response from an impulse response.

makeTL

Compute the S-parameters of a transmission line.

peelNPointsLossless

Peel N points of the network on both side and return the corresponding error boxes.

plot_check_impedance

plot_check_residuals

shiftNPoints

Shift the whole network of N samples in time-domain.

shiftOnePort

Shift one port of the network of N samples in time-domain.

split2xthru

Perform the fixtures extraction.

thru

Create a perfect thru