Network Analysis

This is an open group. Sign in and click the "Join Group" button to become a group member and start posting.

Free S-parameter Embedding and De-embedding Tool


This free LabVIEW tool allows to

  • embed, de-embed and view 2-port S-parameter blocks saved as S2P (Touchstone) files
  • extract 2-port S-parameter blocks in-between two calibration planes based on 3-term or 10/12-term error coefficient files
  • extract a 2-port S-parameter block in-between a calibration plane and the location where a Short, Open and Load are connected based on S1P files and an XML-based calibration kit file

No assumptions are made with respect to the underlying VNA.

Embedding & De-embedding (and S2P Viewer)

This tool allows to read two S2P (Touchstone) files and to cascade (embed) these 2-port S-parameter blocks.

Alternatively, one can de-embed a specified S-parameter block at either input or output using a second S-parameter block.

The resulting 2-port S-parameters can be saved into a S2P file.

The tool can also be used to read a S2P file and visualize the S-parameters.

The tool comes with example S2P files of a bandpass filter and a couple of 3 dB pads.

Embedding and Deembedding - 1.jpg

Cal-Based (De)embed Extraction

Starting from version 1.1, this tool also allows to extract two 2-port S-parameter (de)embedding blocks starting from two sets of 10-term or 12-term error model coefficients.

Alternatively, one can specify two sets of 3-term error model coefficients (corresponding to one-port calibrations) to extract one 2-port S-parameter (de)embedding block.

The 12-term error model coefficients are assumed to be stored using the following readable format: frequency(Hz) e00 e11 e10e01 e30 e22 e10e32 e33' e22' e32e23' e03' e11' e23e01'

where the first six error coefficients correspond to the forward error adapter and the last six to the reverse error adapter.

The complex-valued error coefficients are assumed to be stored as either re,im or re im (real and imaginary part either separated by one or more spaces or a comma).

As part of the extraction, only e00, e11, e10e01, e33', e22' and e32e23' are used.

In case of a 3-term error model, the file should contain: frequency(Hz) e00 e11 e10e01

The required 12-term error model coefficient file can be generated starting from a .chx file (holding NI-VNA calibration and configuration information) using the

"Extract And Save Correction Factors from NI 5632" tool, which can be downloaded too below.

Alternatively these 12-term error model coefficient files can be generated by the user.

Example 12-term and 3-term error model coefficient files are included as part of the tool.

The example below is based on a two-port calibration performed at "Cal Plane 1" and another two-port calibration performed at "Cal Plane 2".

A 3 dB attenuator is inserted between "Cal Plane 1" and "Cal Plane 2" at Port 1 side, while a cable of about 20 cm and two adapters are inserted at Port 2 side.

The resulting 2-port S-parameters at Port 1 are shown and correspond to those of the 3 dB attenuator.

Furthermore the estimated delay (of S21) is shown for both 2-port S-parameter blocks.

The structures in-between the calibration planes are assumed to be reciprocal (S21 = S12).

Port 1 of the 2-port S-parameter blocks are located at the "Cal Plane 1" side.

Embedding and Deembedding - 2.jpg

SPar-Based (De)embed Extraction

Next, it is also possible to extract the reciprocal two-port S-parameter block in between a calibration plane and the location where a Short, Open and Load are connected.

For this purpose one has to provide a set of S1P files, holding the measurement of the Short, Open and Load and a cal kit (using the XML format of the .ccf file generated

by a NI-VNA in case of a user-defined calibration kit). One also has to specify the gender of the calibration elements which are connected.

Example S1P files and an example .ccf file are included as part of the tool.

Normally the NI-VNA does not take an offset loss into account as part of the calibration element model.

However, the tool allows to add a "Loss1GHz" token (after the "OffsetLength" token) as done in the example "SMP CalKit.ccf" file.

A current limitation of the tool is that it assumes the load to be ideal (Load model not yet read from the .ccf file).

The example below shows the measurement of a female SMP Short, Open and Load connected to the SMP side of a 2.92 mm (m) - SMP (m) adapter.

The extracted S-parameters shown below correspond to those of the adapter, where Port 1 is located at the "Cal Plane" side.

Furthermore the estimated delay (of S21) is shown of the structure which again is assumed to be reciprocal (S21 = S12).

Embedding and Deembedding - 3.jpg

Extract Correction Factors from NI-VNA

A helper tool (code kindly contributed by Andy Hinde) is provided to generate the required 12-term error coefficient files starting from a .chx file,

which contains NI-VNA calibration and configuration information. Unfortunately the tool requires NI-VNA hardware to be available to upload the .chx file.

One has to provide the NI-VNA resource name, the full path of the .chx file (which will be uploaded to the NI-VNA) and the full path for the resulting 12-term error coefficient file.

Extract Correction Factors from NI 5632.jpg

Notes: The Code is provided As Is. It has not been tested or validated as a product, for use in a deployed application or system, or for use in hazardous environments. You assume all risks for use of the Code and use of the Code is subject to the Sample Code License Terms which can be found at:



This example was created using LabVIEW 2012 (and tested using both LabVIEW 2012 SP1 and LabVIEW 2013).

Users can download either the full LabVIEW code or a stand-alone Windows 32-bit executable.

The latter assumes that SSE2 instructions are supported and requires the 32-bit LabVIEW 2012 Run-Time Engine, which can be downloaded from the National Instruments website.

Both come with example S2P, S1P, user-defined calibration kit, 12-term and 3-term error coefficient files.

Known Limitations

  • For the time being, only 2-port S-parameter blocks are supported and both set of S-parameters must be defined on exactly the same frequency grid.
  • In case of S-parameter-based (de)embedding extraction, the Load is assumed to be ideal (no model information read from the specified .ccf file, opposed to the Short and Open).

Version History

06/05/2013 - Ver 1.0 Initial Release

07/19/2013 - Ver 1.0.1 Small bug fix (2-port S-parameters now saved as a single line in Touchstone format)

12/05/2013 - Ver 1.1 Adding (de)embedding extraction capability (starting from a pair of error coefficient files or from a set of Short, Open and Load S1P files)

Message 1 of 1
This is an open group. Sign in and click the "Join Group" button to become a group member and start posting.