波動光学回折

任意開口による干渉パターンのリアルタイム演算

インタラクティブシミュレーション

以下のシミュレーターを使用して、任意の開口形状における光の回折パターンをリアルタイムで観察できます。物理的に正確な色再現により、実際の光学現象を直感的に理解することができます。

シミュレーション設定

光源設定

波長設定

幾何学設定

計算設定

描画設定

リアルタイム演算

開口関数 T(x,y)

左クリック: 描画 | 右クリック: 消去

回折パターン |U_S(X,Y)|²

計算準備完了...
光源
1.0m
開口
0m
スクリーン
2.0m
総距離: 3.0m

計算結果

-
-
-
-

このシミュレーターについて

この波動光学シミュレーターは、任意の形状の開口を通過する光の回折現象をリアルタイムで計算・可視化するツールです。WebGLによるGPU並列計算を活用し、厳密な波動伝播アルゴリズムを実装しています。

光は波としての性質を持ち、障害物や開口の周りで曲がる (回折) 現象を示します。この複雑な物理現象を、マウスで描いた任意の開口形状に対してリアルタイムで計算し、実際の光学実験と同様の結果を得ることができます。

教育目的での光学現象の理解促進から、計算光学研究での活用まで、幅広い用途に対応しています。物理的に正確な色再現により、単色光から多色光まで対応し、実際の光学現象を忠実に再現します。

数学的モデル

入射波場

開口面における入射波場は光源の設定により決定されます:

点光源: 距離$z_1$から発生する球面波の場合:

$$U_0(x,y) = \frac{e^{ik\sqrt{(x-x_s)^2+(y-y_s)^2+z_1^2}}}{\sqrt{(x-x_s)^2+(y-y_s)^2+z_1^2}}$$

平面波: 入射角$(\theta_x, \theta_y)$を持つコリメート光の場合:

$$U_0(x,y) = e^{ik(x\sin\theta_x + y\sin\theta_y)}$$

ここで$k = 2\pi/\lambda$は波数です。

開口透過

開口透過後の複素振幅は次式で表されます:

$$U_A(x,y) = T(x,y) \cdot U_0(x,y)$$

ここで$T(x,y) \in [0,1]$は、ユーザーが描いた開口パターンから導出される振幅透過関数です。

波動伝播計算法

Fresnel-Kirchhoff 回折:任意の伝播距離に対する最も一般的な定式化:

$$U_S(X,Y) = \frac{e^{ikz_2}}{i\lambda z_2} e^{\frac{ik}{2z_2}(X^2+Y^2)} \iint U_A(x,y) e^{\frac{ik}{2z_2}(x^2+y^2)} e^{-\frac{ik}{z_2}(xX+yY)} dx\,dy$$

Angular Spectrum 法:フーリエ変換を用いた最も計算効率の高いアプローチ:

$$\begin{aligned} \tilde{U}_A(k_x,k_y) &= \mathcal{F}\{U_A(x,y)\} \\ \tilde{U}_S(k_x,k_y) &= \tilde{U}_A(k_x,k_y) \cdot e^{iz_2\sqrt{k^2-k_x^2-k_y^2}} \\ U_S(X,Y) &= \mathcal{F}^{-1}\{\tilde{U}_S(k_x,k_y)\} \end{aligned}$$

数値実装

離散フーリエ変換

すべての伝播計算は、WebGLシェーダーでGPU上で実行される2D高速フーリエ変換 (FFT) アルゴリズムを使用して実装されています。離散サンプリングはナイキスト基準の注意深い考慮が必要です:

$$\Delta x \leq \frac{\lambda z_2}{N_x \Delta x_s}$$

ここで$N_x$はサンプリング点数、$\Delta x_s$は観測面の間隔です。

ゼロパディングと数値安定性

端部回折によるエイリアシング効果を防止するため、設定可能なオーバーサンプリング比でゼロパディングが適用されます。実装では、因数分解位相乗算を通じて高精度浮動小数点演算での位相巻き返しの問題を処理しています。

多波長計算

多色光照明の場合、システムは各波長$\lambda_i$に対して独立して回折パターンを計算し、スペクトラム積分を通じて結果を結合します。

色空間変換

物理的に正確な色再現は、CIE 1931標準観測者等色関数を通じて実現されます。スペクトラムパワー分布はXYZ座標に変換されます:

$$\begin{aligned} X &= \sum_i w_i I(\lambda_i) \bar{x}(\lambda_i) \Delta\lambda \\ Y &= \sum_i w_i I(\lambda_i) \bar{y}(\lambda_i) \Delta\lambda \\ Z &= \sum_i w_i I(\lambda_i) \bar{z}(\lambda_i) \Delta\lambda \end{aligned}$$

