微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微波和射频技术 > 电磁仿真讨论 > Implementing NIST Multiline TRL

Implementing NIST Multiline TRL

时间:03-31 整理:3721RD 点击:
Hello all,

I've run into a bit of a pickle with my implemention of the NIST's Multiline TRL (as introduced by R. B. Marks). I've followed the method detailed in DeGroot et al "Multiline TRL Revealed", but for some reason I cannot seem to get the error-box wave-cascading-matrices X and Y solved properly.

I've reasoned that inv(X)*Mthru*inv(Y) (Eq. 1), where X and Y are the aforementioned WCM matrices and Mthru is measured (well... in this case simulated) wave-cascading-matrix representation of the Thru calibration standard. Now, as I understand it, (Eq.1) should produce (after converting to S parameters)

S11 = S22 = 0 and
S12 = S21 = 1.

I've got the S11/S22 part nearly to zero, but it's the S12/S21 I have some problems with. The absolute values of these S parameters are quite near to 1, but the phase is not a constant zero as it should. Instead, there's a linear (in frequency) phase shift.

The reference plane on the measured S parameters is set to the middle of the Thru, as I believe it should.

I would be eternally grateful for any ideas on what could possibly be wrong with my implementation. Feel free to ask questions about my implementation, and I will answer to the best of my knowledge.

Thanks in advance!

Hi MTBer;

I suppose it has been quite a while since you have posted your question, but I will respond anyways.

Let us clarify a few points before delving into specific implementation details.

It seems that you test your algorithm on simulated standards currently. May I ask what is the length of your THRU standard (is it a 0-length THRU?). According to your observations, I may deduce that your THRU might be non-zero length and lossless, which explains consistent magnitude S-parameter data and non-zero insertion phase.

Should my reasoning turns out to be wrong and if you feel the need, I will be watching this topic.

Regards.

Hi electrocag,

And thank you for your reply. Fortunately, I have indeed managed to solve the issue I was having some time ago (I did change my approach on the subject quite considerably).

The issue was that I was expecting the Eq. 1 that I mentioned in my first post to produce the network (or S) parameters of a zero-length transmission line (and hence zero insertion phase). The idea of the matrix inverses in the Eq. 1 is to "peel away" or remove one half of the non-zero length thru-standard from both ends, thus effectively leaving us with a "zero-length" thru-standard. So yes, the simulated thru-standard that we used was non-zero length, but Eq. 1 should produce zero-length (lossless) thru-standard.

However, for reasons I don't quite remember anymore, what I got was the network parameters of a non-zero length transmission line, implying the error-box representations X and Y were incorrect. I guess they were effectively incorrect length, as removing their effect by multiplying the thru-standard's WCM matrix with inv(X) and inv(Y) as in Eq. 1, the length of the resulting transmission line was non-zero. Unfortunately, I really don't remember what was the cause or the remedy for this, as we changed our approach rather profoundly after some further problems.

We do have now a working implementation of multiline-TRL calibration, but if anyone else happens to run to the same problems we had, I'm afraid I'd not be much of help there.

Hello MTBer,

I am looking for an implementation of NIST multiline-TRL calibration method and I read that you got it working. I'm using such method to do post measurements de-embedding, but at the moment I'm using WinCal XE for that. So I'd like to kindly ask you whether you could share such implementation of yours? Where is it done? MATLAB? Agilent ADS? something else? Regards

Hello dangel,

Our implementation is done in Matlab. Unfortunately, I cannot post our implementation directly, but, if you have access to IEEE Xplore, I may direct you to an excellent paper describing a NIST Multiline implementation. The paper can be found here: http://ieeexplore.ieee.org/xpls/abs_...=1218696&tag=1

Our implementation closely follows the procedure described in the linked publication. What I can personally do to help you, is to point out that there seems to be a typo in equation 48: in the numerator, the second term of the first summation term should be exp(-gamma ( l_n - l_com ) ), instead of exp(-gamma ( l_m - l_com ) ). Also, we found the procedure 6 of determining the correct eigenvalues unreliable, at least in our cases, and currently we basically choose the correct eigenvalue based on which one results in a positive real part to the gamma*dl (there may or may not be better ways to do this, however).

I hope this helps!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top