地表波伝搬 — 中波・長波の地表面回折メカニズム

AMラジオの放送は、見通しの効かない山の向こうや海上でも受信できます。一方、FMラジオやテレビの電波は建物の影に入ると途端に受信しにくくなります。この違いは一体どこから来るのでしょうか。鍵を握るのが「地表波伝搬」です。中波(MF帯: 300 kHz〜3 MHz)や長波(LF帯: 30〜300 kHz)の電波は、地球の表面に沿って回折しながら伝搬する能力が高く、見通し外の遠方まで安定して届きます。

地表波伝搬の理解は、AMラジオ放送の受信エリア設計、航海用無線ビーコン(NDB)の到達範囲予測、さらには超長波(VLF)を用いた潜水艦通信の実現可能性評価にまで直結します。また、地表面のパラメータ(導電率、比誘電率)が電波伝搬に与える影響を理解することは、地上デジタル放送の受信品質改善にも役立ちます。

本記事の内容

  • 地表波を構成する3つの成分(直接波・地表反射波・表面波)の物理的意味
  • ソマーフェルトの地表波理論と減衰関数
  • 大地の電気定数(導電率・比誘電率)が伝搬に与える影響
  • フレネル反射係数の導出(垂直偏波・水平偏波)とブリュースター角
  • Pythonによる距離減衰計算と周波数・導電率依存性の可視化

前提知識

この記事を読む前に、以下の概念を押さえておくと理解が深まります。

  • 電磁波の基本的性質(電界・磁界、偏波、波長と周波数の関係)
  • マクスウェル方程式の基本的な形(発散・回転の意味)
  • 複素数の指数関数表示

地表波の3成分

直接波・反射波・表面波

送信アンテナから放射された電波が地球の表面近くを伝搬するとき、受信点における電界は3つの成分の重ね合わせとして表されます。ちょうど、池の岸に立って対岸からの音を聞くときに、空気中を直進してくる音、水面で反射してくる音、そして水面に沿って伝わってくる音があるのと似ています。

  1. 直接波(direct wave): 送信アンテナから受信アンテナへ直線的に伝搬する成分。見通し内の伝搬で支配的
  2. 地表反射波(ground-reflected wave): 地表面で反射して受信アンテナに到達する成分。直接波と干渉する
  3. 表面波(surface wave): 地表面に沿って回折しながら伝搬する成分。地球の曲率に沿って伝わるため、見通し外でも到達する

それぞれの成分の相対的な重要度は、周波数、アンテナの高さ、距離、そして地表面の電気的特性によって変わります。低い周波数(長い波長)でアンテナが地表面近くにある場合、表面波が支配的になります。これがAMラジオ(中波)の伝搬特性の基本です。

2波モデルと干渉

見通し内の距離では、直接波と反射波の2波モデルが基本的な伝搬を記述します。送信アンテナの高さ $h_t$、受信アンテナの高さ $h_r$、水平距離 $d$ とすると、受信点での電界は次のように表されます。

$$ E = E_0\left(\frac{d_0}{d_1} e^{-jk d_1} + \Gamma \frac{d_0}{d_2} e^{-jk d_2}\right) $$

ここで $d_1$ は直接経路の長さ、$d_2$ は反射経路の長さ、$\Gamma$ は地表面のフレネル反射係数、$k = 2\pi/\lambda$ は波数です。直接波と反射波の経路差 $\Delta d = d_2 – d_1$ に起因する位相差が干渉パターンを生み出します。

$d \gg h_t, h_r$ の近似(遠方界)では、経路差は次のように簡略化されます。

$$ \Delta d \approx \frac{2h_t h_r}{d} $$

この式を使うと、受信電力が距離の4乗に反比例するという有名な「2波モデルのパスロス」が導かれます。$|\Gamma| \approx 1$(グレージング角が小さい場合)のとき、受信電力は次のようになります。

$$ P_r \propto \frac{h_t^2 h_r^2}{d^4} $$

自由空間では距離の2乗に反比例($P_r \propto 1/d^2$)でしたが、地表反射の干渉により4乗に変わります。これはアンテナ高さの重要性を端的に示しています。

しかし、さらに遠方では地球の曲率により直接波・反射波ともに減衰し、地表面に沿って回折する表面波が支配的になります。次に、この表面波を理論的に扱ったソマーフェルトの仕事を見ていきましょう。

ソマーフェルトの地表波理論

歴史的背景

