Sunday 26 October 2014

rf - S-parameter bi-section for deembedding


I've recently come to suspect the effects of connectors on my measurements. I'm looking at several different ways of de-embedding their effects from measurements that I take with a network analyzer (20-30 GHz).


Here's the thru board I'm trying to deembed So Beautiful!!!!


I have 3 questions


1)Is S-parameter Bi-section a reasonable way to see the S-parameters for the DUT using measured data?


2) Given a T-matrix, Y-matrix, and Z-matrix method for solving for the symmetrical matrices, which produces the best result?



3) Given solving for a T-matrix, which of the 4 possible solutions should be used?


First Here's some background reading


Here are my doubts1 as well as here. These links discuss that with real data, S-parameter bisection the process begins to break down with excessive noise and other parasitics. Additionally, if insertion and return loss are too high the results are also inaccurate. Finally with the equations themselves there are several assumptions about symmetry that could ruin the results if symmetry is not kept.


I feel that the assumption of symmetry should work well with just 2 connectors and a trace, and insertion loss and return loss should be reasonable. I'm not sure if real world measurement noise would be an issue


Second, when I look at link 1, the method for bisection differs from 2 and 3. The methods introduced are using T-matrices, Y-matrices, and Z-matrices. Which of these produce the best result?


Finally after assuming that T-matrices (check out link 1) would work the best, I started solving the equations


[[T11,T12], [T21,T22]] * [[T22,T21],[T12,T11]] =  [[T11f,T12f],[T21f,T22f]]

after expanding this ( and assuming T12 = T21) out I get


T11f = T11*T22 + T12^2 

T12f = 2*(T11*T12)
T21f = 2*(T22*T12)
T22f = T11*T22 + T12^2

Solving for T12 (second equation) I get


T12  = T12f/(2*T11)

Solving for T22 (third equation)


T22 = T21f/(2*T12)


Finally plugging those into the first equation and solving for S11, I get


T11 = (T11f-T12^2) / T22
T11 = (T11f - T12f^2/4T11^2)/(T21f*T11/T12f)

This reduces down to


T11^4 - (T12f*T11f/T21f)*T11^2 + (T12^3/(4*T21f)) = 0

when I solve this equation I get 4 possible answers. Which should I use?


EDIT *****


I found this link that suggests an easy way to do things is to switch to abcd matrices, then to take the square root. here's some sample code I made using python



import numpy as np
import nport
import scipy
from nport import touchstone

// I imported some files that were saved in a matlab format
// the names are freq and new_data
new_n = nport.NPort(np.array(freq),np.array(new_data),nport.S,50)
abcd2 = new_n.convert('ABCD')


print(abcd2)
new_abcd = []
for i,value in enumerate(abcd2):
if not i:
print("START HERE!!!")
print(value)
holder = scipy.linalg.sqrtm(value)
if not i:
print(holder)
print(holder.dot(holder))


new_abcd.append(holder)


newest_n = nport.NPort(np.array(freq),np.array(new_abcd),nport.ABCD)

half = newest_n.convert('S', 50)


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...