scikit-rf
scikit-rf copied to clipboard
determining line impedance with scikit-rf
I came across scikit-rf today and am wondering if it already has the built in functionality to extract the characteristic impedance of an unknown transmission line for which I have s-parameter data. The basic way I would measure this is:
- Terminate the far end of the line in a short and measure the input impedance, call that Zshort.
- Terminate the far end of the line in an open and measure the input impedance, call that Zopen.
- Calculate Z0,line = sqrt(Zshort*Zopen).
- Sanity check that plotting the result vs frequency gives something that is relatively constant or not moving much with frequency.
With lab measurements that can work fairly well if you don't get too near integer multiples of a quarter wavelength where the measurement of Zshort and Zopen gets tricky.
So what I'm wanting to do is essentially make this determination starting with s-parameter data that is either measured or simulated. To complicate things a little, what I'd really like is to do this on say a 12-port file where I have 3 differential transmission lines so 6 mixed-mode ports or 12 single ended ports. I've been able to load a .s12p
file and convert to mixed mode with something like:
line = rf.Network("myfile.s12p")
# no need to reorder as ports 1/2 are a pair, 3/4 are a pair, etc already.
line.se2gmm(p=6)
I can plot my mixed-mode s-parameters, but haven't figured out how to do the open/short calculations in the context of scikit-rf to be able to determine even/odd mode characteristic impedance of the lines. Any suggestions? Thanks -Dan
obviously this requires z0 for the s-parameter measurement to be known. 810labs has a closed form solution to that problem (which gives both Zl and Gamma(mostly!)) . i am not aware of a open-source closed form solution, but there certainty could be. i would look into dielectric characterization algorithms.
if you want to test it, you can send me the s-parameters and i can send back results.