Non standard de-embedding using sylvester equations

Question asked by jlawrence6809 on Jul 17, 2013
Latest reply on Jul 17, 2013 by jlawrence6809
I'm doing a school project with a vector network analyzer and gathering data on four adapters which I'll call a,b,c,d. I am hooking the adapters up in the configurations a-c-b and a-d-b which gives the resultant 2x2 matrices of s parameters that I'll call s and t. I know the s parameters for c and d but not a and b, and it is my goal to solve for them. So the resulting equations look like the following when I put them into t parameter form:
+[s] = [a][c][b]+
+[t] = [a][d][b]+
The left size is data and the right side is unknowns AND data. They are all 2x2 matrices.

Multiplying the first equation by the inverse of the second cancels [b] and I get the following equation:
([s]/[t])[a] = [a]([c]/[d])
Since I'm solving for [a] this equation is equivalent to the special sylvester equation:
[A][X]=[X][B]

Which has been discussed previously in the matlab forums in this thread:

They give the following matlab code:
%
n = length(A);
G = kron(eye(n),A)-kron(B.',eye(n));
x = null(G)
%

To see if the equations given in this thread would work for me I created dummy values for [a],[b],[c], and [d], used them to solve for [s] and [t], and used them with the equations given to see if they would give me back [a]. The matlab code is the following:

%initial values
a =[2, 3;5, 7];
b =[11 , 13;17 , 19];
c =[23 , 29;31 , 37];
d =[41 , 43;47 , 53];
%setup
s = av*c*b;
t = a*d*b;
A = s/t;
B = c/d;
%calculate
n = length(A);
G = kron(eye(n),A)-kron(B.',eye(n));
x = null(G)
%

I do not however get the expected result for [a]! Is it a problem of not having an initial value or something like that? I have a few more measurements I could make to introduce an initial value but from there I'm not sure how to combine these equations.
Thanks!