Deembedding
- De-embedding
“De-embedding is a post-measurement process to minimize errors and reveal information about the device under test. When there is a composite measurement of a device under test or fixture combination, you can use de-embedding to isolate the performance of the fixture and extract (de-embed) the fixture from the measurements.”
“De-embedding is mathematically removing the measurements affected by the fixture leaving only the behavior of the device under test. This is commonly used when there are non-coaxial connection from the VNA to the DUT, and it is used on circuit board traces, backplane channels, semiconductor packages, connectors or other discrete components.”
-Andreas Henkel, Product Management for Network Analysis - Rohde & Schwarz
What this means in the context of our software is the following:
Say we have a circuit structure as follows:
+-------------------------------------------------+
| Sexternal |
| |
| +-------------+ |
| | Sinternal | |
| | ( )----------------------------( )
| | | : |
| | | : |
| | | : |
| | ( )----------------------------( )
| | | |
| | | +---------+ |
| | | | Deembed | |
| | | | | |
| | ( )-------( ) ( )--------( )
| | | : | | : |
| | ip | : | dpi dpe | : | ep
| | | : | | : |
| | ( )-------( ) ( )--------( )
| | | | | |
| +-------------+ +---------+ |
| |
+-------------------------------------------------+
Here we know the scatter matrices Sexternal (SE) and Deembed (SD), and we want to find the scatter matrix of the internal component: Sinternal (SI).
IntPorts = {dpi:ip, …} ExtPorts = {dpe:ep, …}
We may use the ‘deembed’ function in the rfCircuit object to solve for
+-------------+
| Sinternal |
| ( )
| |
| |
| |
| ( )
| |
| |
| |
| |
| ( )
| |
| ip |
| |
| ( )
| |
+-------------+
As an example we’ll use the TOMAS ICRH system again,
the strap of the antenna has been
measured
together with two pieces of TL, we can deembed it as follows:
A2Ca1_L = 0.1715
A2Ca1_Z = 50
T2Cs1_L = 0.121
T2Cs1_Z = 50
tsStrap = 'Tomas-Ref_geo-R=200-Diel_eps=0500.s2p'
strap = rfObject(touchstone=tsStrap, ports=['cap','t'])
if strap.fs[0] == 0.:
strap.fs[0] = 1e-3 # avoid divisions by 0 at 0 Hz in deembed
strap.deembed({'cap':(A2Ca1_L, A2Ca1_Z),
't' :(T2Cs1_L, T2Cs1_Z)})