S-parameter interpolator

Click here to go our main page on temperature variable attenuators

Click here to go to our page on S-parameters

Click here to go to our page on linear interpolation in Microsoft Excel

New for August 2022: On our message board, Julien shows us an easy way to interpolate S-parameters using scikit-rf. Thanks! You can follow what we proposed on this page using Microwave Office, or use the scikit solution. Here's how it works, according to Julien:

I can't resist to show how to do perform the same with only 3 lines of Python using the scikit-rf package:

import skrf as rf
# Data from MTVA Series
# https://www.smithsinterconnect.com/products/rf-mw-mmw-components/resistive-components/thermopad%C2%AE/
ns = rf.NetworkSet.from_dir('MTVA0100N03')
# reference temperatures (from filenames alphabetical order)
temperatures = [125, 25, 55, -55]  # degC
# interpolated Network at 0 degC
ntwk_interp = ns.interpolate_from_network(temperatures, 0)

# to check, plot it: 0°C is in between -55°C and 25°C
ns.plot_s_db(m=1, n=0)  # S21
ntwk_interp.plot_s_db(m=1, n=0, label='Interpolated @ 0°C')

Doing the same from a MDIF file would be even easier, as then the temperature parameter would be directly included into the dataset. scikit-rf now knows how to read MDIF and use the named parameters defined within for interpolating networks.

You will find more info and doc about scikit-rf here : http://scikit-rf.org/

New for June 2022. How many times have you tried to construct a system model that predicts performance over temperature, but you only had "point" data for some of the components, like S-parameter data at -55C, 25C and 85C temperature points and your temperature spec is different from that range? Here's how to predict performance at any temperature between the point data. You're welcome! 

You'd think that you could construct a MDIF file with temperature point data, and Microwave Office or Keysight ADS could interpolate between the point data.  We don't have ADS, but in MWO that does not seem possible. So, let's construct our own intepolator!

The schematic below uses Smiths' Thermopad data at -55C, 25C and125C. This is measured, de-embedded data on a "Thermopad" with 6 dB nominal attenuation and negative 0.005 dB/dB/C temperature variation. Go to this page to see why you need to know what a Thermopad is.

Ideal couplers interpolate between the temperatures. They feed the point data with voltage proportional to the temperature difference. The closer you are to 25C, the more voltage is driven through the 25C data, capiche?  We added a "state switch" so that data would be interpolated between -55C and 25C, then between 25C and 125C, but you could simplify this method if you interpolated between just the extreme points. Why be lazy?

Here are the equations we set up. A lot of aggravation is caused by Microwave Office not allowing values of infinity. More on that later. At the top is the "state test".  If temperature is in the lower range, ideal switches connect the signal through the lower couplers, and if it is in the upper range, the signal goes through the upper couplers.

If you are right exactly at the point temperatures, we fudged the coupling so that -40 dB goes to the wrong S-parameter block. It is not a big deal, and it fixes the problem of converting 0 voltage to a dB value.

Here is a temperature sweep block, from -55C to 125C by 10 degrees.

Now let's run the circuit and generate some plots. Here are sweeps across frequency for our interpolation (in purple) versus the point data (the other colors). Of course, the interpolated data lands right on top of the point data when the swept temperature lines up but check out how nice it looks at temperatures in between.  If you don't agree that is awesome, please go to RFCafe for your future microwave needs and tell them Steve sent you away in shame.

Let's not forget about phase... here is S21 on a Smith chart, plotted from 10 to 10.1 GHz at the same temperatures.  Looks well behaved!


Does this work for active circuits, across voltage or what not? Why wouldn't it? Send us some active data and we'll test it out!

If the explanation on this page is confusing, let us know and we will address any concerns...

Author : Unknown Editor