あなたは被試験装置(DUT)、例えばあなたのアンテナ、のインピーダンスをそのデバイスに加えた正弦波の振幅と位相を観測することにより測定することができます。もちろん、測定は何らかの基準に対して行われるので、実際的にはあなたは2つの信号を同時に観測することになります。
例えばこの図では、あなたは赤色の信号を基準にして黄色の信号の振幅と位相を測定しようと思います。
詳細な議論については、私の頁Antennaを参照して下さい。
実際の測定は色々な方法で行うことができます。例えば、位相差を測定するために2つのゼロクロスポイント間でカーソルを手で動かすとか。ここでは、ROOTが備えるカーブフィッティング機能を用いた時にどうなるかを試してみようとしています。
短いC言語のプログラムを用いてテスト用のデータ・セットが生成されます。図では、黒色の丸と白色の丸とで表わされていて、赤色と黄色の曲線が得られた結果です。
% root -x mytest4.cc **************************************** Minimizer is Minuit / Migrad Chi2 = 2.09673e-08 NDf = 47 Edm = 4.1926e-08 NCalls = 121 p0 = 1.00001 +/- 4.08054e-06 p1 = 0.100001 +/- 3.45297e-07 p2 = 6.48313 +/- 8.9754e-06 **************************************** Minimizer is Minuit / Migrad Chi2 = 9.1854e-10 NDf = 47 Edm = 1.83714e-09 NCalls = 70 p0 = 0.500002 +/- 8.8495e-07 p1 = 0.1 +/- 1.29983e-07 p2 = 3.13999 +/- 3.40443e-06 root [1]
The parameters p0, p1, and p2 are the amplitude, the frequency, and the phase.
// file name = mytest4.cc { TGraph *g = new TGraph("myfile4a.dat"); g->SetMarkerStyle( 20 ); g->SetMarkerSize( 1.0 ); g->Draw("AP"); TF1 *f1 = new TF1("f1", "[0]*sin([1]*x+[2])"); f1->SetParameter(0, 0.25); f1->SetParameter(1, 0.11); f1->SetParameter(2, 3.14+0.2); g->Fit(f1); TGraph *h = new TGraph("myfile4b.dat"); h->SetMarkerStyle( 24 ); h->SetMarkerSize( 1.0 ); h->Draw("P"); TF1 *f2 = new TF1("f2", "[0]*sin([1]*x+[2])"); f2->SetParameter(0, 0.25); f2->SetParameter(1, 0.11); f2->SetParameter(2, 3.14+0.2); h->Fit(f2); }