1909年、ドイツの物理学者アーノルド・ソマーフェルトは、導電性のある平面大地の上に置かれた垂直電気ダイポールからの電波伝搬を厳密に解く問題に取り組みました。この問題は、マルコーニが1901年に大西洋横断無線通信に成功して以来、「なぜ電波は地球の曲率を越えて伝搬できるのか」という大きな謎を解明するための重要なステップでした。

ソマーフェルトの解は、大地表面のインピーダンス境界条件を満たす厳密解として知られますが、その数学的表現は複雑な積分を含むため、実用的な計算にはいくつかの近似が必要です。

ノートン表面波の定式化

ソマーフェルトの理論を発展させたK.A.ノートンは、実用的な計算公式を導きました。垂直偏波の地表波について、受信点での電界強度 $E$ は次のように表されます。

$$ E = \frac{E_0 d_0}{d} \cdot F(w) \cdot e^{-jkd} $$

ここで $E_0 d_0$ は送信アンテナからの放射に関する定数、$1/d$ は幾何学的拡散による減衰、$F(w)$ は減衰関数(attenuation function)です。減衰関数 $F(w)$ は地表面の影響を全て含んでおり、自由空間伝搬からのずれを表します。

減衰関数は数値距離(numerical distance) $w$ の関数として次のように近似されます。

$$ F(w) \approx 1 – j\sqrt{\pi w} \cdot e^{-w} \cdot \text{erfc}(j\sqrt{w}) $$

ここで $\text{erfc}$ は相補誤差関数です。$|w| \gg 1$(遠方)では、$F(w) \approx 1/(2w)$ と近似でき、地表波は距離の2乗に反比例して減衰します(自由空間の1乗に加えて、もう1乗分の減衰)。

数値距離

数値距離 $w$ は、物理的な距離・周波数・大地の電気定数を一つのパラメータにまとめたもので、次のように定義されます。

$$ w = -j \frac{\pi d}{\lambda} \left(\frac{\Delta}{\Delta + 1}\right)^2 $$

ここで $\Delta$ は正規化表面インピーダンスであり、大地の比誘電率 $\varepsilon_r$ と導電率 $\sigma$ に依存します。

$$ \Delta = \frac{1}{\sqrt{\varepsilon_r – j60\sigma\lambda}} $$

垂直偏波の場合、$\varepsilon_r$ と $\sigma\lambda$ の積(つまり $60\sigma\lambda$)が大きいほど $\Delta$ が小さくなり、数値距離 $w$ も小さくなります。これは地表波の減衰が緩やかになることを意味します。つまり、導電率が高い大地の上ほど、あるいは波長が長い(周波数が低い)ほど、地表波は遠方まで到達するのです。

海水は導電率が非常に高い($\sigma \approx 4$ S/m)ため、海上での中波伝搬は極めて良好です。一方、乾燥した砂漠地帯($\sigma \approx 10^{-3}$ S/m)では急速に減衰します。

ソマーフェルトの理論は平面大地の近似ですが、実際の地表面は地球の曲率を持っています。また、電波が地表面に当たるときの反射特性を正確に記述するには、フレネル反射係数の理解が必要です。次にこれを詳しく見ていきましょう。

フレネル反射係数

反射の偏波依存性

電波が平面的な境界面に入射するとき、反射と透過の割合は入射角と偏波方向によって異なります。これはフレネル(Fresnel)の反射公式で記述されます。光学でおなじみのフレネルの式ですが、電波の場合は媒質が損失性(導電率を持つ)であることが重要な違いです。

入射面(入射波の進行方向と界面の法線を含む平面)に対して、電界が入射面内に含まれる場合を垂直偏波(TM波、p偏波)、電界が入射面に垂直な場合を水平偏波(TE波、s偏波)と呼びます。ここで「垂直」「水平」は電界の向きではなく、偏波面と入射面の関係で定義されます。地表面伝搬の文脈では、垂直偏波は電界が鉛直成分を持つ偏波、水平偏波は電界が水平な偏波に対応します。

垂直偏波のフレネル反射係数

大地への入射角を $\psi$(グレージング角 — 地表面からの角度)とすると、垂直偏波(TM波)のフレネル反射係数は次のように表されます。

$$ \Gamma_V = \frac{\tilde{\varepsilon}\sin\psi – \sqrt{\tilde{\varepsilon} – \cos^2\psi}}{\tilde{\varepsilon}\sin\psi + \sqrt{\tilde{\varepsilon} – \cos^2\psi}} $$

ここで $\tilde{\varepsilon}$ は大地の複素比誘電率です。

$$ \tilde{\varepsilon} = \varepsilon_r – j\frac{\sigma}{\omega \varepsilon_0} = \varepsilon_r – j\frac{60\sigma\lambda}{\lambda_0} $$

