Custom made low pass filter using s parameters does not function as expected

I am trying to implement a low pass filter in INTERCONNECT using electrical s parameters. Here is a screen shot where I was trying to test the step response:

However, the step response is not as what I expected:

even though ideally I would want something like this:

with step response:

I tried to test the electrical s parameter block with ENA and the transmisssion (gain) seems to be fine:

Self diagnostics of the electrical s parameter block shows similar result. I am confused why wouldn’t this custom low pass filter function as the built in RC low pass filter even though the transfer function is correct.

I do admit in the s2p file I only specified the S21 terms because I only care about the transmission. Could this be the problem? Can you help me figure this out?

Here is the INTERCONNECT file and the .s2p file I was using. Please change the extension of second file into .s2p before using it. I did this because I cannot upload .s2p file format. I have also attached the matlab file from which I write the .s2p file.

transfer_function_test.icp (164.9 KB)
EAM_S.txt (4.5 MB)
EAM_hw_generator.m (1017 Bytes)

I think you need to increase the range of frequency in the input s-parameters file (.s2p). Because the phase response of S21 keeps decreasing after the 80 GHz frequency.

I increased the range of frequency from 80GHz to 800GHz, but still the step response is rather strange.

The ENA is still fine but the self diagnostics starts to ill behave:

Did you manage to solve the problem by doing so?

I tried it now but it didn’t work. To my understanding, the s-parameters are fitted to a digital filter and the type of this filter is determined from the window function. So, I tried to play around with the number of coefficient of the filter. This didn’t solve the problem too. Although increasing the number of coefficients makes the Abs of the response more accurate, the phase response of the filter is far different from the desired one.

Here I am sharing with you the step response for different number of coefficients:

Hi @z_zhang and @aya_zaki,

The problem is not in the number of frequency points, the frequency resolution is not bad at all and the frequency domain analysis result is normal. I haven’t played around with it much, but I think the problem is related to, as @aya_zaki suggested, the digital filter used in the S-Parameter element. The digital filter is the step filter used in time domain calculation (the settings are in the Numerical tab), and to get accurate time domain response, the number of taps of this filter and the sample rate of the system (minimum time step) need to be carefully adjusted.

I haven’t managed to get a perfect response for the filter yet by playing around with these parameters. By far the best result I got is linked below, with a overshoot and some oscillations at the beginning, and that is definitely related to the number of taps of the filter to find the steady state.

Please try to play around with these parameters and let me know your progresses :slight_smile:

1 Like

The plots you and @aya_zaki generated have the same features when the step kicks in, that is the slope of the curve seems to gradually increase. This feature is persistently present no matter how you adjust the filter window function, which is clear from the graph @aya_zaki generated:

Here you can see that the ideal result looks significantly differently from the other curves (as in the slope should be gradually decrease). Increasing the number of taps does not make the result converge to the ideal case.

I did manage to generate curve with the correct time constant by setting the number of taps to be 2048. But as you can see, the shape of the curve is inverted:

How do I fix this?

EAM_S.txt (922.0 KB)
transfer_function_test.icp (5.3 MB)

Hi @z_zhang,

I dug up a bit in the files and found that the imaginary part of S21 is negative in the s-parameter file. I changed it to absolute value and now the time signal seems normal.

I do’t totally understand the science behind this but I think this might be a problem between the transfer function and s-parameter conversion. Please try the new file and let me know whether this is what you want. EAM_S2.txt (461.1 KB)


It seems this is a bug? The imaginary part of the transfer function of a RC low pass filter should be negative.

Negating the imaginary part does solve the problem:

Please let me know if you find an explanation of this or whether this will be fixed in the future version.

Hi @z_zhang,

Indeed I think the transfer function of a simple RC low pass filter S21 imaginary part should be negative. However here what you need is the scattering parameter (s-parameter) instead of the direct transfer function. I am not so sure about this but I think if you have all other transmissions set to 0 (S11, S12 & S22) for other port combinations and the load impedance matches the reference impedance, generally the transfer function H(f)/H(w) and S21 would be the same. But there are totally more science behind this and I will search for some background information online and follow up with you.