先ほど求めたパラメータp0とp2を用いれば、数値的には以下のようになります。
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)
これで、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
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; }
このプログラムの出力は:
% ./a.out (0.670893,-0.394757)(1.32911,0.394757)(0.382787,-0.4107)(19.1394,-20.535) (-0.329108,-0.394756)3.1148
Z(DUT)からVSWRを求めるのには、スミスチャートを用いることもできます。