$\varepsilon_r$ は比誘電率、$\sigma$ は導電率(S/m)、$\omega$ は角周波数、$\varepsilon_0$ は真空の誘電率です。複素比誘電率の虚部は損失(電波エネルギーの吸収)を表しています。

水平偏波のフレネル反射係数

水平偏波(TE波)の場合、反射係数は次のようになります。

$$ \Gamma_H = \frac{\sin\psi – \sqrt{\tilde{\varepsilon} – \cos^2\psi}}{\sin\psi + \sqrt{\tilde{\varepsilon} – \cos^2\psi}} $$

垂直偏波と水平偏波の反射係数を比較すると、重要な違いがあります。水平偏波では全ての入射角で $|\Gamma_H|$ が比較的大きい値を保つのに対し、垂直偏波にはある特定の角度で反射が極小になる「擬ブリュースター角」が存在します。

ブリュースター角

誘電体(損失のない媒質)の場合、垂直偏波のフレネル反射係数がちょうどゼロになる角度をブリュースター角 $\psi_B$ と呼びます。

$$ \tan\psi_B = \frac{1}{\sqrt{\varepsilon_r}} \quad \text{(グレージング角で定義した場合)} $$

あるいは入射角 $\theta_i$(法線からの角度)で表すと、$\tan\theta_B = \sqrt{\varepsilon_r}$ です。

大地のように導電率を持つ媒質では、完全にゼロにはなりませんが、反射が極小となる角度(擬ブリュースター角、pseudo-Brewster angle)が存在します。この角度は大地の導電率と周波数に依存します。

ブリュースター角の物理的意味は、「反射波が全て表面に平行な方向に振動する偏波成分だけになる」ということです。光学では偏光サングラスがこの原理を利用して水面のギラつきを抑えています。電波伝搬では、垂直偏波のアンテナ(垂直ダイポール等)の地表反射が入射角によって大きく変化することを意味し、回線設計上重要です。

グレージング入射の極限

地表波伝搬で最も重要なのは、グレージング入射($\psi \to 0$、すなわち地表面にほぼ平行な入射)の場合です。この極限では、垂直偏波・水平偏波ともに反射係数は $\Gamma \to -1$ に近づきます。

$$ \lim_{\psi \to 0} \Gamma_V = -1, \quad \lim_{\psi \to 0} \Gamma_H = -1 $$

反射係数が $-1$ ということは、反射波が入射波と逆位相であることを意味します。直接波と反射波がほぼ逆位相で重なるため、両者はほぼ打ち消し合い、低いアンテナでの受信電界は非常に小さくなります。この状況で地表面に沿って伝搬する表面波の寄与が重要になるのです。

フレネル反射の理論的基礎を理解したところで、次にこれらの概念をPythonで実装し、大地の電気的性質が伝搬特性にどのような影響を与えるかを定量的に可視化してみましょう。

大地の電気定数と地表波の距離減衰

代表的な地表面の電気定数

大地の電気的性質は土壌の種類、含水率、周波数によって大きく変わります。以下に代表的な値を示します。

地表面の種類 導電率 $\sigma$ [S/m] 比誘電率 $\varepsilon_r$
海水 4〜5 70〜80
湿った土壌 0.01〜0.03 20〜30
平均的な大地 0.005 15
乾いた土壌 0.001〜0.003 4〜7
都市部(コンクリート) 0.001〜0.002 5〜7
淡水 0.001〜0.01 80
砂漠(乾燥砂) 0.0001〜0.001 3〜5
0.0001 3

海水の導電率は他の地表面に比べて桁違いに大きく、中波帯における海上伝搬が極めて良好であることの理由です。一方、乾燥した砂漠地帯では導電率が海水の1万分の1程度しかなく、地表波は急速に減衰します。

地表波の場の強さの一般式

平面大地上の垂直ダイポールから放射される地表波の電界強度は、次の形で表されます。

$$ E = \frac{\sqrt{30 P_t G_t}}{d} \cdot |F(w)| \quad \text{[V/m]} $$

ここで $P_t$ は送信電力(W)、$G_t$ は送信アンテナの利得(真数)、$d$ は距離(m)、$F(w)$ は減衰関数です。$1/d$ は自由空間と同じ幾何学的拡散を表し、$|F(w)|$ が地表面の影響による追加の減衰を表します。

