math_nf.nb

1

Observation Plane Transformation for Aperture Field
Distribution
Data Processing for Near Field Measurement
2003/2/24 平野拓一（東京工業大学）
Takuichi Hirano (Tokyo Institute of Technology)

math_nf.nb

2

Source: Infinitesimal dipole
è!!!!!!!!
!!!!!!
22x +y
sin q = ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ
ÅÅÅÅrz
cos q = ÅÅÅÅr
ysin j = ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ
ÅÅÅÅ
è!!!!!!!!
!!!!!!
2
2x +yxcos j = ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ
ÅÅÅÅ
è!!!!!!!!
!!!!!!
2x +y 2``j` = - x sinj + y cosj

math_nf.nb

3

In[8]:= freq = 2.45 ∗ 109 ;c = 2.998 ∗ 108 ;c
λ0 =;freq
2∗π
k0 =;
λ0
η0 = 120. ∗ π;
EFieldInfinitesimalDipole@xo_, yo_, zo_, xs_, ys_, zs_D :=ModuleA8r, x, y, z, sϕ, cϕ<,x = xo − xs;y = yo − ys;z = zo − zs;
è!!!!!!!!!!!!!!!!!!!!!!!!!
r = x2 + y2 + z2 ;è!!!!!!!!
!!!!!!!
x2 + y2;sθ =rzcθ =;r
ysϕ = è!!!!!!!!!!!!!!! ;x2 + y2xcϕ = è!!!!!!!!!!!!!!! ;x2 + y2H∗ 単位ベクトル ∗Lrhat = 8sθ ∗ cϕ, sθ ∗ sϕ, cθ<;
θhat = 8cθ ∗ cϕ, cθ ∗ sϕ, −sθ<;ϕhat = 8−sϕ, cϕ, 0<;
Exp@−I ∗ k0 ∗ rD i
1η0y ∗ cθ +z∗∗jrhat ∗j1 +z2r
I ∗ k0 ∗ r {2∗π∗rk1
1k0 ∗ η0Exp@−I ∗ k0 ∗ rD jiyzz ∗ sθ+θhat ∗ I ∗∗∗jj1 +2 zI∗k0∗r
4∗π∗rr
HI
∗
k0
∗rL
k{

E;

EField@xo_, yo_, zo_D := Module@8<,H∗ Hx̂,ŷ,ẑL→Hẑ,x̂,ŷL ∗L
e1 = EFieldInfinitesimalDipole@zo, xo, yo, 0, −5 ∗ λ0, −5 ∗ λ0D;e2 = EFieldInfinitesimalDipole@zo, xo, yo, 0, 5 ∗ λ0, 5 ∗ λ0D;e3 = EFieldInfinitesimalDipole@zo, xo, yo, 0, 10 ∗ λ0, −5 ∗ λ0D;e = e1 + e2 + e3;
8e@@2DD, e@@3DD, e@@1DD<D;math_nf.nb

4

Vector Filed
In[15]:= << Graphics`PlotField3D`;

PlotVectorField3D@Abs@EField@x, y, zDD, 8x, −1, 1<, 8y, −1, 1<, 8z, −1, 1<,
ColorFunction → HHue@−0.7 ∗ H# − 1L, 1, 1D &LDOut[16]=Graphics3D

math_nf.nb

5Ey Distribution
目的：電界のy成分を描く

関数から分布を描く
In[20]:= RegX = 50. ∗ λ0;

RegY = 50. ∗ λ0;
Plot3D@Abs@ EField@x, y, λ0D@@2DD D, 8x, −RegX ê 2, RegX ê 2<, 8y, −RegY ê 2, RegY ê 2<,
PlotPoints → 30,
ColorFunction → HHue@−0.7 ∗ H# − 1L, 1, 1D &LD;

2000
2100000-20-22

In[28]:= DensityPlot@Abs@ EField@x, y, 0.1 ∗ λ0D@@2DD D,8x, −RegX ê 2, RegX ê 2<, 8y, −RegY ê 2, RegY ê 2<,
Mesh → False,
PlotPoints → 50,
PlotRange → 80, Automatic<,
PlotLabel → "Amplitude",FrameLabel → 8"x", "y", "", ""<,
ColorFunction → HHue@−0.7 ∗ H# − 1L, 1, 1D &LD;

colfun@x_D := RGBColor@0, 3 ∗ x, 1D ê; Hx ≤ 1 ê 3L;
colfun@x_D := RGBColor@3 ∗ Hx − 1 ê 3L, 1, 1D ê; H1 ê 3 < x ≤ 2 ê 3L;
colfun@x_D := RGBColor@−3 ∗ Hx − 2 ê 3L + 1, −3 ∗ Hx − 2 ê 3L + 1, 1D ê; H2 ê 3 < xL;
DensityPlotAArg@ EField@x, y, 0.1 ∗ λ0D@@2DD D ∗180

8x, −RegX ê 2, RegX ê 2<, 8y, −RegY ê 2, RegY ê 2<,
Mesh → False,
PlotPoints → 50,
PlotRange → 8−180, 180<,
PlotLabel → "Phase",
FrameLabel → 8"x", "y", "", ""<,
ColorFunction → colfunE;π,math_nf.nb

6Amplitude
32y10-1-2-3-3-2-10x

1

2

312

3Phase32y10-1-2-3-3-2-10xmath_nf.nb

7Make List

目的：実験のサンプリングデータをシミュレートするために離散点でサンプリングし、リストを作る

一度リストを作ってから分布を描く
In[33]:= m = 101;n = 111;
APDist1 = Table@
Table@
EField@x, y, 20.0 ∗ λ0D@@2DD,8x, −RegX ê 2, RegX ê 2, RegX ê m<D, 8y, −RegY ê 2, RegY ê 2, RegY ê n<D;

In[36]:= ListDensityPlot@Abs@ APDist1 D,

Mesh → False,
PlotRange → 80, Automatic<,
PlotLabel → "Amplitude",FrameLabel → 8"x", "y", "", ""<,
ColorFunction → HHue@−0.7 ∗ H# − 1L, 1, 1D &LD;
colfun@x_D := RGBColor@0, 3 ∗ x, 1D ê; Hx ≤ 1 ê 3L;
colfun@x_D := RGBColor@3 ∗ Hx − 1 ê 3L, 1, 1D ê; H1 ê 3 < x ≤ 2 ê 3L;
colfun@x_D := RGBColor@−3 ∗ Hx − 2 ê 3L + 1, −3 ∗ Hx − 2 ê 3L + 1, 1D ê; H2 ê 3 < xL;
ListDensityPlotAArg@APDist1D ∗180

Mesh → False,
PlotRange → 8−180, 180<,
PlotLabel → "Phase",
FrameLabel → 8"x", "y", "", ""<,
ColorFunction → colfunEπ,math_nf.nb

8Amplitude

10080

y60

40

200020406080

10080

100x
Phase

10080y60

40

2000204060xOut[40]=DensityGraphics

math_nf.nb

9等高線図を描くIn[41]:= ListContourPlot@Abs@ APDist1 D,

PlotRange → 80, Automatic<,
Contours → 5,ColorFunction → HHue@−0.7 ∗ H# − 1L, 1, 1D &LD;

colfun@x_D := RGBColor@0, 3 ∗ x, 1D ê; Hx ≤ 1 ê 3L;
colfun@x_D := RGBColor@3 ∗ Hx − 1 ê 3L, 1, 1D ê; H1 ê 3 < x ≤ 2 ê 3L;
colfun@x_D := RGBColor@−3 ∗ Hx − 2 ê 3L + 1, −3 ∗ Hx − 2 ê 3L + 1, 1D ê; H2 ê 3 < xL;
ListContourPlotAArg@APDist1D ∗180PlotRange → 80, Automatic<,
Contours → 5,
ColorFunction → colfunE

π080,100806040200204060100math_nf.nb

101008060402000
Out[45]=20406080100

ContourGraphics

DFT

目的：離散フーリエ変換してスペクトルを描く
In[52]:= FAPDist1 = Fourier@APDist1D;

ListDensityPlot@Abs@ FAPDist1 D,
Mesh → False,
PlotRange → 80, Automatic<,
PlotLabel → "Amplitude",FrameLabel → 8"x", "y", "", ""<,
ColorFunction → HHue@−0.7 ∗ H# − 1L, 1, 1D &LD;
colfun@x_D := RGBColor@0, 3 ∗ x, 1D ê; Hx ≤ 1 ê 3L;
colfun@x_D := RGBColor@3 ∗ Hx − 1 ê 3L, 1, 1D ê; H1 ê 3 < x ≤ 2 ê 3L;
colfun@x_D := RGBColor@−3 ∗ Hx − 2 ê 3L + 1, −3 ∗ Hx − 2 ê 3L + 1, 1D ê; H2 ê 3 < xL;
ListDensityPlotAArg@FAPDist1D ∗Mesh → False,
PlotRange → 8−180, 180<,
PlotLabel → "Phase",
FrameLabel → 8"x", "y", "", ""<,
ColorFunction → colfunE180π,math_nf.nb

11Amplitude

10080y6040200020

40608010080100xPhase

10080

y60402000204060xOut[57]=

DensityGraphics

math_nf.nb

12Inverse DFT

目的：単純に逆フーリエ変換して元に戻ることを確認する。
In[64]:= IFAPDist1 = InverseFourier@FAPDist1D;

ListDensityPlot@Abs@ IFAPDist1 D,
Mesh → False,
PlotRange → 80, Automatic<,
PlotLabel → "Amplitude",FrameLabel → 8"x", "y", "", ""<,
ColorFunction → HHue@−0.7 ∗ H# − 1L, 1, 1D &LD;
colfun@x_D := RGBColor@0, 3 ∗ x, 1D ê; Hx ≤ 1 ê 3L;
colfun@x_D := RGBColor@3 ∗ Hx − 1 ê 3L, 1, 1D ê; H1 ê 3 < x ≤ 2 ê 3L;
colfun@x_D := RGBColor@−3 ∗ Hx − 2 ê 3L + 1, −3 ∗ Hx − 2 ê 3L + 1, 1D ê; H2 ê 3 < xL;
ListDensityPlotAArg@IFAPDist1D ∗180π,

Mesh → False,
PlotRange → 8−180, 180<,
PlotLabel → "Phase",
FrameLabel → 8"x", "y", "", ""<,
ColorFunction → colfunEAmplitude

10080

y60

40

2000204060x80100

math_nf.nb

13Phase10080y60

402000204060

80

100x
Out[69]=DensityGraphics

Observation Plane Transformation for Aperture Field Distribution
Inverse DFT目的：任意の観測面の開口分布に変換する
使い方：元の開口分布がz=0のときのものだったとするとdzでz=0から移動する高さを指定する
In[73]:= dz = −20. ∗ λ0;

FAPDist2 = TableA
ModuleA8<,kx = Hj − 1L ∗ky = Hi − 1L ∗2∗πRegX
2∗πRegY;;

IfAi > IntegerPart@n ê 2D, ky −= n ∗IfAj > IntegerPart@m ê 2D, kx −= m ∗kz ="################################
k02 − kx2 − ky2 ;2∗πRegY2∗πRegXE;
E;

If@HRe@kzD ≥ 0L && HAbs@Im@kzDD < 10−15 L,
FAPDist1@@i, jDD ∗ Exp@−I ∗ kz ∗ dzD,
10−15 DE, 8i, 1, n<, 8j, 1, m<
E;

IFAPDist2 = InverseFourier@FAPDist2D;

math_nf.nb

14

In[76]:= ListDensityPlot@Abs@ IFAPDist2 D,

Mesh → False,
PlotRange → 80, Automatic<,
PlotLabel → "Amplitude",FrameLabel → 8"x", "y", "", ""<,
ColorFunction → HHue@−0.7 ∗ H# − 1L, 1, 1D &LD;
colfun@x_D := RGBColor@0, 3 ∗ x, 1D ê; Hx ≤ 1 ê 3L;
colfun@x_D := RGBColor@3 ∗ Hx − 1 ê 3L, 1, 1D ê; H1 ê 3 < x ≤ 2 ê 3L;
colfun@x_D := RGBColor@−3 ∗ Hx − 2 ê 3L + 1, −3 ∗ Hx − 2 ê 3L + 1, 1D ê; H2 ê 3 < xL;
ListDensityPlotAArg@IFAPDist2D ∗180π,

Mesh → False,
PlotRange → 8−180, 180<,
PlotLabel → "Phase",
FrameLabel → 8"x", "y", "", ""<,
ColorFunction → colfunEAmplitude

100

80

y60

402000204060x80

100

math_nf.nb

15Phase

100

80

y60

402000204060xOut[80]=DensityGraphics

80100