Impedance Measurement and Curve Fitting (4)

vectors2

If we evaluate numerically using the parameters p0 and p2 we have just obtained, we have:

vector(red)    = 1.0*cexp(i*0.0) = (1.0, 0.0)
vector(green)  = vector(red) = (1.0, 0.0)
vector(yellow) = 0.778415*vector(red)*cexp(i*-0.531850) = (0.670893, -0.394757)
vector(purple) = 2*vector(red)-vector(yellow) = (1.32911, 0.394757)

Now, we are ready to calculate the impedance of the DUT.

Z(DUT) = 50 ohm * vector(yellow) / vector(purple)   <-- because the current is the same.
       = 50 ohm * (0.670893, -0.394757) / (1.32911, 0.394757)
       = 50 ohm * (0.382787,-0.4107)
       = (19.1394,-20.535) ohm

Here is a short program to compute VSWR.

#include <complex>
#include <iostream>
using namespace std;
int main() {
 complex<double> x(0.670893, -0.394757);
 complex<double> y(1.32911 ,  0.394757);
 complex<double> rho;
 double vswr;
 cout << x << y << x/y << 50.0*x/y << endl;
 rho  = (x/y-1.0)/(x/y+1.0);
 vswr = (1.0+abs(rho))/(1.0-abs(rho));
 cout << rho << vswr << endl;
 return 0;
}

The output of the program is:

% ./a.out
(0.670893,-0.394757)(1.32911,0.394757)(0.382787,-0.4107)(19.1394,-20.535)
(-0.329108,-0.394756)3.1148

You can also use the Smith chart to get VSWR from Z(DUT).

smith1