$|F(w)|$ は数値距離 $|w|$ が小さい場合(近距離)にはほぼ1に等しく、自由空間に近い伝搬となります。$|w|$ が大きくなると(遠方)、$|F(w)|$ は急速に減少し、最終的に $|F(w)| \propto 1/|w|$ すなわち距離に反比例する追加減衰が加わります。つまり、遠方では全体として $E \propto 1/d^2$ の減衰(電力にして $1/d^4$)となります。

地球の曲率の影響が加わると、見通し外の領域ではさらに急激な指数的減衰が追加されます。これはvan der Pol-Bremmerの理論で扱われ、地表波の到達限界を決定します。

ここまでの理論を踏まえて、Pythonによる数値計算で地表波の振る舞いを確認してみましょう。

Pythonで学ぶ地表波伝搬

フレネル反射係数の計算

まず、垂直偏波と水平偏波のフレネル反射係数を、異なる地表面パラメータに対して可視化します。

import numpy as np
import matplotlib.pyplot as plt

def fresnel_reflection(psi_deg, eps_r, sigma, freq_hz):
    """
    フレネル反射係数を計算する
    psi_deg: グレージング角 [度]
    eps_r: 比誘電率
    sigma: 導電率 [S/m]
    freq_hz: 周波数 [Hz]
    返り値: (Gamma_V, Gamma_H) 複素反射係数
    """
    psi = np.radians(psi_deg)
    omega = 2 * np.pi * freq_hz
    eps0 = 8.854e-12

    # 複素比誘電率
    eps_c = eps_r - 1j * sigma / (omega * eps0)

    sin_psi = np.sin(psi)
    cos_psi = np.cos(psi)
    sqrt_term = np.sqrt(eps_c - cos_psi**2)

    # 垂直偏波(TM)
    Gamma_V = (eps_c * sin_psi - sqrt_term) / (eps_c * sin_psi + sqrt_term)

    # 水平偏波(TE)
    Gamma_H = (sin_psi - sqrt_term) / (sin_psi + sqrt_term)

    return Gamma_V, Gamma_H

# グレージング角
psi = np.linspace(0.1, 90, 500)

# 異なる地表面条件
surfaces = [
    ("Sea water", 80, 4.0, '#1565C0'),
    ("Wet soil", 25, 0.02, '#2E7D32'),
    ("Average ground", 15, 0.005, '#F57F17'),
    ("Dry soil", 7, 0.001, '#BF360C'),
    ("Desert sand", 4, 0.0003, '#6D4C41'),
]

freq = 1e6  # 1 MHz(中波帯)

fig, axes = plt.subplots(2, 2, figsize=(14, 10))

# 垂直偏波 |Gamma_V|
for name, eps_r, sigma, color in surfaces:
    Gamma_V, Gamma_H = fresnel_reflection(psi, eps_r, sigma, freq)
    axes[0, 0].plot(psi, np.abs(Gamma_V), linewidth=2, color=color, label=name)
axes[0, 0].set_xlabel('Grazing Angle [deg]', fontsize=12)
axes[0, 0].set_ylabel('|$\\Gamma_V$|', fontsize=12)
axes[0, 0].set_title('Vertical Polarization Reflection (1 MHz)', fontsize=13)
axes[0, 0].legend(fontsize=9)
axes[0, 0].grid(True, alpha=0.3)
axes[0, 0].set_xlim([0, 90])
axes[0, 0].set_ylim([0, 1])

# 水平偏波 |Gamma_H|
for name, eps_r, sigma, color in surfaces:
    Gamma_V, Gamma_H = fresnel_reflection(psi, eps_r, sigma, freq)
    axes[0, 1].plot(psi, np.abs(Gamma_H), linewidth=2, color=color, label=name)
axes[0, 1].set_xlabel('Grazing Angle [deg]', fontsize=12)
axes[0, 1].set_ylabel('|$\\Gamma_H$|', fontsize=12)
axes[0, 1].set_title('Horizontal Polarization Reflection (1 MHz)', fontsize=13)
axes[0, 1].legend(fontsize=9)
axes[0, 1].grid(True, alpha=0.3)
axes[0, 1].set_xlim([0, 90])
axes[0, 1].set_ylim([0, 1])

# 垂直偏波の位相
for name, eps_r, sigma, color in surfaces:
    Gamma_V, _ = fresnel_reflection(psi, eps_r, sigma, freq)
    axes[1, 0].plot(psi, np.degrees(np.angle(Gamma_V)),
                     linewidth=2, color=color, label=name)
axes[1, 0].set_xlabel('Grazing Angle [deg]', fontsize=12)
axes[1, 0].set_ylabel('Phase of $\\Gamma_V$ [deg]', fontsize=12)
axes[1, 0].set_title('Phase of Vertical Reflection (1 MHz)', fontsize=13)
axes[1, 0].legend(fontsize=9)
axes[1, 0].grid(True, alpha=0.3)
axes[1, 0].set_xlim([0, 90])

