【基本】波の重ね合わせ

レーザーは位相の揃った電磁波であるため、複数が重なり合うと干渉します。その様子を下図に示します(イメージ図です)。青で示した波に対して、緑で示した波が空間的に移動しているとします。この時、波の重ね合わせは加法で求められ、赤線の波のようになります。ある地点(マーカーで記した0の位置)で、振幅が大きくなったり小さくなったりしています。青と緑の波が同位相の時は強め合い、位相が180°ずれると弱めあいます。このような現象が干渉です。

このような干渉は様々な分野で用いられています。空間的、時間的に強弱をつけられますので、干渉現象をうまく利用した大面積のオンデマンド微細加工があります。また、計測の分野では、光の波長を基準にできるため高精度な測定が可能となる干渉計として利用されています。

このアニメーションgifは、julia言語を用い以下のコードで作成しました。

using Plots
import ProgressMeter
gr(size=(1000,600))
n = 100  
prog = ProgressMeter.Progress(n,1)
i = -2π*5:0.3:2π*5
anim = @animate for t in 0:0.1:2π
    l = @layout [a;b;c]
    x0=zeros(1,length(t))
    x=[cos.(t)]
    y=[sin.(t)]
    global p = plot(xlims=(-30,30),ylims=(-2,2))
    global p = plot!(i, sin.(-i.+t), linecolor = "green", legend=:false)
    
    global q = plot(xlims=(-30,30),ylims=(-2,2))
    global q = plot!(i, sin.(-i), linecolor = "blue", legend=:false)
 
    global s = plot(xlims=(-30,30),ylims=(-2,2))
    global s = plot!(i, sin.(-i).+sin.(-i.+t), linecolor = "red", legend=:false)
    global s = plot!(x0, y, marker=:circle, legend=:false)
    
    
    plot(q, p, s, layout = l, link=:x)
    ProgressMeter.next!(prog)
end
fps = 20
filename = "plot.gif"
gif(anim, filename, fps = fps)

【基本】レーザースポット

レーザースポットの強度は一様ではなく、場所により異なった分布をしています。具体的には、次に示すように半径に対して対称なガウス分布をしています。

\(I(r)=I_0 exp(- \frac{2r^2}{\omega ^2})\)

この様子のイメージ図は下の通りです。上が3次元表示、下が平面内の等高線表示となります。中心部は強度が強く周辺に行くに従い指数関数的に強度が弱くなっています。

このようにレーザー強度がガウス分布をしているため、除去加工ではテーパーがつくことになります。しかし、光学系を工夫することでこのテーパーを制御する試みもあります。

この図は、julia言語にて作成しました。このコードは下記の通りです。

using PyPlot
using Distributions
using LinearAlgebra
using3D() 

n = 100
x = range(-3,stop=3,length=n)
y = range(-3,stop=3,length=n)

xgrid = repeat(x',n,1)
ygrid = repeat(y,1,n)

z = zeros(n,n)

for i in 1:n
    for j in 1:n
        z[i:i,j:j] .= pdf(MvNormal(Matrix(1.0I,2,2)),[x[i];y[j]])
    end
end

fig = figure("pyplot_surfaceplot",figsize=(10,10))
ax = fig.add_subplot(2,1,1,projection="3d")
plot_surface(xgrid, ygrid, z, rstride=2,edgecolors="k", cstride=2, cmap=ColorMap("gray"), alpha=0.8, linewidth=0.25)
xlabel("X")
ylabel("Y")
PyPlot.title("Intensity distribution")

subplot(212)
ax = fig.add_subplot(2,1,2)
cp = contour(xgrid, ygrid, z, colors="black", linewidth=2.0)
ax.clabel(cp, inline=1, fontsize=10)
xlabel("X")
ylabel("Y")
PyPlot.title("Contour Plot")
tight_layout()

【基本】波の表現

光は電磁波の横波です。この波が平面内での挙動を確認してみます。\(x\)軸の正の方向に進む電磁波の電場は、角振動数\(\omega=2\pi\upsilon\)、波数\(k=2\pi/\lambda\)を用いて、初期位相を0とすると、次の様に表されます。

\(E_y=E_0 cos(kx-\omega t)\)

この波は、複素平面で考えると計算上、有利なことが多いです。Eulerの公式\(e^{i \theta }=cos\theta+i sin\theta\)を使えば、

\(E_y=Re[E_0 e^{i(kx-\omega t)}]\)

と表されます。すなわち、複素平面で考えた円運動の実部が電場の振幅としてあらわされるわけです。このことを動画で表現すると下図の様になります。左図が複素平面での円運動の様子です。横軸が虚部、縦軸は実部を表しています。右図は、空間を進む横波の時間変化を示しています。ちょうど時間0の振幅をオレンジ色のマーカーで示しています。このように考えると、計算過程と実際の波を関係づけられますので、理解が深まります。

この動画はjulia言語で作成しました。そのコードは下記の通りです。

using Plots
import ProgressMeter
gr(size=(1000,300))
n = 100  
prog = ProgressMeter.Progress(n,1)

i = -2π:0.02:2π


anim = @animate for t in 0:0.02:2π
    l = @layout [a b]

    x0=zeros(1,length(t))
    x=[cos.(t)]
    y=[sin.(t)]

    global p =plot(xlims=(-6,6),ylims=(-2,2))
    global p=plot!(i, sin.(-i.+t), linecolor = "blue", legend=:false)
    global p=plot!(x0, y, marker=:circle, legend=:false)
    
    global q = plot(xlims=(-2,2), ylim=(-2,2), aspect_ratio=:equal)
    global q = plot!(cos.(-i), sin.(-i), linecolor = "blue", legend=:false)
    global q = plot!(x,y, marker=:circle, legend=:false)
    
    plot(q, p, layout = l, link=:y)

    ProgressMeter.next!(prog)
end
fps = 20
filename = "plot.gif"

gif(anim, filename, fps = fps)