光が空気からガラスに入射するとき、あるいは水面に光が当たるとき、その光の一部は反射し残りは透過します。
この反射と透過の割合を正確に計算するための公式がフレネルの式(Fresnel Equations)であり、光学設計・コーティング技術・光通信・映像技術など、あらゆる光を扱う分野で必須の基礎知識です。
本記事では、フレネルの式の定義・フレネル係数の意味・反射率と透過率の計算方法を、光学公式・境界面・屈折率・偏光などの観点から詳しく解説していきます。
フレネルの式を体系的に理解したい光学エンジニア・研究者・学生の方に役立つ内容となっていますので、ぜひ最後までご覧ください。
フレネルの式とは?定義と物理的背景
それではまず、フレネルの式の定義と物理的背景について解説していきます。
フレネルの式が何を表しているのかを正確に把握することが、光学計算を正しく実践するための第一歩となります。
フレネルの式が導出される物理的な根拠
フレネルの式は、光(電磁波)が2つの異なる媒質の境界面に入射したときの反射波と透過波の振幅比を記述する公式です。
物理的な導出の根拠は、マクスウェルの電磁方程式から導かれる境界条件にあります。
境界面において電場の接線成分と磁場の接線成分は連続(不連続でない)という電磁気学の境界条件を入射波・反射波・透過波に適用することで、フレネルの式が厳密に導出されます。
この導出過程で重要になるのが光の偏光状態(s偏光とp偏光)で、電場の振動方向が境界面に対して平行か垂直かによって境界条件の適用方法が異なり、異なる形のフレネルの式が得られます。
フレネルの式はスネルの法則(屈折の法則)と組み合わせて使用されるため、入射角と両媒質の屈折率が与えられれば反射率・透過率を完全に決定できます。
s偏光とp偏光の定義と境界面との関係
フレネルの式を正しく適用するために、s偏光とp偏光の定義を正確に理解することが必要です。
入射面とは、入射光線と境界面の法線を含む平面のことを指します。
s偏光(senkrecht偏光、TE偏光)は電場の振動方向が入射面に対して垂直な偏光成分で、sはドイツ語の「senkrecht(垂直)」に由来します。
p偏光(parallel偏光、TM偏光)は電場の振動方向が入射面に対して平行な偏光成分で、pは「parallel(平行)」に由来します。
自然光はs偏光とp偏光を等量含む偏光状態であるため、自然光の反射率は2つの偏光成分の平均で計算されます。
偏光によって反射率が異なるというこの特性が、偏光サングラス・偏光フィルター・レーザー光学系での応用の物理的根拠となっています。
フレネルの式とスネルの法則の連携
フレネルの式とスネルの法則は常にセットで使用されます。
スネルの法則n₁sinθ₁=n₂sinθ₂は入射角θ₁から屈折角θ₂を決定し、フレネルの式はこのθ₁とθ₂(および屈折率n₁・n₂)を使って反射振幅係数・透過振幅係数を計算します。
フレネルの式の計算フローとして、まず媒質の屈折率n₁・n₂と入射角θ₁を設定します。次にスネルの法則でsinθ₂=(n₁/n₂)sinθ₁を計算してcosθ₂を求めます。そしてフレネルの式にθ₁・θ₂・n₁・n₂を代入してrs・rpを計算します。最後に反射率Rs=|rs|²・Rp=|rp|²を求めます。自然光の反射率はR=(Rs+Rp)/2、透過率はT=1-Rです(ただし吸収がない場合)。
この計算フローを理解すれば、任意の媒質・入射角の組み合わせで反射率・透過率を正確に算出できます。
フレネル係数の詳細と計算式
続いては、フレネル係数(反射振幅係数・透過振幅係数)の詳細な計算式について確認していきます。
各係数の意味と計算式を正確に把握することで、あらゆる光学計算に応用できるようになります。
反射振幅係数rs・rpの計算式と符号の意味
フレネルの反射振幅係数rs(s偏光)とrp(p偏光)の計算式を示します。
フレネルの反射振幅係数の計算式として、s偏光の反射振幅係数:rs=(n₁cosθ₁-n₂cosθ₂)/(n₁cosθ₁+n₂cosθ₂)、p偏光の反射振幅係数:rp=(n₂cosθ₁-n₁cosθ₂)/(n₂cosθ₁+n₁cosθ₂) と表されます。反射率(強度反射率)はRs=|rs|²、Rp=|rp|²です。係数の符号(正・負)は反射時の位相変化を表しており、rs<0またはrp<0のとき反射波の位相が180°(π)反転することを意味します。疎から密への入射(n₁<n₂)ではs偏光で常に位相反転が起きます。
符号の取り扱いは薄膜干渉・多層コーティング設計・干渉計の設計において重要で、位相反転の有無が干渉縞の明暗に影響するため見落とさないことが大切です。
透過振幅係数ts・tpの計算式とエネルギー保存
フレネルの透過振幅係数ts(s偏光)とtp(p偏光)の計算式を示します。
フレネルの透過振幅係数の計算式として、s偏光の透過振幅係数:ts=2n₁cosθ₁/(n₁cosθ₁+n₂cosθ₂)、p偏光の透過振幅係数:tp=2n₁cosθ₁/(n₂cosθ₁+n₁cosθ₂) と表されます。注意点として透過振幅係数tはRs+Ts=1(ただしTs=(n₂cosθ₂/n₁cosθ₁)|ts|²)というエネルギー保存則を満たしますが、|ts|²≠(1-Rs)であることに注意が必要です。エネルギー透過率(強度透過率)Ts・Tpは振幅係数の二乗に屈折率と角度の比率(ビーム断面積の変化)を掛けた形になります。
透過率の計算では振幅の二乗だけでなく媒質の屈折率と角度の変化によるビーム断面積の変化を考慮する必要があり、この点を見落とすとエネルギー収支が合わない誤りが生じます。
特殊ケースにおけるフレネル係数の挙動
フレネル係数の重要な特殊ケースを整理します。
| 特殊条件 | 物理的状況 | フレネル係数の挙動 |
|---|---|---|
| 垂直入射(θ₁=0°) | 光が境界面に垂直に入射 | rs=rp=(n₁-n₂)/(n₁+n₂)、s/pの区別なし |
| ブリュースター角θB | tanθB=n₂/n₁を満たす角度 | rp=0(p偏光の反射ゼロ) |
| 臨界角θc(全反射) | n₁>n₂かつθ₁≥θc | |rs|²=|rp|²=1(完全反射) |
| 斜入射(一般角度) | 任意のθ₁ | Rs≠Rp(偏光によって異なる反射率) |
これらの特殊ケースを把握しておくことで、実際の光学系設計における反射率の挙動を直感的に予測できるようになります。
特にブリュースター角と全反射条件は、偏光子・光ファイバー・プリズムなどの重要な光学部品の動作原理に直結しています。
フレネルの式を使った具体的な計算例
続いては、フレネルの式を実際に使った具体的な数値計算例について確認していきます。
具体的な数値で計算を追うことで、式の使い方と結果の意味が明確になります。
空気からガラスへの入射の計算例
最も基本的な例として、空気(n₁=1.0)からガラス(n₂=1.5)に角度θ₁=45°で光が入射する場合を計算します。
計算手順として、まずスネルの法則でsinθ₂=(1.0/1.5)×sin45°=(1/1.5)×(√2/2)≒0.4714となるためθ₂≒28.1°、cosθ₂≒0.882となります。次にs偏光の反射振幅係数:rs=(1.0×cos45°-1.5×cos28.1°)/(1.0×cos45°+1.5×cos28.1°)=(0.707-1.323)/(0.707+1.323)=(-0.616/2.030)≒-0.303となります。p偏光の反射振幅係数:rp=(1.5×cos45°-1.0×cos28.1°)/(1.5×cos45°+1.0×cos28.1°)=(1.061-0.882)/(1.061+0.882)=(0.179/1.943)≒0.092となります。反射率はRs=|-0.303|²≒0.092(9.2%)、Rp=|0.092|²≒0.0085(0.85%)、自然光の反射率R≒(9.2%+0.85%)/2≒5.0%となります。
この計算から、同じ入射条件でもs偏光とp偏光では反射率に大きな差があることが確認できます。
自然光全体では約5%が反射される結果となり、通常のガラス面での反射の感覚と一致した値となります。
ブリュースター角の計算と確認
空気(n₁=1.0)からガラス(n₂=1.5)のブリュースター角を計算します。
ブリュースター角の計算として、tanθB=n₂/n₁=1.5/1.0=1.5より、θB=arctan(1.5)≒56.3°となります。この角度でrpが0になることを確認するため、sinθB≒0.832よりcosθB≒0.555となります。スネルの法則でsinθ₂=(1.0/1.5)×0.832≒0.555よりθ₂≒33.7°、cosθ₂≒0.832となります。rp=(1.5×0.555-1.0×0.832)/(1.5×0.555+1.0×0.832)=(0.832-0.832)/(0.832+0.832)=0/1.664=0となり、確かにrp=0が確認されます。このときrs=(1.0×0.555-1.5×0.832)/(1.0×0.555+1.5×0.832)=(0.555-1.248)/(0.555+1.248)=-0.693/1.803≒-0.385となりRs≒0.148(約14.8%)となります。
ブリュースター角ではp偏光の反射がゼロになり、反射光は完全にs偏光のみになるという特性が数値的に確認できます。
全反射の臨界角と反射率の計算
ガラス(n₁=1.5)から空気(n₂=1.0)への入射の臨界角と全反射の確認を行います。
臨界角はsinθc=n₂/n₁=1.0/1.5より、θc=arcsin(2/3)≒41.8°となります。
臨界角以上(例えばθ₁=50°)では屈折角θ₂が虚数になり、フレネル係数|rs|=|rp|=1(反射率100%)となって完全な全反射が起きることが式から導けます。
臨界角より少し小さい角度(θ₁=40°)では反射率が非常に高くなりますが完全反射ではなく、臨界角を境に反射率が急激に上昇するという特性があります。
この計算はプリズム設計・光ファイバー設計・全反射照明(TIRF)顕微鏡の設計において重要な基礎計算です。
フレネルの式の多層膜・コーティングへの応用
続いては、フレネルの式を薄膜・多層コーティングの設計に応用する方法について確認していきます。
多層膜の設計はフレネルの式の最も重要な実用応用のひとつです。
単層反射防止コーティングの設計原理
反射防止コーティング(ARコーティング)は、薄膜干渉とフレネルの式を組み合わせた最も実用的な応用のひとつです。
単層ARコーティングの設計では、コーティング膜の上面反射と下面反射が互いに打ち消し合うように膜厚と屈折率を設定します。
位相条件として膜厚d=λ/(4n_film)(λ/4膜)、振幅条件として膜の屈折率n_film=√(n_substrate×n_air)が最適条件です。
例えばガラス(n=1.5)に対する最適な単層ARコーティングの屈折率はn_film=√(1.5×1.0)≒1.22となりますが、この屈折率を持つ実用的な光学薄膜材料が少ないため、n≒1.38のMgF₂(フッ化マグネシウム)が広く使われています。
MgF₂単層ARコーティングで空気・ガラス界面の反射率を約4%から約1.5%以下に低減できます。
多層膜の転送行列法(TMM)とフレネルの式の統合
複数の薄膜層で構成される多層ARコーティングや高反射ミラーの設計には、転送行列法(TMM:Transfer Matrix Method)が使われます。
転送行列法では各層の特性行列(フレネルの式から導出される2×2行列)を順次掛け合わせることで、多層膜全体の反射率・透過率・位相変化を計算します。
各層の特性行列M_iは、その層の光学的厚さ(nd×cos θ)とフレネルの界面係数から構成されます。
高反射ミラー(HR ミラー)では、高屈折率層(TiO₂・ZrO₂など)と低屈折率層(SiO₂・MgF₂など)のλ/4層を交互に積層することで、反射率99.9%以上を実現できます。
このような多層膜設計は、カメラレンズのARコーティング・レーザー用ミラー・光通信用ダイクロイックフィルター・太陽電池の無反射コーティングなど、現代の光学デバイス製造の基盤技術となっています。
エリプソメトリーとフレネルの式を使った薄膜計測
エリプソメトリー(Ellipsometry)は、フレネルの式を逆問題として利用した薄膜計測技術です。
偏光した光を薄膜試料に入射し、反射光の偏光状態の変化(振幅比ψと位相差Δ)を測定することで、フレネルの式のモデルフィットから薄膜の厚さと屈折率を同時に求めます。
測定精度は薄膜の厚さに対してサブナノメートル(0.1nm以下)のオーダーで、半導体製造プロセスでのウェハ上の薄膜モニタリング・有機太陽電池・反射防止コーティングの品質管理などに広く使われています。
フレネルの式がこのような精密計測技術の根幹を支えているという事実は、この公式の普遍的な重要性を示す好例と言えるでしょう。
フレネルの式の数値計算実装と応用ツール
続いては、フレネルの式をプログラムで実装する方法と、利用できる計算ツールについて確認していきます。
フレネルの式のプログラム実装は光学シミュレーションの基礎であり、Pythonなどで容易に実装できます。
PythonによるフレネルRS・RPの計算実装
Pythonを使ったフレネルの式の実装例を示します。
Pythonでのフレネルの式の実装例として、import numpy as np でnumpyをインポートします。def fresnel(n1, n2, theta1)の関数を定義し、theta1_rad=np.radians(theta1) で入射角をラジアンに変換します。スネルの法則でsin_theta2=(n1/n2)×np.sin(theta1_rad) を計算し、全反射チェックのためnp.clip(sin_theta2, -1, 1) を適用してcos_theta2=np.sqrt(1-sin_theta2**2) を求めます。cos_theta1=np.cos(theta1_rad) として、rs=(n1×cos_theta1-n2×cos_theta2)/(n1×cos_theta1+n2×cos_theta2)、rp=(n2×cos_theta1-n1×cos_theta2)/(n2×cos_theta1+n1×cos_theta2)を計算します。Rs=np.abs(rs)**2、Rp=np.abs(rp)**2 として反射率を返します。theta_range=np.linspace(0, 90, 1000) でθ=0〜90°の配列を作り、Rs_arr, Rp_arr=fresnel(1.0, 1.5, theta_range) で計算してmatplotlibでグラフ化します。
このPython実装を使うと、入射角に対するRs・Rpの変化・ブリュースター角の位置・全反射の開始点などをグラフで視覚的に確認することができます。
光学設計ソフトウェアでのフレネルの式の活用
プロの光学設計の現場では、ZEMAX OpticStudio・CODE V・LightTools・COMSOL Multiphysicsなどの専用光学設計ソフトウェアがフレネルの式を自動的に考慮した正確な光線追跡計算を行います。
ZEMAX OpticStudioでは各レンズ面のフレネル反射損失・偏光解析・多層コーティング設計が統合されており、実際の光学系の透過率・コントラスト・偏光状態を正確にシミュレーションできます。
COMSOLのRF Module・Wave Optics Moduleはフレネルの式を含む電磁波の有限要素法(FEM)シミュレーションが可能で、ナノフォトニクス・プラズモニクス・光学メタマテリアルの設計に使われます。
オープンソースのPython光学ライブラリ(tmm・PyTMM・RayOpticsなど)も充実しており、研究・教育目的でのフレネルの式を使った計算・シミュレーションに活用できます。
複素屈折率とフレネルの式の拡張
金属・半導体など光を吸収する媒質では、屈折率が実数ではなく複素数n̂=n+ikで表されます(kは消衰係数)。
フレネルの式は屈折率を複素数に拡張しても同じ形式が成立し、複素屈折率を代入することで金属反射率・吸収コーティングの設計・半導体の光学特性評価に応用できます。
例えばアルミニウム(n+ik≒0.9+6.3i at 600nm)のフレネル反射率を計算すると、約90%以上の高い反射率が得られ、これがアルミニウムミラーが可視光で使われる理由を数値的に説明します。
複素屈折率を使ったフレネルの式の計算はエリプソメトリー・分光光度計による光学定数測定・ナノ光学の基礎計算として不可欠な知識です。
まとめ
本記事では、フレネルの式の定義・フレネル係数の意味・反射率と透過率の計算方法を、光学公式・境界面・屈折率・偏光・多層膜・数値計算実装まで幅広く解説してきました。
フレネルの式はマクスウェルの電磁方程式の境界条件から厳密に導出される光学の基本公式であり、s偏光とp偏光で異なる反射特性を持つという特性が偏光光学・コーティング設計・光学計測の技術的基盤となっています。
垂直入射・ブリュースター角・全反射という特殊条件の理解と、多層膜設計への拡張・Python実装による数値計算の実践が、フレネルの式を実務に活かすための重要なスキルセットとなります。
本記事の内容がフレネルの式への理解を深め、光学設計・研究・エンジニアリングの実践に広く活用していただければ幸いです。