# 周波数による変化(平均的な大地)
freqs_sweep = [0.1e6, 0.3e6, 1e6, 3e6, 10e6, 30e6]  # Hz
eps_r_avg, sigma_avg = 15, 0.005

for f in freqs_sweep:
    Gamma_V, _ = fresnel_reflection(psi, eps_r_avg, sigma_avg, f)
    label = f'{f/1e6:.1f} MHz' if f < 1e6 else f'{f/1e6:.0f} MHz'
    axes[1, 1].plot(psi, np.abs(Gamma_V), linewidth=2, label=label)
axes[1, 1].set_xlabel('Grazing Angle [deg]', fontsize=12)
axes[1, 1].set_ylabel('|$\\Gamma_V$|', fontsize=12)
axes[1, 1].set_title('Frequency Dependence of $\\Gamma_V$ (avg. ground)', fontsize=13)
axes[1, 1].legend(fontsize=9)
axes[1, 1].grid(True, alpha=0.3)
axes[1, 1].set_xlim([0, 90])
axes[1, 1].set_ylim([0, 1])

plt.tight_layout()
plt.savefig('fresnel_reflection.png', dpi=150, bbox_inches='tight')
plt.show()

この4枚のグラフから、フレネル反射の重要な物理が読み取れます。

  1. 垂直偏波には擬ブリュースター角が存在する(左上): 乾燥した砂漠地帯(低い導電率)では約10〜15度付近に反射の明瞭な極小が見えます。一方、海水では導電率が非常に高いため極小はほとんど見えず、ほぼ全ての角度で高い反射係数を示します。これは海上通信で垂直偏波が効率的に伝搬する理由の一つです。

  2. 水平偏波は全角度で高い反射率(右上): 水平偏波にはブリュースター角が存在せず、全ての入射角で $|\Gamma_H|$ が比較的大きい値を保ちます。ただし、地表波伝搬の主役は垂直偏波の表面波であるため、AMラジオ等では垂直偏波が使われます。

  3. 低い周波数ほど反射特性が「良い導体」に近づく(右下): 0.1 MHzでは擬ブリュースター角が見えにくく、30 MHzでは明瞭な極小が現れます。これは $\sigma/(\omega\varepsilon_0)$ の値が周波数に依存するためで、低い周波数ほど大地は「良い導体」として振る舞います。

地表波の距離減衰

次に、地表波の減衰関数を計算して距離減衰特性を可視化します。

import numpy as np
import matplotlib.pyplot as plt
from scipy.special import erfc

def ground_wave_field(d_km, freq_mhz, eps_r, sigma, Pt_kw=1.0):
    """
    地表波の電界強度を計算する(平面大地近似)
    d_km: 距離 [km]
    freq_mhz: 周波数 [MHz]
    eps_r: 大地の比誘電率
    sigma: 大地の導電率 [S/m]
    Pt_kw: 送信電力 [kW]
    返り値: 電界強度 [dB(uV/m)]
    """
    d = d_km * 1000  # m
    f = freq_mhz * 1e6  # Hz
    lam = 3e8 / f  # 波長 [m]
    k = 2 * np.pi / lam

    # 複素比誘電率
    eps0 = 8.854e-12
    omega = 2 * np.pi * f
    eps_c = eps_r - 1j * sigma / (omega * eps0)

    # 正規化表面インピーダンス
    Delta = 1.0 / np.sqrt(eps_c)

    # 数値距離
    w = -1j * np.pi * d / lam * (Delta / (Delta + 1))**2

    # 減衰関数の近似(ノートンの公式)
    sqrt_w = np.sqrt(w)
    # 大きい|w|では近似を使用
    F = np.where(np.abs(w) < 100,
                  1 - 1j * np.sqrt(np.pi) * sqrt_w * np.exp(-w) * erfc(1j * sqrt_w),
                  1.0 / (2 * w))

    # 自由空間の電界強度(垂直ダイポール、1 kW)
    # E = sqrt(30 * Pt * Gt) / d [V/m]
    # 垂直短ダイポールの利得 Gt ≈ 1.5 (1.76 dBi)
    Gt = 1.5
    E_free = np.sqrt(30 * Pt_kw * 1000 * Gt) / d  # V/m

    # 地表波の電界強度(垂直偏波なので係数2を考慮)
    E = E_free * np.abs(F) * 2  # 直接波+像の寄与

    # dB(uV/m)に変換
    E_dbuvm = 20 * np.log10(E * 1e6 + 1e-30)  # +1e-30でlog(0)回避

    return E_dbuvm, np.abs(F)