ここで$I(\lambda_i) = |U_S(\lambda_i)|^2$は波長$\lambda_i$における強度、$\bar{x}$、$\bar{y}$、$\bar{z}$はCIE等色関数です。

XYZ値は標準変換マトリックスとディスプレイ用ガンマ補正を用いてsRGB色空間に変換されます。

参考文献

  1. Goodman, Introduction to Fourier Optics. フレネル/フラウンホーファ回折、角スペクトル、伝達関数、FFT実装の理論的土台。アパーチャ面→観測面の二次位相補正付きFTとしてのフレネル積分など、本実装の柱。 (macmillanlearning.com, Google Books)
  2. Born & Wolf, Principles of Optics. レイリー-ゾンマーフェルト積分、フレネル-キルヒホッフ近似の厳密な扱い。近接場 ~ 遠方場の前提条件整理に。 (Google Books, catdir.loc.gov)
  3. Saleh & Teich, Fundamentals of Photonics (3rd ed.). フーリエ光学と回折 (Talbot効果など) を一巻に体系化。Goodmanと相互参照に便利。 (YSU Library)
  4. Edinburgh 大学講義ノート: Scalar Diffraction. レイリー-ゾンマーフェルト→キルヒホッフ→フレネルの導出がコンパクト。式の仮定が追いやすい。 (School of Physics and Astronomy)
  5. ETH 講義ノート: Angular Spectrum Representation. 角スペクトル法の平面波分解・エバネッセント成分の扱いを整理。GPU実装時のカットオフの根拠に。 (ETH Zürich)
  6. MIT OCW 2.71: Fraunhofer & Fresnel. フーリエ変換としての遠方回折、二次位相を含む近似の見通し。実装のスケーリング感覚を掴むのに良い。 (MIT OpenCourseWare)
  7. Matsushima (Optics Express 2009): Band-Limited Angular Spectrum (BLAS). 角スペクトル法のサンプリング問題を緩和するバンド制限版。短~中距離の数値安定性向上に有効。 (Optica Publishing Group, 関西大学学術リポジトリ, PubMed)
  8. Shimobaba ほか (arXiv 2013): ARSS-Fresnel (別解: Bluestein/CZT 同値性に言及). ずれ・拡大縮小を伴うフレネル計算のエイリアシング条件を解析し、帯域制限で改善。スケール変更UIを想定する実装に直結。 (arXiv, ar5iv)
  9. Shimobaba (Optics Letters 2012): Scaled Angular Spectrum. 角スペクトルで入出力サンプリングを変える手法。ズーム表示や異解像度キャンバス間の伝搬に。 (Optica Publishing Group)
  10. Zhang ほか (JOSA A 2020): 数値回折法の統一的比較. 単一FFT型フレネル/伝達関数法/インパルス応答法/角スペクトル/Rayleigh-Sommerfeld を位相空間と標本化の観点で比較。方法選択の設計指針として有用。 (Optica Publishing Group)
  11. Mas ほか (1999) FFT 回折の高速アルゴリズム. D-FFT をフレネル計算へ写像する際のサンプリング条件と計算利点。古典だが今も参考になる。 (CiteSeerX)
  12. Hu ほか (Light: Sci & Appl. 2020) Bluestein 法でのスカラー/ベクトル回折. 距離・倍率の自由度、数値効率の両立。WebGL でのスケーラブルなズーム伝搬設計の根拠に。 (Nature, PMC)
  13. 最新応用レビュー/実装例 (MDPI 2019-2025 など). CZT を用いた拡大縮小や三次元CGHへの適用など、実装上の "逃げ道" を多数紹介。設計の発散防止に。 (MDPI, サイエンスダイレクト, AIP Publishing)
  14. CIE公式: 1931 等色関数 (2°標準観測者) データセット. XYZ への離散和 (∑ I(λ)x̄(λ)Δλ など) で使う正本データ。GPU では 1D テクスチャ化が実務的。 (cie.co.at)
  15. W3C CSS Color 4 (2025 CRD). sRGB の行列 (XYZ↔線形sRGB) とトーンカーブ (2.4/12.92 の分岐) をサンプルコード込みで規定。Web実装の参照規格として最適。 (W3C)
  16. Wyman/Sloan/Shirley (JCGT 2013). CIE XYZ 等色関数の解析近似式。λ連続サンプリングを軽量化したい場合の代替 (ただし最終色合わせはCIE表と比較検証推奨)。 (jcgt.org)
  17. W3C "sRGB" 概説ページ. sRGB の来歴と規格位置づけ (IEC 61966-2-1 を参照)。標準白点 D65 前提などの周辺知識に。 (W3C)
  18. MIT 8.03SC: 干渉・回折の章 (二重スリットなど). 解析式 (sincxcos² 形) で数値像の妥当性をチェックする際の "基準パターン" として使える。 (MIT OpenCourseWare)