Numerical Simulation of Optical Wave Propagation with Examples in MATLAB
https://www.spiedigitallibrary.org/ebooks/PM/Numerical-Simulation-of-Optical-Wave-Propagation-with-Examples-in-MATLAB/eISBN-9780819483270/10.1117/3.866274#_=_
1. 기초 개념
1.1 Convolution
- 원래의 변수(t)가 출력에도 그대로 살아있는 연산의 일종
Cfg=f(x)⊛g(x)=−∞∫∞f(x′)g(x−x′)dx′
f(x)⊛g(x)=F−1{ F[f(x)]F[g(x)] }
두 함수의 차이는, g(x)가 conjugate되고 인수의 부호가 반대로 바뀐 것이다.
1.2 Correlation
-
원래의 변수(t)가 다른 변수(τ) 또는 값으로 바뀌어 출력에 나타나는 변환
Γfg(△r)=f(r)⋆g(r)=−∞∫∞f(r) g∗(r−△r)dr
- F{g(−t)}→G(−f), F{g∗(t)}→G∗(−f)
- F{g∗(−t)}→G∗(f)
-
f(x)⋆g(x)=F−1{ F[f(x)]F[g(x)]∗ }
-
일반적으로, Correlation은 두 신호 사이의 유사성을 결정하는 데 자주 사용.
-
따라서 두 입력 신호 f(x),g(x)는 일반적으로 비교적 유사한 특성을 갖는 반면, convolution의 두입력은 보통 서로 매우 다름. 상관관계가 정점에 달하는 seperation △r은 두 신호 간의 특징 사이 거리를 알려줄 수 있음.
-
즉, f(x)=g(x)인 경우, 자기상관(auto-correlation)
-
auto correlation의 peak의 width는 signal의 variation에 대한 정보를 나타낼 수 있다
1.3 optical field와 pupil에 대한 auto-correlation
Auto-correlation 함수
어떤 신호의 시간이동된 자기 자신과의 Correlation 척도
- u(r): optical field
- w(r): window, 광 조리개의 안은 1, 밖은 0
조리개를 통과해 sensor가 모은 data는 다음과 같이 표현가능
u′(r)=u(r) w(r)
1.3.1 windowed data의 auto correlation
Γu′u′(△r)=u′(r)⋆u′(r)
=−∞∫∞u(r)u∗(r−△r) w(r)w∗(r−△r)dr
위 적분대상함수는 w(r)w∗(r−△r) 값이 0이 아닌지점에서 단지 u(r)u∗(r−△r)이다.
- 이 영역을 R(r,△r)
- 해당 영역을 계산하면
- Γww(△r)=∫R(r,△r) dr=A(△r)
Γuu(△r)의 평균 값이 r과 독립이고,
u(r)이 wide sense stationary(WSS)
- random process x(t)의 모든 시간(−∞<t<∞)에서
E[X(t)] = μX(t)=μX=일정
- x(t)에서 서로다른 시간에 의한 auto correlation은
RX(t1,t2)=RX(t1−t2,0)=RX(0,t1−t2)=RXX(t1−t2)
⟨Γu′u′(△r)⟩=−∞∫∞⟨u(r)u∗(r−△r)⟩ ⟨w(r)w∗(r−△r)⟩ dr
=⟨u(r)u∗(r−△r)⟩∗⟨−∞∫∞w(r)w∗(r−△r)dr⟩
=Γww(△r) ⟨Γuu(△r)⟩
=A(△r) ⟨Γuu(△r)⟩
- Auto-correlation 함수를 Fourier transform하면
Γu′u′(△r)=u′(r)⋆u′(r)=F−1{F[u′(r)] F[u′(r)]∗}
- u′(r)=F−1{U′(f)} 대입
=F−1{U′(f) U′(f)∗}=F−1{∣U′(f)∣2}
최종적으로 optical field u(r)의 auto-correlation은
⟨Γuu(△r)⟩=F−1{∣W′(f)∣2}⟨F−1{∣U′(f)∣2}⟩
2. Structure function
-
주로 통계학, 물리학, 유체역학, 대기과학 등에서 사용되는 개념
-
일반적으로 두 지점 사이의 변수 차이의 통계적 특성을 설명하는 데 사용
-
구체적으로, 두 지점 간의 거리에 따라 측정된 값의 차이를 분석하여 spatial, temporal scale에 대한 이해를 도움.
-
특히 난류 흐름의 특성을 연구하는데 중요, 난류 내에서의 에너지 variance 같은 현상을 설명
2.1 Structure function
Sp(r)=⟨∣u(x+r)−u(x)∣p⟩
- r: 두 지점간의 거리
- u(r): optical field
- Sp(r): 거리 r에 따른 속도 field 또는 기타 물리적 양의 차이의 p차 평균
- ⟨−⟩: 앙상블 평균(동일한 물리적 조건을 갖는 시스템의 모든 가능한 상태 또는 표본들의 집합)
2.2 ramdom field g(r)의 Structure function 구현
random field g(r)은 다음으로 정의
Dg(△r)=∫[g(r)−g(r−△r)]2dr
=∫[g(r)2+g(r−△r)2−2g(r) g(r−△r)]dr
random field g(r)이 통계적으로 등방성일 때, 어떤 방향에서도 동일한 확률 분포를 갖는다는 뜻.
g(r)과 g(r−△r) 는 분포 자체는 동일하므로 ∫ 값이 동일
mean structure function과 auto-correlation간의 관계는 다음과 같다.
- Γgg(0)=−∞∫∞g(r)g∗(r)dr=−∞∫∞g(r)2dr
- Γgg(△r)=−∞∫∞g(r)g∗(r−△r)dr
- Dg(△r)=2[Γgg(0)−Γgg(△r)]
Du′(△r)=∫[u′(r)−u′(r−△r)]2 dr
=∫[u′(r)2 w(r−△r)−2u′(r)u′(r−△r)+u′(r−△r)2 w(r)] dr
- w(r)=2π1−∞∫∞W(f) ejwt
- u′(r)=2π1−∞∫∞U′(f) ejwt
- [u′(r)]2=2π1−∞∫∞S(f) ejwt
- w(r)은 실수, W(f)=W∗(f)
Du′(△r)=∫−∞∫∞−∞∫∞{S(f1)W∗(f2)+S∗(f2)W(f1)−2U′(f1)[U′(f2)]∗×ej2π(f1+f2)⋅rej2πf2△rdf1 df2 dr}
r에 대해 적분 후, f2에 대해 적분하면
Du′(△r)=−∞∫∞{S(f1)W∗(f1)+S∗(f1)W(f1)−2U′(f1)[U′(f1)]∗]} e j2πf1⋅△rdr1
=2∗−∞∫∞{Re[S(f1)W∗(f1)]−∣U′(f1)∣2}ej 2πf1⋅△r df1
=2 F−1{Re[S(f1)W∗(f1)]−∣U′(f1)∣2}
3. structure function of the 2D signal 계산
A(x,y)=rect(x/w) rect(y/w).
import numpy as np
import matplotlib.pyplot as plt
N = 256
L = 16
delta = L/N
F = 1/L
x= np.arange(-N/2, N/2)*delta
freqs = np.fft.fftfreq(N*N, d=delta).reshape(N,N)
[x, y] = np.meshgrid(x, x)
w = 2
A = rect2(x,w) * rect2(y,w)
mask = np.ones((N,N))
C = str_fcn2_ft(A, mask, delta) /delta**2
C = np.fft.fftshift(C)
C_cont = 2 * w**2 * (1-tri(x,w)*tri(y,w))
plt.figure(figsize=(18,6))
plt.subplot(1,3,1)
plt.xlim(-2.5,2.5)
plt.ylim(0,6)
plt.scatter(np.arange(-N/2,N/2)*delta,np.real(C[128]))
plt.scatter(np.arange(-N/2,N/2)*delta,np.real(C_cont[128]))
plt.subplot(1,3,2)
plt.imshow(np.real(C), cmap='gray', extent=(x.min(), x.max(), x.min(), x.max()))
plt.xlim(-2,2)
plt.ylim(-2,2)
plt.subplot(1,3,3)
plt.imshow(C_cont,cmap='gray', extent=(x.min(), x.max(), x.min(), x.max()))
plt.xlim(-2,2)
plt.ylim(-2,2)
plt.show()