# 距離配列
d = np.logspace(-1, 3, 500)  # 0.1〜1000 km

# 周波数を変えた場合(平均的な大地)
fig, axes = plt.subplots(1, 2, figsize=(14, 6))

freqs = [0.1, 0.3, 1.0, 3.0, 10.0]  # MHz
eps_r, sigma = 15, 0.005  # 平均的な大地

for f in freqs:
    E_dbuvm, F_abs = ground_wave_field(d, f, eps_r, sigma)
    axes[0].plot(d, E_dbuvm, linewidth=2, label=f'{f} MHz')

# 自由空間参考線
E_fs = 20 * np.log10(np.sqrt(30 * 1000 * 1.5) / (d * 1000) * 1e6)
axes[0].plot(d, E_fs, 'k--', linewidth=1, alpha=0.5, label='Free space')

axes[0].set_xlabel('Distance [km]', fontsize=12)
axes[0].set_ylabel('Field Strength [dB($\\mu$V/m)]', fontsize=12)
axes[0].set_title('Ground Wave: Frequency Dependence\n(Average Ground, 1 kW)', fontsize=13)
axes[0].legend(fontsize=10)
axes[0].grid(True, alpha=0.3)
axes[0].set_xscale('log')
axes[0].set_xlim([0.1, 1000])
axes[0].set_ylim([0, 140])

# 地表面の種類を変えた場合(1 MHz固定)
surfaces = [
    ("Sea water", 80, 4.0, '#1565C0'),
    ("Wet soil", 25, 0.02, '#2E7D32'),
    ("Average ground", 15, 0.005, '#F57F17'),
    ("Dry soil", 7, 0.001, '#BF360C'),
    ("Desert sand", 4, 0.0003, '#6D4C41'),
]

for name, eps_r, sigma, color in surfaces:
    E_dbuvm, _ = ground_wave_field(d, 1.0, eps_r, sigma)
    axes[1].plot(d, E_dbuvm, linewidth=2, color=color, label=name)

axes[1].set_xlabel('Distance [km]', fontsize=12)
axes[1].set_ylabel('Field Strength [dB($\\mu$V/m)]', fontsize=12)
axes[1].set_title('Ground Wave: Surface Dependence\n(1 MHz, 1 kW)', fontsize=13)
axes[1].legend(fontsize=10)
axes[1].grid(True, alpha=0.3)
axes[1].set_xscale('log')
axes[1].set_xlim([0.1, 1000])
axes[1].set_ylim([0, 140])

plt.tight_layout()
plt.savefig('ground_wave_attenuation.png', dpi=150, bbox_inches='tight')
plt.show()

この2つの距離減衰特性図から、地表波伝搬の核心的な特徴が明らかになります。

  1. 周波数が低いほど遠方まで到達する(左図): 0.1 MHz(長波帯)では数百kmの距離でも実用的な電界強度(60 dB($\mu$V/m)以上)を維持しているのに対し、10 MHzでは数十kmで急速に減衰します。これがAMラジオ(中波: 0.5〜1.6 MHz)が広いカバレッジを実現でき、VHF帯以上の放送が見通し内に限られる理由です。

  2. 海水上の伝搬は圧倒的に良好(右図): 同じ1 MHzでも、海水上では300 km以上離れても60 dB($\mu$V/m)以上の電界強度が得られますが、乾燥した砂漠地帯では30 km程度で同じレベルまで減衰してしまいます。この差は約1桁(10倍)以上に及びます。船舶通信で中波帯が重用されてきた理由がこの数値から明らかです。

  3. 近距離では全条件が自由空間に近い: 距離1 km以内では地表面の種類による差はわずかで、全て自由空間伝搬(破線)に近い値を示します。地表面の影響は距離とともに累積的に現れるため、近距離では自由空間モデルでも十分な精度が得られます。

減衰関数の振る舞い

減衰関数 $|F(w)|$ そのものの振る舞いを詳しく見てみましょう。

import numpy as np
import matplotlib.pyplot as plt
from scipy.special import erfc

def attenuation_function(w_abs):
    """
    減衰関数 |F(w)| の計算(数値距離の絶対値から)
    簡易版: w を実数として近似
    """
    w = w_abs * np.exp(1j * np.pi / 4)  # 位相 pi/4 の近似
    sqrt_w = np.sqrt(w)
    F = np.where(np.abs(w) < 200,
                  1 - 1j * np.sqrt(np.pi) * sqrt_w * np.exp(-w) * erfc(1j * sqrt_w),
                  1.0 / (2 * w))
    return np.abs(F)

