いま、あなたがこの記事を読んでいるその瞬間にも、世界中の海底に敷設された光ファイバが膨大なデータを運んでいます。動画のストリーミング、金融取引、国際通話 — これらすべてが、髪の毛ほどの細さのガラスの糸を通る「光のパルス」で実現されています。では、なぜ光はガラスの中を何千キロメートルも進めるのでしょうか? そして、1本のファイバでどうやって何テラビットもの情報を同時に送れるのでしょうか?
光ファイバ通信を理解すると、以下のような幅広い技術分野への扉が開きます。
- 衛星通信や深宇宙通信: 地上ネットワークの基幹を担う光ファイバ技術は、自由空間光通信の設計思想にもつながります
- 信号処理・ディジタル通信: 光の変調・復調は電気信号の変復調と同じ原理に基づいており、通信理論の理解を深めます
- センサ工学: 光ファイバは通信だけでなく、温度・ひずみ・圧力の高精度センシングにも使われます
本記事の内容
- 光ファイバの原理(全反射)と構造(コア・クラッド・開口数)
- ステップインデックスとグレーデッドインデックスの違い
- モード伝搬の物理(マルチモード vs シングルモード)
- 損失要因(吸収・散乱・曲げ)と分散(モード・材料・導波路)
- 光源と光検出器の仕組み
- WDM(波長分割多重)とEDFA(光増幅器)
- Pythonによる損失特性・パルス広がりのシミュレーション
前提知識
この記事を読む前に、以下の記事を読んでおくと理解が深まります。
光ファイバとは — 光を閉じ込めるガラスの糸
庭のホースに水を流すと、水はホースの壁に沿って曲がりながら遠くまで届きます。光ファイバも同じ発想です。光をガラスの「管」の中に閉じ込めて、曲がりくねった経路を通しても外に漏れないようにする — これが光ファイバの基本的なアイデアです。
ただし、光はホースの壁のように物理的な壁で跳ね返るのではなく、全反射(total internal reflection) という光学現象を利用して閉じ込められます。屈折率の高い媒質(コア)から屈折率の低い媒質(クラッド)へ光が進むとき、入射角が臨界角を超えると光は境界面で100%反射され、外に漏れ出しません。
スネルの法則を思い出しましょう。屈折率 $n_1$ の媒質から屈折率 $n_2$($n_1 > n_2$)の媒質へ光が入射するとき、入射角 $\theta_1$ と屈折角 $\theta_2$ の間には次の関係が成り立ちます。
$$ n_1 \sin\theta_1 = n_2 \sin\theta_2 $$
屈折角が $\theta_2 = 90°$ になるときの入射角 $\theta_c$ が臨界角で、
$$ \sin\theta_c = \frac{n_2}{n_1} $$
と求まります。入射角が $\theta_c$ より大きければ全反射が起こり、光はコア内に閉じ込められます。たとえば、コアの屈折率が $n_1 = 1.48$、クラッドの屈折率が $n_2 = 1.46$ であれば、
$$ \theta_c = \arcsin\left(\frac{1.46}{1.48}\right) \approx 80.6° $$
となります。コアとクラッドの屈折率差がわずか1.4%程度でも、十分に全反射が起こるのです。
この全反射のメカニズムがあるからこそ、光ファイバは曲げても光を伝送でき、何千キロメートルもの長距離通信を実現できます。では次に、光ファイバの具体的な構造を見ていきましょう。
光ファイバの構造 — コア・クラッド・開口数
光ファイバは、大きく分けて3つの層から構成されています。
- コア(core): 光が実際に伝搬する中心部分。直径は数μm〜数十μm。屈折率が最も高い
- クラッド(cladding): コアを取り囲む層。屈折率がコアよりわずかに低い。直径は典型的に125μm
- 被覆(coating/jacket): 機械的な保護層。光の伝搬には関与しない
コアとクラッドの屈折率差を表す指標として、比屈折率差 $\Delta$ が定義されます。
$$ \Delta = \frac{n_1^2 – n_2^2}{2n_1^2} \approx \frac{n_1 – n_2}{n_1} $$
ここで $n_1$ はコアの屈折率、$n_2$ はクラッドの屈折率です。近似式は $n_1 \approx n_2$ のときに成り立ちます。典型的な光ファイバでは $\Delta$ は0.3%〜2%程度の値をとります。
開口数(NA: Numerical Aperture)
光ファイバの端面にどの角度まで光を入射できるかを表す指標が開口数 NA です。日常的な感覚で言えば、NAは「光ファイバがどれだけ広い角度の光を受け入れられるか」を数値化したものです。カメラのレンズのF値と似た役割を果たします。
開口数の導出を行いましょう。光ファイバの端面に空気(屈折率 $n_0 \approx 1$)中から角度 $\theta_a$ で入射した光がコア内を伝搬するためには、コアとクラッドの境界で全反射が起きなければなりません。
まず、端面でのスネルの法則を適用します。
$$ n_0 \sin\theta_a = n_1 \sin\theta_r $$
ここで $\theta_r$ はコア内での屈折角です。コア内を進む光がクラッド境界面に到達するとき、境界面への入射角は $\phi = 90° – \theta_r$ です。全反射の条件 $\phi \geq \theta_c$ を満たすためには、$\theta_r \leq 90° – \theta_c$ が必要です。
端面でのスネルの法則に $\theta_r = 90° – \theta_c$ を代入すると、受け入れ可能な最大角 $\theta_a^{\max}$ が求まります。
$$ n_0 \sin\theta_a^{\max} = n_1 \sin(90° – \theta_c) = n_1 \cos\theta_c $$
ここで $\sin\theta_c = n_2/n_1$ を使うと、$\cos\theta_c = \sqrt{1 – (n_2/n_1)^2}$ ですから、
$$ n_0 \sin\theta_a^{\max} = n_1 \sqrt{1 – \frac{n_2^2}{n_1^2}} = \sqrt{n_1^2 – n_2^2} $$
と整理できます。これが開口数 NA の定義式です。
$$ \mathrm{NA} = n_0 \sin\theta_a^{\max} = \sqrt{n_1^2 – n_2^2} $$
先ほどの例($n_1 = 1.48$, $n_2 = 1.46$)では、
$$ \mathrm{NA} = \sqrt{1.48^2 – 1.46^2} = \sqrt{2.1904 – 2.1316} = \sqrt{0.0588} \approx 0.242 $$
となり、最大受け入れ角は $\theta_a^{\max} = \arcsin(0.242) \approx 14.0°$ です。この値が大きいほど、広い角度の光を取り込めますが、後述するようにモード数も増えるため、通信性能にはトレードオフが存在します。
比屈折率差を使うと、NAは次のようにも書けます。
$$ \mathrm{NA} = n_1\sqrt{2\Delta} $$
この式から、比屈折率差 $\Delta$ を大きくすればNAが増え、より多くの光を取り込めることがわかります。ただし $\Delta$ が大きいとモード分散も大きくなるため、通信帯域とのバランスが求められます。
ここまでで光ファイバの基本構造とNAを理解しました。次に、コア内の屈折率分布の違いが光の伝搬にどう影響するかを見ていきましょう。
ステップインデックスとグレーデッドインデックス
光ファイバの屈折率分布には、大きく分けて2つのタイプがあります。コア内の屈折率が一様なステップインデックス(SI)型と、コアの中心から外側に向かって屈折率が連続的に減少するグレーデッドインデックス(GI)型です。
ステップインデックス型
ステップインデックス型では、コアの屈折率が中心から端まで一定値 $n_1$ をとり、クラッドとの境界で急激に $n_2$ に変わります。屈折率分布を数式で書くと、
$$ n(r) = \begin{cases} n_1 & (r < a) \\ n_2 & (r \geq a) \end{cases} $$
ここで $a$ はコアの半径、$r$ はファイバの中心軸からの距離です。
この型は構造が単純で製造しやすいという利点がありますが、後述するモード分散が大きいという欠点があります。ステップインデックス型のマルチモードファイバでは、光線がコア内でジグザグ反射しながら伝搬しますが、反射角の異なる光線はそれぞれ異なる経路長を持つため、ファイバの出口に到達する時間にばらつきが生じます。
グレーデッドインデックス型
グレーデッドインデックス型では、コア中心からの距離に応じて屈折率が滑らかに変化します。一般的な屈折率分布は次のべき乗則で表されます。
$$ n(r) = \begin{cases} n_1\sqrt{1 – 2\Delta\left(\dfrac{r}{a}\right)^\alpha} & (r < a) \\ n_1\sqrt{1 - 2\Delta} \approx n_2 & (r \geq a) \end{cases} $$
ここで $\alpha$ はプロファイルパラメータと呼ばれ、屈折率分布の形状を決めます。$\alpha = 2$ のとき放物線分布となり、モード分散を最も小さくできることが知られています。$\alpha \to \infty$ のとき、ステップインデックス型に帰着します。
グレーデッドインデックス型の巧みさは、「外側を通る光は速く、中心を通る光は遅い」という点にあります。屈折率が低い領域ほど光の位相速度は大きくなるため、コアの外側寄りを通る光線は長い経路を辿りますが、同時に速度も速いのです。結果として、経路長の差が速度差で相殺され、すべてのモードがほぼ同じ時間でファイバを通過できます。これがモード分散の低減メカニズムです。
2つの屈折率分布の違いが光の到達時間に大きく影響することがわかりました。ここからは、光ファイバ中の光の伝搬を「モード」という概念で捉えてみましょう。
モード伝搬 — マルチモードとシングルモード
ここまでは光を「光線」として扱ってきましたが、光は本質的には電磁波です。光ファイバのコア径が光の波長に比べて十分大きいときは光線近似が有効ですが、コア径が波長に近づくと波動的な取り扱いが必要になります。光ファイバ中の電磁場の解を求めると、特定の電磁場パターンのみが伝搬可能であることがわかります。この離散的な伝搬パターンをモード(mode)と呼びます。
モードの概念は、楽器の弦の振動と似ています。ギターの弦は任意の形で振動できるわけではなく、基本振動、第2高調波、第3高調波…と、特定の振動パターン(固有モード)の重ね合わせとして振動します。光ファイバのコアも同様に、決められた電磁場パターンだけが安定に伝搬できるのです。
規格化周波数(Vパラメータ)
光ファイバが何個のモードを伝搬できるかを決定する重要なパラメータが、規格化周波数 $V$(Vパラメータ)です。
$$ V = \frac{2\pi a}{\lambda} \cdot \mathrm{NA} = \frac{2\pi a}{\lambda}\sqrt{n_1^2 – n_2^2} $$
ここで $a$ はコア半径、$\lambda$ は光の真空中の波長、NAは開口数です。
$V$ の値によって、伝搬できるモードの数が決まります。ステップインデックス型マルチモードファイバのモード数 $M$ は近似的に、
$$ M \approx \frac{V^2}{2} $$
で与えられます。例えば、コア径 $2a = 50\,\mu\mathrm{m}$、$\mathrm{NA} = 0.20$、波長 $\lambda = 850\,\mathrm{nm}$ のとき、
$$ V = \frac{2\pi \times 25 \times 10^{-6}}{850 \times 10^{-9}} \times 0.20 = \frac{2\pi \times 25}{0.85} \times 0.20 \approx 36.9 $$
モード数は $M \approx 36.9^2 / 2 \approx 681$ と、非常に多くのモードが伝搬します。
シングルモード条件
$V$ の値を小さくしていくと、伝搬できるモードの数が減っていきます。特に、
$$ V < 2.405 $$
のとき、伝搬可能なモードは最低次の $\mathrm{LP}_{01}$ モード(基本モード)のみとなります。この条件を満たすファイバがシングルモードファイバ(SMF)です。2.405 という値は、ベッセル関数 $J_0(x)$ の最初の零点に由来します。
シングルモード条件を $a$ について解くと、
$$ a < \frac{2.405 \lambda}{2\pi \cdot \mathrm{NA}} $$
例えば $\lambda = 1550\,\mathrm{nm}$、$\mathrm{NA} = 0.12$ のとき、
$$ a < \frac{2.405 \times 1.55 \times 10^{-6}}{2\pi \times 0.12} \approx 4.95\,\mu\mathrm{m} $$
となり、コア径は約 $10\,\mu\mathrm{m}$ 以下にする必要があります。このため、シングルモードファイバのコアは非常に細く、光源との結合にレーザーダイオードのような高輝度・高指向性の光源が求められます。
マルチモードファイバとシングルモードファイバの使い分け
| 特性 | マルチモード(MMF) | シングルモード(SMF) |
|---|---|---|
| コア径 | 50μm / 62.5μm | 8〜10μm |
| 光源 | LED / VCSEL | レーザーダイオード |
| モード分散 | 大(GI型で低減可) | なし |
| 伝送距離 | 数百m〜数km | 数十km〜数千km |
| 用途 | LAN, データセンタ内 | 長距離通信, 海底ケーブル |
| コスト | 低(結合が容易) | 高(精密な結合が必要) |
現代の長距離光通信はほぼすべてシングルモードファイバが使われていますが、データセンタ内のような短距離ではマルチモードファイバがコスト面で有利です。
ファイバ内のモード伝搬を理解したところで、次は光が伝搬中に減衰する原因 — すなわち損失要因について見ていきます。
損失要因 — なぜ光は減衰するのか
理想的には、光ファイバ中の光は全反射によって完全に閉じ込められるはずですが、実際にはさまざまな物理的メカニズムによって光パワーは距離とともに減衰します。損失はファイバの長さ $L$ に対して指数関数的に減少し、入力パワー $P_0$ に対する出力パワー $P(L)$ は、
$$ P(L) = P_0 \cdot 10^{-\alpha L / 10} $$
で与えられます。ここで $\alpha$ は損失係数で、単位は $\mathrm{dB/km}$ です。損失をデシベル表記すると、
$$ \text{損失 [dB]} = -10 \log_{10}\frac{P(L)}{P_0} = \alpha L $$
現代のシングルモードファイバでは、波長 $1550\,\mathrm{nm}$ 付近で損失係数 $\alpha \approx 0.2\,\mathrm{dB/km}$ という驚異的な低損失を達成しています。これは、光パワーが半分になるまでに約15kmも伝搬できることを意味します。
損失の主な要因は以下の3つです。
1. 吸収損失
ガラス(シリカ SiO₂)自体が光を吸収する現象です。2つの主要なメカニズムがあります。
- 紫外吸収: シリカの電子遷移に起因し、短波長側(紫外〜可視光)で大きい。波長が長くなるほど急激に減少し、アーバックの裾(Urbach tail)と呼ばれる指数関数的減衰を示します
- 赤外吸収: シリカの分子振動(Si-O結合の振動)に起因し、長波長側(約1.6μm以上)で急激に増大します
さらに、ガラス中に不純物として含まれる水酸基(OH⁻)イオンの振動による吸収ピークが波長 $1383\,\mathrm{nm}$ 付近に現れます。この「水のピーク」は、かつて光通信で使える波長帯を制限する大きな要因でした。近年の製造技術の進歩により、OH吸収を大幅に低減した「低水ピークファイバ(low-water-peak fiber)」が実用化されています。
2. 散乱損失
ガラスの微視的な屈折率ゆらぎによって光が散乱される現象です。最も重要なのはレイリー散乱(Rayleigh scattering)です。
レイリー散乱は、ガラス製造時に溶融シリカが冷却・固化する際に「凍結」された密度ゆらぎに起因します。この密度ゆらぎはガラスに固有のものであり、原理的に除去できません。レイリー散乱損失は波長の4乗に反比例します。
$$ \alpha_R \propto \frac{1}{\lambda^4} $$
このため、短波長の光ほどレイリー散乱は大きくなります。波長 $850\,\mathrm{nm}$ での損失が約 $2\,\mathrm{dB/km}$ であるのに対し、$1550\,\mathrm{nm}$ では約 $0.15\,\mathrm{dB/km}$ まで低下します。長波長で通信するほど散乱損失を低減できるのですが、あまりに長い波長にすると赤外吸収が増大するため、その「谷」にあたる $1550\,\mathrm{nm}$ 付近が最も低損失な窓となるわけです。
3. 曲げ損失
光ファイバを曲げると、コア内を伝搬する光の一部がクラッド外に放射されて失われます。曲げ損失には2つのタイプがあります。
- マクロベンド損失: ファイバの曲げ半径が数mm〜数cm程度の大きな曲がり。曲げ半径が小さいほど損失が増大し、特にシングルモードファイバで顕著です。経験的に、曲げ半径がある臨界値を下回ると損失が急激に増加します
- マイクロベンド損失: ファイバ軸のμmオーダーのランダムな微小変位。ケーブル内の側圧や製造時の不均一さが原因です
曲げ損失は長波長ほど大きくなります(モードの電磁場がクラッド側に広がるため)。これは散乱損失とは逆の波長依存性を示すため、損失の最小点は散乱と曲げのバランスで決まります。
以上の3つの損失メカニズムが波長に応じて異なる寄与を持つため、光ファイバの全損失は波長の関数として特有のスペクトルを描きます。後ほど、Pythonでこの損失特性を可視化してみましょう。その前に、損失と同じくらい重要な課題である「分散」について見ていきます。
分散 — パルスはなぜ広がるのか
光通信ではデジタル情報を「光パルスのオン・オフ」で送ります。「1」に対応する短い光パルスを送り出しても、ファイバを伝搬するうちにパルスの時間幅が広がり、隣のパルスと重なってしまうと、ビット識別ができなくなります。このパルス広がり現象を分散(dispersion)と呼びます。
分散は光ファイバ通信の伝送帯域(ビットレート×距離)を制限する最も重要な要因の一つです。分散には大きく3種類あります。
1. モード分散(モード間分散)
マルチモードファイバで、異なるモードがそれぞれ異なる群速度を持つために生じる分散です。ステップインデックス型マルチモードファイバでは、最低次モード(ほぼ軸方向に進む光線)と最高次モード(最大反射角で進む光線)の伝搬時間差が分散の大きさを決めます。
ファイバ長 $L$ に対するモード分散の時間幅は、ステップインデックス型では次のように見積もれます。
$$ \Delta \tau_{\text{modal}} \approx \frac{n_1 \Delta}{c} L $$
ここで $c$ は真空中の光速です。例えば $n_1 = 1.48$, $\Delta = 0.01$, $L = 1\,\mathrm{km}$ とすると、
$$ \Delta \tau_{\text{modal}} \approx \frac{1.48 \times 0.01}{3 \times 10^8} \times 10^3 \approx 49.3\,\mathrm{ns/km} $$
これは1kmあたり約50nsの時間広がりを意味し、ビットレートを20Mbit/s程度に制限します(パルス幅がビット周期を超えないためには $B \lesssim 1/(2\Delta\tau)$)。
グレーデッドインデックス型($\alpha \approx 2$)ではモード分散が大幅に低減され、
$$ \Delta \tau_{\text{GI}} \approx \frac{n_1 \Delta^2}{8c} L $$
となります。$\Delta = 0.01$ のとき、SI型に比べて約 $\Delta/8 = 1/800$ 倍に縮小されます。
シングルモードファイバでは伝搬モードが1つだけなので、モード分散は原理的にゼロです。これが長距離通信でシングルモードが選ばれる最大の理由です。
2. 材料分散(波長分散)
光源から出る光は完全な単色ではなく、有限のスペクトル幅 $\Delta\lambda$ を持っています。ガラスの屈折率 $n(\lambda)$ は波長によって異なるため(これを分散関係と呼びます)、異なる波長成分は異なる速度で伝搬し、パルスが広がります。
材料分散は、材料分散係数 $D_M$ で定量化されます。
$$ D_M = -\frac{\lambda}{c}\frac{d^2 n}{d\lambda^2} $$
単位は $\mathrm{ps/(nm \cdot km)}$ で、「スペクトル幅1nmの光源で1km伝搬したときのパルス広がり(ps)」を意味します。材料分散による時間広がりは、
$$ \Delta\tau_M = |D_M| \cdot \Delta\lambda \cdot L $$
で計算できます。
シリカガラスの材料分散の特徴として、波長約 $1310\,\mathrm{nm}$ で $D_M = 0$ になるゼロ分散波長が存在します。この波長を境に、短波長側では $D_M < 0$(正常分散)、長波長側では $D_M > 0$(異常分散)となります。ゼロ分散波長では材料分散によるパルス広がりが最小になるため、初期の光通信システムでは1310nm帯が使われていました。
3. 導波路分散
光の電磁場はコアだけでなく、一部がクラッドにも染み出しています(エバネッセント場)。波長が変わるとコアとクラッドにおける電磁場の分布比率が変化し、実効的な屈折率が変わります。この効果による分散が導波路分散 $D_W$ です。
導波路分散はシングルモードファイバで特に重要で、一般に $D_W < 0$(正常分散的)です。材料分散 $D_M$ と導波路分散 $D_W$ を合わせた色分散(chromatic dispersion)は、
$$ D = D_M + D_W $$
となります。導波路分散は材料分散と符号が反対になり得るため、ファイバの設計(コア径、屈折率分布の調整)によって全色分散がゼロになる波長(ゼロ分散波長)をシフトすることが可能です。たとえば、分散シフトファイバ(DSF)はゼロ分散波長を $1550\,\mathrm{nm}$ 付近にシフトさせ、最低損失窓とゼロ分散波長を一致させています。
分散は光通信の伝送速度・距離を左右する根幹的な現象です。次に、ファイバに光を入力する「光源」の話に移りましょう。
光源 — LEDとレーザーダイオード
光ファイバ通信で使われる光源は、主にLED(発光ダイオード)とLD(レーザーダイオード)の2種類です。どちらも半導体のpn接合(またはダブルヘテロ構造)における電子とホールの再結合で光を発生させますが、発光のメカニズムが根本的に異なります。
LED(発光ダイオード)
LEDは自然放出(spontaneous emission)によって光を発生します。電子とホールがランダムに再結合するため、発光は等方的で、スペクトル幅が広い($\Delta\lambda \approx 30\text{–}60\,\mathrm{nm}$)のが特徴です。
- 利点: 安価、長寿命、温度依存性が小さい、駆動回路が簡単
- 欠点: スペクトル幅が広い(材料分散が大きくなる)、出力パワーが小さい、変調速度が遅い(〜数百Mbit/s)
マルチモードファイバとの組み合わせで、短距離・低速の通信に使われます。
レーザーダイオード(LD)
LDは誘導放出(stimulated emission)を利用します。光共振器内で光が何度も反射・増幅され、位相・波長が揃ったコヒーレントな光が放出されます。スペクトル幅はLEDの1/100以下($\Delta\lambda \approx 0.1\text{–}2\,\mathrm{nm}$)と極めて狭く、さらにDFB(分布帰還型)レーザーでは $\Delta\lambda < 0.01\,\mathrm{nm}$ を実現します。
- 利点: 高出力、狭スペクトル幅(材料分散が小さい)、高速変調可能(数十Gbit/s)、ビーム指向性が高い
- 欠点: LEDより高価、温度制御が必要、駆動回路がやや複雑
シングルモードファイバとの組み合わせで、長距離・高速の通信に使われます。
光源のスペクトル幅が材料分散を通じて伝送帯域に影響することがわかりました。光を送ったら、受信側で光を電気信号に戻す必要があります。次は光検出器について見ていきましょう。
光検出器 — PINフォトダイオードとAPD
光検出器は、光のエネルギーを電気信号に変換する半導体デバイスです。光ファイバの出口から出た微弱な光パルスを正確に検出するために、高感度と高速応答が求められます。
PINフォトダイオード
PINフォトダイオードは、p型半導体とn型半導体の間に真性(intrinsic: I)層を挟んだ構造です。逆バイアスを印加すると、I層全体が空乏層となり、ここに入射した光子が電子-ホール対を生成します。生成されたキャリアは電界で加速され、光電流として外部回路に流れます。
量子効率 $\eta$ は、入射光子のうち実際に光電流に寄与する割合を表し、
$$ \eta = \frac{I_p / q}{P_{\text{in}} / (h\nu)} $$
で定義されます。ここで $I_p$ は光電流、$q$ は電子の電荷、$P_{\text{in}}$ は入射光パワー、$h\nu$ は光子のエネルギーです。受光感度(レスポンシビティ)$R$ は、
$$ R = \frac{I_p}{P_{\text{in}}} = \frac{\eta q}{h\nu} = \frac{\eta q \lambda}{hc} $$
で与えられ、単位は $\mathrm{A/W}$ です。波長 $1550\,\mathrm{nm}$、$\eta = 0.9$ のとき、
$$ R = \frac{0.9 \times 1.6 \times 10^{-19} \times 1550 \times 10^{-9}}{6.63 \times 10^{-34} \times 3 \times 10^8} \approx 1.12\,\mathrm{A/W} $$
PINフォトダイオードは構造が単純で高速応答が可能(帯域〜数十GHz)ですが、内部増幅機能がないため、微弱信号の検出にはプリアンプが必要です。
APD(アバランシェフォトダイオード)
APDは、PINの空乏層よりもさらに高い逆バイアス電圧を印加し、光子によって生成された電子をアバランシェ(なだれ)増倍させます。1個の電子が高電界で加速され、格子原子と衝突して新たな電子-ホール対を生成し、これが連鎖的に繰り返されることで、実効的な利得 $M$ が得られます。
APDの受光感度は、
$$ R_{\text{APD}} = M \cdot R_{\text{PIN}} = M \cdot \frac{\eta q \lambda}{hc} $$
典型的には $M = 10\text{–}100$ 程度の利得が得られます。ただし、なだれ増倍にはランダム性があるため、ショット雑音が $M$ 倍以上に増加する「過剰雑音」が発生します。過剰雑音指数 $F(M)$ で特性が評価され、
$$ F(M) = kM + (1 – k)\left(2 – \frac{1}{M}\right) $$
ここで $k$ はイオン化係数比です。$k$ が小さいほど(一方のキャリアのみが増倍に寄与するほど)過剰雑音が小さく、高感度が得られます。
光源と光検出器を理解したところで、次は1本のファイバでいかにして大容量の情報を伝送するか — 波長多重技術に進みましょう。
WDM — 波長分割多重
高速道路を1車線だけ使うのは非効率です。複数の車線を同時に使えば、道路の幅(帯域)を最大限に活かせます。光ファイバ通信における「車線を増やす」技術がWDM(Wavelength Division Multiplexing: 波長分割多重)です。
WDMは、異なる波長の光信号を1本のファイバに同時に入射し、受信側でそれぞれの波長を分離して取り出す技術です。各波長は互いに干渉しない独立した通信チャネルとして機能するため、ファイバ1本あたりの伝送容量を波長数倍にスケールアップできます。
WDMの原理と構成
WDMシステムの基本構成は以下のとおりです。
- 送信側: 各チャネルに異なる波長のレーザーダイオードを割り当て、それぞれにデータ信号を変調する
- 合波器(Multiplexer: MUX): 複数の波長を1本のファイバに合成する光学素子
- 光ファイバ: すべての波長を同時に伝搬する
- 分波器(Demultiplexer: DEMUX): 受信側でファイバからの光を波長ごとに分離する
- 受信側: 各チャネルの光を個別のフォトダイオードで電気信号に変換する
合波・分波には、回折格子、アレイ導波路回折格子(AWG)、薄膜フィルタなどが使われます。
WDMの種類
| 種類 | 波長間隔 | チャネル数 | 特徴 |
|---|---|---|---|
| CWDM(粗波長分割多重) | 20nm | 〜18 | 温度制御不要のレーザー使用可、低コスト |
| DWDM(密波長分割多重) | 0.8nm (100GHz) / 0.4nm (50GHz) | 40〜160+ | 温度制御DFBレーザー、大容量 |
DWDMでは、ITU-Tグリッドに基づいて周波数間隔が標準化されています。C帯(1530〜1565nm)に100GHz間隔で約40波長を配置する場合、1チャネルあたり100Gbit/sとすれば、ファイバ1本で4Tbit/sの伝送容量が得られます。実際の商用システムでは、L帯(1565〜1625nm)も使い、さらに高密度なグリッド(50GHz, 25GHz)を採用することで、数十Tbit/s以上の容量を実現しています。
WDMで波長数を増やし距離を伸ばすためには、長距離伝搬で減衰した光信号を増幅する仕組みが必要です。次に光増幅器を見ていきましょう。
光増幅器 — EDFA
WDMの登場以前、長距離通信では光信号を一度電気信号に変換し(O/E変換)、電気的に増幅した後に再び光に変換する(E/O変換)再生中継器が使われていました。しかし、WDMで波長数が増えると、各波長ごとにO/E/O変換器を設置しなければならず、コストと複雑さが爆発的に増大します。
この問題を解決したのがEDFA(Erbium-Doped Fiber Amplifier: エルビウム添加ファイバ増幅器)です。EDFAは、光信号を電気に変換することなく、直接光のまま増幅します。しかもWDMの全波長を一括して増幅できるため、WDM技術と組み合わせることで長距離大容量通信が初めて実用的になりました。
EDFAの原理
EDFAの動作原理は、レーザーと同じ誘導放出です。
- エルビウム添加ファイバ(EDF): コアにエルビウム(Er³⁺)イオンを添加した特殊な光ファイバ(長さ数m〜数十m)
- 励起光源(ポンプレーザー): 波長980nmまたは1480nmのレーザーで、Er³⁺イオンをエネルギー準位の高い状態に励起する(反転分布の形成)
- 誘導放出増幅: 信号光(1530〜1565nm)がEDF中を通過する際、励起されたEr³⁺イオンが信号光と同じ波長・同じ位相の光子を放出する。これにより信号光が増幅される
EDFAの利得は典型的に20〜30dB(100〜1000倍)で、C帯(1530〜1565nm)全体にわたって増幅が可能です。WDMの各波長が同時に増幅されるため、WDMシステムの中継コストを劇的に削減しました。
EDFAの雑音
EDFAにはASE(Amplified Spontaneous Emission: 増幅された自然放出光)と呼ばれる雑音が伴います。Er³⁺イオンの自然放出が増幅されて信号に重畳するもので、EDFA を多段に接続すると ASE 雑音が累積します。光信号対雑音比(OSNR: Optical Signal-to-Noise Ratio)は、
$$ \mathrm{OSNR} = \frac{P_{\text{sig}}}{P_{\text{ASE}}} = \frac{P_{\text{sig}}}{2 n_{\text{sp}}(G-1)h\nu \Delta\nu} $$
で与えられます。ここで $n_{\text{sp}}$ は自然放出係数(理想値1)、$G$ は利得、$h\nu$ は光子エネルギー、$\Delta\nu$ は雑音帯域幅です。$N$ 個のEDFAを直列接続すると、OSNRは $1/N$ に比例して劣化します。
EDFAの登場によって、WDMは海底ケーブルから都市間ネットワークまで、現代の光通信インフラの基盤技術となりました。それでは、ここまで学んだ損失と分散の物理を、Pythonで可視化して体感してみましょう。
Pythonで光ファイバの損失特性を可視化する
ここでは、光ファイバの損失スペクトルをモデル化し、レイリー散乱・赤外吸収・紫外吸収・OH吸収のそれぞれの寄与を可視化します。目的は、なぜ1310nmと1550nmが光通信の窓として選ばれるのかを目で確認することです。
import numpy as np
import matplotlib.pyplot as plt
# 波長範囲 (μm)
lam = np.linspace(0.7, 1.8, 1000)
# --- 各損失成分のモデル ---
# 1. レイリー散乱: A / lambda^4
A_R = 0.8 # レイリー散乱係数 (dB/km・μm^4)
rayleigh = A_R / lam**4
# 2. 赤外吸収: 指数関数的増大
C_IR = 7.8e8 # 係数
k_IR = 48.0 # μm^-1
infrared = C_IR * np.exp(-k_IR / lam)
# 3. 紫外吸収 (Urbach tail): 指数関数的減少
C_UV = 1.5e-2
k_UV = 4.6 # μm
ultraviolet = C_UV * np.exp(k_UV / lam) * np.exp(-k_UV / 0.5)
# 4. OH吸収ピーク (1383nm付近のガウス関数)
A_OH = 0.8 # dB/km (通常ファイバ)
lam_OH = 1.383 # μm
sigma_OH = 0.015 # μm
oh_peak = A_OH * np.exp(-0.5 * ((lam - lam_OH) / sigma_OH)**2)
# 2次高調波 (1240nm付近)
oh_peak += 0.15 * np.exp(-0.5 * ((lam - 1.240) / 0.012)**2)
# 5. 全損失
total = rayleigh + infrared + ultraviolet + oh_peak
# 下限をクリップ (非物理的な値を避ける)
total = np.clip(total, 0.15, None)
# --- プロット ---
fig, ax = plt.subplots(figsize=(10, 6))
ax.semilogy(lam * 1000, rayleigh, '--', color='#2196F3', alpha=0.8, label='Rayleigh scattering')
ax.semilogy(lam * 1000, infrared, '--', color='#F44336', alpha=0.8, label='Infrared absorption')
ax.semilogy(lam * 1000, ultraviolet, '--', color='#9C27B0', alpha=0.8, label='Ultraviolet absorption')
ax.semilogy(lam * 1000, oh_peak, '--', color='#FF9800', alpha=0.8, label='OH absorption')
ax.semilogy(lam * 1000, total, '-', color='white', linewidth=2.5, label='Total loss')
# 通信窓の表示
windows = {
'O band\n(1310nm)': 1310,
'C band\n(1550nm)': 1550,
'S band\n(850nm)': 850,
}
for name, wl in windows.items():
idx = np.argmin(np.abs(lam * 1000 - wl))
ax.axvline(wl, color='#4CAF50', alpha=0.3, linestyle=':')
ax.annotate(name, xy=(wl, total[idx]),
xytext=(wl + 30, total[idx] * 2.5),
fontsize=9, color='#4CAF50',
arrowprops=dict(arrowstyle='->', color='#4CAF50', alpha=0.6))
ax.set_xlabel('Wavelength [nm]', fontsize=12)
ax.set_ylabel('Attenuation [dB/km]', fontsize=12)
ax.set_title('Optical Fiber Loss Spectrum', fontsize=14)
ax.set_xlim(700, 1800)
ax.set_ylim(0.1, 20)
ax.legend(fontsize=10)
ax.grid(True, alpha=0.3)
fig.patch.set_facecolor('#1a1a2e')
ax.set_facecolor('#16213e')
ax.tick_params(colors='white')
ax.xaxis.label.set_color('white')
ax.yaxis.label.set_color('white')
ax.title.set_color('white')
for spine in ax.spines.values():
spine.set_color('white')
ax.legend(fontsize=10, facecolor='#16213e', edgecolor='white', labelcolor='white')
plt.tight_layout()
plt.savefig('fiber_loss_spectrum.png', dpi=150, facecolor='#1a1a2e')
plt.show()
上のグラフから、以下の重要な特徴が読み取れます。
- 短波長側(700〜1000nm)ではレイリー散乱が支配的 — 波長の4乗に反比例するため、短波長ほど急激に損失が増大します。850nm帯(S帯)は約2dB/kmの損失があり、短距離通信にしか使えません
- 長波長側(1600nm以上)では赤外吸収が支配的 — シリカのSi-O分子振動による吸収が急激に増大し、通信に使えなくなります
- 1383nm付近にOH吸収のピーク — 水酸基イオンの振動による吸収ピークが谷を2つに分割しています。低水ピークファイバではこのピークが大幅に低減され、O帯からC帯まで連続的に利用可能になります
- 1550nm付近で最小損失(約0.2dB/km) — レイリー散乱と赤外吸収の谷底に位置し、これがC帯(Conventional band)として長距離通信の標準波長帯に選ばれた物理的な理由です
このように、光通信の窓は「たまたま」選ばれたのではなく、シリカガラスの物理的性質から必然的に決まっているのです。次に、パルスの分散による広がりをシミュレーションしてみましょう。
Pythonでパルス広がりシミュレーション
分散の効果を直感的に理解するために、ガウスパルスがシングルモードファイバ中を伝搬する際に色分散によって広がる様子をシミュレーションします。
色分散の物理は、周波数領域で記述すると見通しがよくなります。分散パラメータ $\beta_2$(群速度分散: GVD)を使うと、分散媒質中のパルスの伝搬は次のように記述されます。初期パルスのフーリエスペクトルを $\tilde{A}(0, \omega)$ とすると、距離 $z$ 伝搬後のスペクトルは、
$$ \tilde{A}(z, \omega) = \tilde{A}(0, \omega) \cdot \exp\left(i \frac{\beta_2}{2}\omega^2 z\right) $$
で与えられます。ここで $\omega$ は中心周波数からの離調角周波数です。パルスの時間波形は逆フーリエ変換で得られます。
分散パラメータ $\beta_2$ と色分散係数 $D$ の関係は、
$$ \beta_2 = -\frac{\lambda^2}{2\pi c} D $$
です。
初期パルスとして半値全幅(FWHM)$T_0$ のガウスパルスを考えると、$\beta_2 z$ の増大に伴ってパルス幅が広がり、その出力幅は解析的に、
$$ T(z) = T_0\sqrt{1 + \left(\frac{\beta_2 z}{T_0^2 / (4\ln 2)}\right)^2} $$
で与えられます。これをPythonでフーリエ変換ベースのシミュレーションとして実装してみましょう。
import numpy as np
import matplotlib.pyplot as plt
# --- パラメータ設定 ---
c = 3.0e8 # 光速 [m/s]
lam = 1550e-9 # 波長 [m]
D = 17e-6 # 色分散係数 [s/(m・m)] = 17 ps/(nm・km) をSI単位に変換
beta2 = -(lam**2) / (2 * np.pi * c) * D # GVDパラメータ [s^2/m]
print(f"beta2 = {beta2:.4e} s^2/m = {beta2*1e24:.2f} ps^2/km")
# 初期パルスパラメータ
T_FWHM = 25e-12 # FWHM = 25 ps
T0 = T_FWHM / (2 * np.sqrt(np.log(2))) # ガウスパルスの1/eパルス幅
# 時間軸 (十分広く取る)
N = 2**14
dt = 0.5e-12 # 時間刻み [s]
t = (np.arange(N) - N // 2) * dt
# 周波数軸
df = 1.0 / (N * dt)
f = np.fft.fftfreq(N, dt)
omega = 2 * np.pi * f
# 初期ガウスパルス
A0 = np.exp(-0.5 * (t / T0)**2)
# 伝搬距離 [km]
distances = [0, 20, 50, 100, 200]
# --- フーリエ変換ベースの伝搬計算 ---
A0_fft = np.fft.fft(A0)
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
fig.patch.set_facecolor('#1a1a2e')
colors = ['#00E5FF', '#2196F3', '#FF9800', '#F44336', '#E040FB']
# 左: パルス波形の時間変化
ax1 = axes[0]
for i, L_km in enumerate(distances):
L = L_km * 1e3 # kmをmに変換
# 分散による位相シフト
H = np.exp(1j * 0.5 * beta2 * omega**2 * L)
A_z = np.fft.ifft(A0_fft * H)
power = np.abs(A_z)**2
power = power / power.max() # 規格化
ax1.plot(t * 1e12, power, color=colors[i], linewidth=1.5,
label=f'z = {L_km} km')
ax1.set_xlabel('Time [ps]', fontsize=12)
ax1.set_ylabel('Normalized power', fontsize=12)
ax1.set_title('Pulse broadening due to chromatic dispersion', fontsize=13)
ax1.set_xlim(-300, 300)
ax1.legend(fontsize=10, facecolor='#16213e', edgecolor='white', labelcolor='white')
ax1.grid(True, alpha=0.3)
ax1.set_facecolor('#16213e')
ax1.tick_params(colors='white')
ax1.xaxis.label.set_color('white')
ax1.yaxis.label.set_color('white')
ax1.title.set_color('white')
for spine in ax1.spines.values():
spine.set_color('white')
# 右: パルス幅の距離依存性 (解析解と比較)
ax2 = axes[1]
L_arr = np.linspace(0, 200, 200) # km
L_arr_m = L_arr * 1e3 # m
# 解析解: T(z) = T0 * sqrt(1 + (beta2*z / T0^2)^2)
# FWHM表記
T_FWHM_z_analytical = T_FWHM * np.sqrt(1 + (beta2 * L_arr_m / T0**2)**2)
# 数値計算によるFWHM
T_FWHM_numerical = []
for L_km in L_arr:
L = L_km * 1e3
H = np.exp(1j * 0.5 * beta2 * omega**2 * L)
A_z = np.fft.ifft(A0_fft * H)
power = np.abs(A_z)**2
power_norm = power / power.max()
# FWHMを数値的に求める
half_max_indices = np.where(power_norm >= 0.5)[0]
if len(half_max_indices) > 0:
fwhm = (half_max_indices[-1] - half_max_indices[0]) * dt
else:
fwhm = T_FWHM
T_FWHM_numerical.append(fwhm)
T_FWHM_numerical = np.array(T_FWHM_numerical)
ax2.plot(L_arr, T_FWHM_z_analytical * 1e12, '-', color='#00E5FF', linewidth=2,
label='Analytical')
ax2.plot(L_arr, T_FWHM_numerical * 1e12, 'o', color='#FF9800', markersize=2,
alpha=0.6, label='Numerical (FFT)')
ax2.set_xlabel('Propagation distance [km]', fontsize=12)
ax2.set_ylabel('Pulse FWHM [ps]', fontsize=12)
ax2.set_title('Pulse width vs propagation distance', fontsize=13)
ax2.legend(fontsize=10, facecolor='#16213e', edgecolor='white', labelcolor='white')
ax2.grid(True, alpha=0.3)
ax2.set_facecolor('#16213e')
ax2.tick_params(colors='white')
ax2.xaxis.label.set_color('white')
ax2.yaxis.label.set_color('white')
ax2.title.set_color('white')
for spine in ax2.spines.values():
spine.set_color('white')
plt.tight_layout()
plt.savefig('pulse_broadening.png', dpi=150, facecolor='#1a1a2e')
plt.show()
このシミュレーション結果から、以下のことが読み取れます。
- パルスは距離とともに広がるが、面積(エネルギー)は保存される — 左のグラフで、ピークパワーが下がる一方、パルス裾野が広がっています。分散はエネルギーを奪うのではなく、時間的に再分配する現象です
- 100km伝搬後のパルス幅は初期値の約6倍に拡大 — 25psのパルスが約150ps以上に広がります。40Gbit/sのシステム(ビット間隔25ps)では、100km程度で隣接パルスが重なり始め、信号判定が困難になることがわかります
- 解析解と数値計算が完全に一致 — 右のグラフで、FFTベースの数値解がガウスパルスの解析式と精密に一致しています。これは、線形分散の範囲ではフーリエ変換法が正確な数値手法であることを示しています
- 短距離では広がりが緩やか、長距離で加速的に増大 — パルス幅は $\sqrt{1 + (z/L_D)^2}$ に従い、$L_D = T_0^2/|\beta_2|$(分散長)を超えると急激に広がります。この結果は、分散補償なしの伝送距離に上限があることを物理的に示しています
次に、ステップインデックスとグレーデッドインデックスのモード分散の違いを可視化します。
import numpy as np
import matplotlib.pyplot as plt
# --- パラメータ ---
n1 = 1.48 # コア屈折率
n2 = 1.46 # クラッド屈折率
Delta = (n1 - n2) / n1 # 比屈折率差
c = 3.0e8 # 光速 [m/s]
a = 25e-6 # コア半径 [m] (50μm径)
# 伝搬距離
L_km = np.linspace(0.1, 5, 100)
L = L_km * 1e3 # m
# --- モード分散の計算 ---
# ステップインデックス (SI) 型
delta_tau_SI = (n1 * Delta / c) * L # [s]
# グレーデッドインデックス (GI) 型 (alpha=2)
delta_tau_GI = (n1 * Delta**2 / (8 * c)) * L # [s]
# --- パルス波形の比較 (L = 2km) ---
L_demo = 2e3 # 2 km
t = np.linspace(-100e-9, 100e-9, 2000)
T_pulse = 5e-9 # 初期パルス幅 5ns
# 初期パルス
pulse_initial = np.exp(-0.5 * (t / T_pulse)**2)
# SI型の出力パルス (モード分散でブロードニング)
T_SI = np.sqrt(T_pulse**2 + ((n1 * Delta / c) * L_demo)**2)
pulse_SI = np.exp(-0.5 * (t / T_SI)**2)
# GI型の出力パルス
T_GI = np.sqrt(T_pulse**2 + ((n1 * Delta**2 / (8 * c)) * L_demo)**2)
pulse_GI = np.exp(-0.5 * (t / T_GI)**2)
# --- プロット ---
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
fig.patch.set_facecolor('#1a1a2e')
# 左: モード分散 vs 距離
ax1 = axes[0]
ax1.semilogy(L_km, delta_tau_SI * 1e9, '-', color='#F44336', linewidth=2,
label='Step-index (SI)')
ax1.semilogy(L_km, delta_tau_GI * 1e9, '-', color='#00E5FF', linewidth=2,
label='Graded-index (GI, α=2)')
ax1.set_xlabel('Propagation distance [km]', fontsize=12)
ax1.set_ylabel('Modal dispersion [ns]', fontsize=12)
ax1.set_title('Modal dispersion: SI vs GI', fontsize=13)
ax1.legend(fontsize=10, facecolor='#16213e', edgecolor='white', labelcolor='white')
ax1.grid(True, alpha=0.3)
ax1.set_facecolor('#16213e')
ax1.tick_params(colors='white')
ax1.xaxis.label.set_color('white')
ax1.yaxis.label.set_color('white')
ax1.title.set_color('white')
for spine in ax1.spines.values():
spine.set_color('white')
# 右: パルス波形の比較 (L = 2km)
ax2 = axes[1]
ax2.plot(t * 1e9, pulse_initial / pulse_initial.max(), '--', color='#4CAF50',
linewidth=1.5, label='Input pulse (5 ns)')
ax2.plot(t * 1e9, pulse_SI / pulse_SI.max(), '-', color='#F44336',
linewidth=2, label=f'SI output (FWHM ≈ {T_SI*1e9*2.355:.1f} ns)')
ax2.plot(t * 1e9, pulse_GI / pulse_GI.max(), '-', color='#00E5FF',
linewidth=2, label=f'GI output (FWHM ≈ {T_GI*1e9*2.355:.1f} ns)')
ax2.set_xlabel('Time [ns]', fontsize=12)
ax2.set_ylabel('Normalized power', fontsize=12)
ax2.set_title(f'Pulse shape after L = {L_demo/1e3:.0f} km', fontsize=13)
ax2.set_xlim(-80, 80)
ax2.legend(fontsize=10, facecolor='#16213e', edgecolor='white', labelcolor='white')
ax2.grid(True, alpha=0.3)
ax2.set_facecolor('#16213e')
ax2.tick_params(colors='white')
ax2.xaxis.label.set_color('white')
ax2.yaxis.label.set_color('white')
ax2.title.set_color('white')
for spine in ax2.spines.values():
spine.set_color('white')
plt.tight_layout()
plt.savefig('modal_dispersion_comparison.png', dpi=150, facecolor='#1a1a2e')
plt.show()
print(f"比屈折率差 Δ = {Delta:.4f}")
print(f"SI型モード分散 (1km): {n1*Delta/c*1e3*1e9:.2f} ns/km")
print(f"GI型モード分散 (1km): {n1*Delta**2/(8*c)*1e3*1e9:.4f} ns/km")
print(f"分散低減比 (GI/SI): {Delta/8:.6f} = 1/{8/Delta:.0f}")
このシミュレーション結果から、以下のことが確認できます。
- ステップインデックス型のモード分散は約50ns/km — これは非常に大きな値で、1kmの伝搬で数十nsのパルス広がりが生じます。左のグラフの赤い線が急勾配で上昇しているのがその証拠です
- グレーデッドインデックス型では約3桁の改善 — GI型のモード分散はSI型のおよそ $\Delta/8 \approx 1/600$ に低減されます。これは屈折率の放物線分布が経路長の差を速度差で巧みに相殺するためです
- パルス波形の比較が歴然 — 右のグラフで、2km伝搬後のパルスを比較すると、SI型は入力パルスの数十倍に広がっているのに対し、GI型はほぼ初期パルスに近い形を保っています
- それでもシングルモードには及ばない — GI型でもモード分散はゼロにはなりません。長距離通信でシングルモードファイバが不可欠な理由がここにあります
通信システム全体の設計指標 — パワーバジェットと帯域
ここまでの知識を統合して、光ファイバ通信システムの設計に使われる2つの重要な指標を確認しておきましょう。
パワーバジェット
パワーバジェットは、送信器の出力パワーと受信器の最低受信感度の差(システムマージン)をもとに、許容される損失の合計を求める設計手法です。
$$ P_{\text{tx}} – P_{\text{rx, min}} \geq \alpha L + \alpha_s N_s + \alpha_c N_c + M_{\text{sys}} $$
ここで、 – $P_{\text{tx}}$: 送信パワー [dBm] – $P_{\text{rx, min}}$: 受信器の最低受信感度 [dBm] – $\alpha L$: ファイバの伝搬損失 – $\alpha_s N_s$: スプライス(融着接続)の損失 – $\alpha_c N_c$: コネクタの損失 – $M_{\text{sys}}$: システムマージン(経年劣化、修理、温度変動等を考慮)
例として、$P_{\text{tx}} = 0\,\mathrm{dBm}$(1mW)、$P_{\text{rx, min}} = -30\,\mathrm{dBm}$、$\alpha = 0.2\,\mathrm{dB/km}$、コネクタ・スプライス損失計 $3\,\mathrm{dB}$、システムマージン $3\,\mathrm{dB}$ とすると、
$$ 30 – 3 – 3 = 24\,\mathrm{dB} $$
$$ L_{\max} = \frac{24}{0.2} = 120\,\mathrm{km} $$
EDFAなしで最大120kmの伝送が可能という見積もりが得られます。
帯域制限(分散制限距離)
パワーバジェットとは別に、分散によるパルス広がりが伝送距離を制限します。ビットレート $B$ のシステムでは、パルス幅が1ビット周期 $T_b = 1/B$ を大きく超えると符号間干渉(ISI)が生じます。分散制限距離は概ね次の条件で見積もれます。
$$ |D| \cdot \Delta\lambda \cdot L \lesssim \frac{1}{B} $$
つまり、
$$ L_{\text{disp}} \lesssim \frac{1}{|D| \cdot \Delta\lambda \cdot B} $$
$D = 17\,\mathrm{ps/(nm \cdot km)}$、$\Delta\lambda = 0.1\,\mathrm{nm}$(DFBレーザー)、$B = 10\,\mathrm{Gbit/s}$ のとき、
$$ L_{\text{disp}} \lesssim \frac{1}{17 \times 0.1 \times 10} = 58.8\,\mathrm{km} $$
この場合、パワーバジェットは120kmを許容しますが、分散が58.8kmで制限するため、実効的な伝送距離は約59kmとなります。これがパワーバジェットだけでなく分散も考慮する必要がある理由であり、分散補償ファイバやDSFの重要性を示しています。
ここまでで光ファイバ通信の主要な要素をすべてカバーしました。最後にまとめましょう。
まとめ
本記事では、光ファイバ通信の基礎を全反射の原理から波長多重・光増幅まで体系的に解説しました。
- 全反射と開口数: コアとクラッドの屈折率差によって光を閉じ込め、NAは受け入れ角を決める。$\mathrm{NA} = \sqrt{n_1^2 – n_2^2}$
- 屈折率分布: ステップインデックス型は単純だがモード分散が大きい。グレーデッドインデックス型は放物線分布で分散を劇的に低減する
- モード: Vパラメータが2.405未満でシングルモード動作となり、モード分散がゼロになる。長距離通信にはシングルモードファイバが不可欠
- 損失: レイリー散乱($\propto 1/\lambda^4$)と赤外吸収の谷底である1550nm付近で最小損失(約0.2dB/km)を達成
- 分散: 色分散はパルス幅を広げ、伝送帯域を制限する。分散シフトファイバや分散補償で対処する
- WDMとEDFA: 波長多重で容量をスケールアップし、EDFAで全波長を一括増幅。この2技術の組み合わせが現代の光通信インフラを支えている
光ファイバ通信は、古典的な光学(全反射、スネルの法則)、電磁気学(モードの波動論)、材料科学(シリカガラスの光学特性)、電子工学(半導体レーザー・フォトダイオード)、信号処理(変調・多重化)が融合した分野です。本記事で扱った各トピックの背景理論を深掘りすることで、より高度な光通信技術の理解につながるでしょう。
次のステップとして、以下の記事も参考にしてください。
- 衛星通信の基礎 — 光ファイバが地上の基幹回線なら、衛星通信は宇宙経由の補完的伝送路です