# 数値距離
w_abs = np.logspace(-3, 3, 1000)

F_abs = attenuation_function(w_abs)

fig, ax = plt.subplots(figsize=(10, 6))
ax.loglog(w_abs, F_abs, 'b-', linewidth=2.5, label='|F(w)|')

# 近似曲線
# 近距離: F ≈ 1
ax.axhline(y=1, color='gray', linestyle=':', alpha=0.5, label='F = 1 (free space)')
# 遠距離: F ≈ 1/(2|w|)
w_far = np.logspace(0.5, 3, 100)
ax.loglog(w_far, 1 / (2 * w_far), 'r--', linewidth=2,
           label='F $\\approx$ 1/(2|w|) (far field)')

ax.set_xlabel('Numerical Distance |w|', fontsize=13)
ax.set_ylabel('|F(w)|', fontsize=13)
ax.set_title('Ground Wave Attenuation Function', fontsize=14)
ax.legend(fontsize=11)
ax.grid(True, alpha=0.3, which='both')
ax.set_xlim([1e-3, 1e3])
ax.set_ylim([1e-4, 2])

# 領域のアノテーション
ax.text(0.01, 1.2, 'Near field\n(free space)', fontsize=11,
         ha='center', color='green')
ax.text(3, 0.05, 'Transition', fontsize=11, ha='center', color='orange')
ax.text(100, 0.002, 'Far field\n($\\propto 1/d^2$)', fontsize=11,
         ha='center', color='red')

plt.tight_layout()
plt.savefig('attenuation_function.png', dpi=150, bbox_inches='tight')
plt.show()

減衰関数のグラフは、地表波伝搬を3つの領域に分けて理解する助けになります。

  1. 近距離領域($|w| \ll 1$): $|F(w)| \approx 1$ で、自由空間伝搬とほぼ同じです。地表面の影響はまだ顕在化していません。

  2. 遷移領域($|w| \sim 1$): 自由空間からの乖離が始まり、減衰関数が急速に低下します。この遷移が始まる距離が、地表面の種類と周波数によって異なるのが先ほどの距離減衰特性で見た差の本質です。

  3. 遠距離領域($|w| \gg 1$): $|F(w)| \approx 1/(2|w|)$ の漸近形に従います。電界強度は $E \propto 1/d^2$(自由空間の $1/d$ に加えて、もう $1/d$ の追加減衰)となります。

2波モデルの干渉パターン

最後に、直接波と反射波の干渉パターンを可視化し、アンテナ高さの影響を確認します。

import numpy as np
import matplotlib.pyplot as plt

def two_ray_model(d_km, ht, hr, freq_mhz, eps_r, sigma):
    """
    2波モデルによる受信電力の相対値
    d_km: 距離 [km]
    ht, hr: 送受信アンテナ高さ [m]
    freq_mhz: 周波数 [MHz]
    eps_r, sigma: 大地パラメータ
    """
    d = d_km * 1000  # m
    f = freq_mhz * 1e6
    lam = 3e8 / f
    k = 2 * np.pi / lam

    # 直接経路長と反射経路長
    d1 = np.sqrt(d**2 + (ht - hr)**2)
    d2 = np.sqrt(d**2 + (ht + hr)**2)

    # グレージング角
    psi = np.arctan((ht + hr) / d)

    # フレネル反射係数(垂直偏波)
    eps0 = 8.854e-12
    omega = 2 * np.pi * f
    eps_c = eps_r - 1j * sigma / (omega * eps0)
    sin_psi = np.sin(psi)
    cos_psi = np.cos(psi)
    sqrt_term = np.sqrt(eps_c - cos_psi**2)
    Gamma_V = (eps_c * sin_psi - sqrt_term) / (eps_c * sin_psi + sqrt_term)

    # 合成電界(自由空間基準で正規化)
    E = np.abs(d[0] / d1 * np.exp(-1j * k * d1) +
               Gamma_V * d[0] / d2 * np.exp(-1j * k * d2))

    # dB変換(自由空間の d[0] 地点を基準)
    P_rel = 20 * np.log10(E + 1e-30) - 20 * np.log10(2)  # 補正

    return P_rel

d = np.logspace(-1, 2, 2000)  # 0.1〜100 km
freq = 100  # 100 MHz(VHF帯)
eps_r, sigma = 15, 0.005

fig, axes = plt.subplots(1, 2, figsize=(14, 6))

# アンテナ高さを変えた場合
ht_values = [10, 30, 50, 100]
hr = 2  # 受信 2 m

for ht in ht_values:
    P = two_ray_model(d, ht, hr, freq, eps_r, sigma)
    axes[0].plot(d, P, linewidth=1.5, label=f'$h_t$ = {ht} m')

# 自由空間参考
P_fs = -20 * np.log10(d / d[0])
axes[0].plot(d, P_fs, 'k--', linewidth=1, alpha=0.5, label='Free space ($1/d^2$)')

# d^4 参考
P_d4 = -40 * np.log10(d / 1) + 10  # 適当なオフセット
axes[0].plot(d, P_d4, 'r:', linewidth=1, alpha=0.5, label='Two-ray ($1/d^4$)')

axes[0].set_xlabel('Distance [km]', fontsize=12)
axes[0].set_ylabel('Relative Power [dB]', fontsize=12)
axes[0].set_title(f'Two-Ray Model ({freq} MHz, $h_r$ = {hr} m)', fontsize=13)
axes[0].legend(fontsize=9)
axes[0].grid(True, alpha=0.3)
axes[0].set_xscale('log')
axes[0].set_xlim([0.1, 100])
axes[0].set_ylim([-80, 10])

# 高度パターン(距離固定、受信アンテナ高さを変化)
d_fixed = [1, 5, 10, 30]  # km
hr_array = np.linspace(0.5, 50, 500)

for d_val in d_fixed:
    d_arr = np.array([d_val])
    P_list = []
    for h in hr_array:
        P = two_ray_model(d_arr, 50, h, freq, eps_r, sigma)
        P_list.append(P[0])
    axes[1].plot(np.array(P_list), hr_array, linewidth=1.5,
                  label=f'd = {d_val} km')

axes[1].set_xlabel('Relative Power [dB]', fontsize=12)
axes[1].set_ylabel('Receiver Height [m]', fontsize=12)
axes[1].set_title(f'Height-Gain Pattern ({freq} MHz, $h_t$ = 50 m)', fontsize=13)
axes[1].legend(fontsize=10)
axes[1].grid(True, alpha=0.3)

plt.tight_layout()
plt.savefig('two_ray_interference.png', dpi=150, bbox_inches='tight')
plt.show()

2波モデルの干渉パターンから以下の知見が得られます。

  1. 近距離では干渉による激しい変動(左図): 直接波と反射波の位相差が距離に依存して変化するため、受信電力は山と谷を繰り返します。この振動パターンの間隔はアンテナ高さと波長に依存し、高いアンテナほど振動が細かくなります。

  2. 遠距離では $1/d^4$ 特性に収束: 十分遠い距離では直接波と反射波がほぼ逆位相($\Gamma \approx -1$)になるため、打ち消し合いが顕著になり、受信電力は $1/d^4$ に比例して減衰します。自由空間の $1/d^2$ よりも急激な減衰です。

  3. 高度パターンのローブ構造(右図): 特定の距離と受信アンテナ高さの組み合わせで、強め合いと弱め合いのローブパターンが現れます。受信アンテナの最適な高さは通信距離によって変わることを示しており、回線設計でのアンテナ高さの最適化の根拠となります。

まとめ

本記事では、地表波伝搬の物理的メカニズムと定量的な評価方法を解説しました。

  • 地表波の3成分: 直接波、地表反射波、表面波の3つが受信電界を形成する。低い周波数で地表面近くのアンテナからは表面波が支配的になる
  • ソマーフェルトの理論: 減衰関数 $F(w)$ と数値距離 $w$ により、地表面の影響を統一的に扱える。遠方では $|F| \propto 1/|w|$ で電界強度は $1/d^2$ に減衰する
  • 大地の導電率が決定的: 海水($\sigma \approx 4$ S/m)上では数百kmの伝搬が可能だが、乾燥地帯($\sigma \sim 10^{-3}$ S/m)では数十kmで減衰する。周波数が低いほど大地は良い導体として振る舞う
  • フレネル反射係数: 垂直偏波には擬ブリュースター角が存在し、水平偏波より複雑な反射特性を示す。グレージング入射では $\Gamma \to -1$
  • 2波モデル: 見通し内の距離で直接波と反射波の干渉パターンを記述し、遠方では $1/d^4$ の減衰特性を与える

地表波伝搬は中波・長波帯の放送や航行援助通信の基盤ですが、より高い周波数帯や都市環境での移動通信を扱うには、統計的な電波伝搬モデルが必要になります。

次のステップとして、以下の記事も参考にしてください。