アンテナダイバーシティとは?マルチパスフェージング対策と合成方式(SC/MRC/EGC)を図解で解説

スマートフォンを手に持ちながら部屋の中を歩くと、Wi-Fiや携帯の電波が突然弱くなる瞬間を経験したことはないでしょうか。「なぜルータの真横なのに繋がらないのか」——その犯人はマルチパスフェージングです。電波は壁・家具・人体に反射・回折・散乱しながら複数の経路で受信機に届き、それらが互いに打ち消し合うと受信電力が数十dBも落ち込みます。この「深いフェード(deep fade)」は避けられない物理現象ですが、「複数のアンテナで同時に受信する」という発想で劇的に緩和できます。これがアンテナダイバーシティの本質です。

アンテナダイバーシティを理解すると、次のような応用への見通しが一気に開けます。

  • スマートフォン・Wi-Fi 6/7: 受信ダイバーシティで電話が途切れにくくなるのはもちろん、MIMOと組み合わせることで通信速度も向上します
  • 4G/5G基地局・MIMO: 基地局に並ぶ多数のアンテナは空間ダイバーシティの塊です。MRC(最大比合成)がベースバンド処理の核に使われています
  • 無線センサーネットワーク・IoT: 屋内の厳しいマルチパス環境でも安定した通信を保証するため、チップアンテナ2本でのSC(選択合成)が標準的に採用されています

本記事の内容

  • マルチパスフェージングとレイリー分布の直感的理解(なぜ深くフェードするのか)
  • ダイバーシティの原理(なぜブランチを増やすとフェードを回避できるのか)
  • ダイバーシティの種類(空間・偏波・角度・周波数・時間)と使い分け
  • 3つの合成方式(SC/MRC/EGC)の数式導出と最適性の証明(省略なし)
  • ダイバーシティ利得・次数・アウテージ確率の改善量を定量化
  • Python実装:フェージングシミュレーション、合成方式の比較、相関の影響を実測

前提知識

この記事を読む前に、以下の記事を読んでおくと理解が深まります。

マルチパスフェージングとは — なぜ電波が突然消えるのか

アンテナダイバーシティの概念 — 複数ブランチで深いフェードを回避

左側のグラフを見てください。3本のアンテナはそれぞれ独立なフェージングを経験しており、アンテナ1が-30dBまで落ち込む瞬間でも、アンテナ2や3は-10dB程度に留まっています。右側のグラフは3本をMRC(最大比合成)したもの——フェード閾値(-20 dB、赤破線)を下回る瞬間がほぼ消えています。これがアンテナダイバーシティの力です。

なぜこんなことが起きるのでしょうか。まずはマルチパスフェージングの仕組みを、幾何学的な視点から押さえましょう。

マルチパスとは — 複数の経路が互いに干渉する

マルチパス伝搬の幾何学

送信アンテナから放射された電波は、直線(視線方向)だけでなく、建物の壁による反射、建物エッジによる回折、小さな障害物による散乱という3つの経路で受信機に届きます。各経路の長さが異なるため、受信機に届くタイミング(位相)がそれぞれ違います。

もし2つの経路の電界が同じ振幅で、位相差がちょうど180度だったとしたら——両者は完全に打ち消し合い、受信電力はゼロになります。これが深いフェード(deep fade)の正体です。逆に位相差が0度なら強め合い、受信電力は2倍(3 dB増)になります。

受信機が少し移動するだけで経路長が変わり、この干渉の様子が大きく変化します。2.4 GHz帯(波長 λ ≈ 12.5 cm)では、6 cm程度(λ/2)移動するだけで干渉が強め合いから打ち消し合いに転じることがあります。これが「部屋の中を少し動くだけで電波が変わる」理由です。

包絡線の統計 — レイリー分布

マルチパスが多数ある環境(散乱体が多い)では、各経路の電界をベクトル合成した結果は確率的に変動します。N本の散乱波が同程度の振幅で到達し、到来方向がランダムに分布するとき、受信電界の実部と虚部はそれぞれ独立な正規分布に従います。

$$ E_I \sim \mathcal{N}(0, \sigma^2), \quad E_Q \sim \mathcal{N}(0, \sigma^2) $$

受信電界の包絡線(振幅)$r = \sqrt{E_I^2 + E_Q^2}$ は、2つの独立な正規確率変数の二乗和の平方根です。これはレイリー分布(Rayleigh distribution)に従います。

$$ \begin{equation} p(r) = \frac{r}{\sigma^2} \exp\!\left(-\frac{r^2}{2\sigma^2}\right), \quad r \geq 0 \end{equation} $$

ここで $\sigma$ はガウス成分の標準偏差であり、受信電力の平均は $\Omega = \langle r^2 \rangle = 2\sigma^2$ です。レイリー分布の特徴は「0付近に確率密度が集中する」ことです。平均値 $\langle r \rangle = \sigma\sqrt{\pi/2}$ を大きく下回る値——つまり深フェード——が有意な確率で発生します。

深フェードが厄介なのは、発生確率が思いのほか高いからです。受信振幅がある閾値 $r_{th}$ を下回る確率(アウテージ確率)は、レイリー分布の累積分布関数(CDF)から直接計算できます。

$$ \begin{equation} P_{\text{out}}(r_{th}) = P(r < r_{th}) = \int_0^{r_{th}} p(r)\,dr = 1 - \exp\!\left(-\frac{r_{th}^2}{2\sigma^2}\right) \end{equation} $$

この式は「RMS値の半分(-6 dB)を下回る確率が約12%」を意味します。10分に1分以上の割合で深フェードが発生することになり、これは通信断として許容できない水準です。

レイリー分布と深フェード領域・アウテージ確率

左図からレイリー分布の形状が確認できます。振幅0付近には確率密度がゼロですが、それでも赤く塗られた「深フェード領域」は無視できない面積を持ちます。右図ではアウテージ確率(縦軸)が閾値とともに急激に変化し、単一アンテナでは-10 dBのフェードが数%の確率で発生することが読み取れます。

ここで重要な事実があります。異なる場所に置かれた複数のアンテナは、独立にフェージングを経験するのです。1本が深フェードに陥っても、別の場所のアンテナはフェードしていない可能性が高い。この「独立性」こそがダイバーシティの根拠です。次のセクションでは、この独立性をどう活かすかを考えます。

ダイバーシティの原理 — 独立なブランチを束ねる

「diversity(多様性)」という言葉が示す通り、ダイバーシティの本質は「異なるルートで同じ情報を受け取り、全員が同時にやられる確率を下げる」ことです。

アウテージ確率の改善 — N本独立ブランチの効果

N本のブランチがすべて独立にレイリーフェージングを経験するとき、N本全員が閾値を下回るイベント(= 通信断)の確率を考えましょう。各ブランチのアウテージ確率を $p = P_{\text{out,1}}$ とすると、独立性の仮定から

$$ P_{\text{out,N}} = p^N = \left[1 – \exp\!\left(-\frac{r_{th}^2}{2\sigma^2}\right)\right]^N \end{equation} $$

となります。これが選択合成(SC)の最も単純な場合です。$p = 0.1$(単一アンテナで10%のアウテージ)なら、$N=2$ で1%、$N=3$ で0.1%と、ブランチ数が増えるごとに指数的に改善します。

この指数的な改善が「ダイバーシティ次数(diversity order)」の概念につながります。アウテージ確率を $P_{\text{out}} \propto (1/\overline{\gamma})^N$ と書いたとき、SNRを $N$ dB改善するごとにアウテージ確率が $N$ 乗で減る——この $N$ がダイバーシティ次数です。直感的には「1本壊れても残り(N-1)本でカバーできる冗長度」と捉えられます。

相関が低いほどダイバーシティが効く

ここで重要な注意があります。上の議論はブランチが完全に独立という仮定に基づいています。現実には、2本のアンテナが近すぎると同じフェードを経験してしまい、ダイバーシティの効果が薄れます。ブランチ間の相関係数 $\rho$ が高いほど、「2本とも同時にフェードする」確率が増えるからです。

理想的には $\rho = 0$(完全独立)ですが、実用上は $\rho \leq 0.5$ が設計目標とされます。この $\rho = 0.5$ を実現するために必要なアンテナ間隔が、空間ダイバーシティ設計の中心的な問題です。相関とダイバーシティ利得の関係については後の節で定量的に示します。

独立なブランチがあれば深フェードを回避できる見通しが立ちました。次に「どうやって複数ブランチを束ねるか」——合成方式の理論に踏み込みましょう。

ダイバーシティの種類

複数の独立なブランチを作る方法は一つではありません。使える「多様性の次元」によって、いくつかの手法が区別されます。

ダイバーシティの種類と特徴まとめ

この図に示す5種類が代表的です。それぞれの特徴を整理しましょう。

空間ダイバーシティ — 最もポピュラー

複数のアンテナを物理的に離して配置します。各アンテナが経験するマルチパスの組み合わせが異なるため、独立なフェージングが得られます。「いくら離せば独立か」という問いの答えが、次の節で扱う空間相関です。

受信側(移動機・スマートフォン)では 0.5λ 程度の間隔で十分独立性が得られますが、基地局のように角度スプレッドが小さい環境では 10λ以上必要になります。

偏波ダイバーシティ — 間隔ゼロで2ブランチ

垂直偏波と水平偏波のアンテナを同一場所に配置します。直交偏波は散乱環境では相関が低く、かつアンテナを物理的に離す必要がないため、スマートフォンや無線LANの室内用アクセスポイントでよく使われます。2本で空間ダイバーシティに匹敵する効果が得られる反面、偏波相関が高い(見通し線環境など)と効果が薄れます。

角度ダイバーシティ — 指向方向の多様性

異なる方向に向けた指向性アンテナ(セクターアンテナ、アダプティブアレー)を組み合わせます。異なる方向からの到来波を別々に受信するため、到来角スプレッドがある環境で有効です。

周波数ダイバーシティ — OFDM が活用

周波数軸でのフェージングの非相関性を利用します。コヒーレンス帯域 $B_c = 1/(2\pi \tau_{rms})$($\tau_{rms}$: 遅延スプレッド)より広い周波数間隔では、フェージングが独立になります。OFDMはこれを活用しており、サブキャリアをインターリーブして時間・周波数の両ダイバーシティを獲得します。

時間ダイバーシティ — 再送と符号化

コヒーレンス時間 $T_c \approx 1/(4f_D)$($f_D$: ドップラー周波数)以上の間隔を空けて同じ信号を再送します。パケット再送(ARQ)や誤り訂正符号(ターボ符号・LDPC)+インターリーブがこれに相当します。時間ダイバーシティは帯域を追加消費しない代わりに、遅延が発生するという制約があります。

5種類の中で、本記事では特に空間ダイバーシティに焦点を当て、合成方式の理論を詳しく展開します。複数のブランチが揃ったとき、いよいよ「どう足し合わせるか」が問題になります。

合成方式の数式 — SC / MRC / EGC

複数のブランチ信号をどう合成するかで、ダイバーシティ利得が大きく変わります。N本のブランチの受信信号を

$$ y_k = h_k s + n_k \quad (k = 1, 2, \ldots, N) $$

と書きます。$s$ は送信シンボル(電力1に正規化)、$h_k \in \mathbb{C}$ はブランチ $k$ のチャネル応答(振幅 $|h_k|$ と位相 $\angle h_k$ を含む複素数)、$n_k \sim \mathcal{CN}(0, \sigma_n^2)$ は雑音です。ブランチ $k$ の瞬時 SNR は

$$ \gamma_k = \frac{|h_k|^2}{\sigma_n^2} $$

です。レイリーフェージング環境では $|h_k|$ がレイリー分布に従うため、$\gamma_k$ は指数分布(形状パラメータ1の)に従います:$p(\gamma_k) = \frac{1}{\bar{\gamma}}\exp(-\gamma_k/\bar{\gamma})$($\bar{\gamma}$: 平均SNR)。

選択合成(SC: Selection Combining)

最もシンプルな方法は「N本の中でSNRが最大のブランチだけを選び、それを出力する」です。

$$ \begin{equation} k^* = \arg\max_{k} \gamma_k, \quad y_{\text{SC}} = y_{k^*} \end{equation} $$

出力SNRは $\gamma_{\text{SC}} = \max_k \gamma_k$ です。SCのアウテージ確率は、すべてのブランチが閾値を下回る確率なので

$$ P_{\text{out}}^{\text{SC}} = P(\gamma_{\text{SC}} < \gamma_{th}) = \prod_{k=1}^{N} P(\gamma_k < \gamma_{th}) = \left(1 - e^{-\gamma_{th}/\bar{\gamma}}\right)^N $$

SCの利点は実装が簡単なことです。ブランチのSNRを常時監視し、最良の1本を切り替えるだけなので、スイッチング回路があれば実現できます。欠点は、選ばれなかったブランチの信号が完全に捨てられること——これは直感的に「もったいない」です。

ただしSCに近い変種として「スイッチドダイバーシティ(Switched Diversity)」があります。現在のブランチのSNRが閾値を下回ったときだけ別のブランチに切り替える方式で、頻繁なスキャンが不要なため実装コストがさらに低くなります。

最大比合成(MRC: Maximum Ratio Combining)

「すべてのブランチを使い、SNRが最大になるように重みをつけて足し合わせる」のが最大比合成です。

重みつき合成の出力は

$$ y_{\text{MRC}} = \sum_{k=1}^{N} w_k^* y_k = \sum_{k=1}^N w_k^* (h_k s + n_k) $$

このとき出力SNRは

$$ \gamma_{\text{MRC}} = \frac{\left|\sum_k w_k^* h_k\right|^2}{\sigma_n^2 \sum_k |w_k|^2} $$

これを $\bm{w}$ について最大化します。コーシー・シュワルツの不等式を使います。

コーシー・シュワルツ不等式によれば、複素ベクトル $\bm{a}$, $\bm{b}$ に対して

$$ |\bm{a}^H \bm{b}|^2 \leq \|\bm{a}\|^2 \|\bm{b}\|^2 $$

が成立し、等号は $\bm{a} \propto \bm{b}$ のとき(すなわち両者が平行のとき)に達成されます。

ここで $\bm{a} = \bm{w}$(重みベクトル)、$\bm{b} = \bm{h} = (h_1, \ldots, h_N)^T$(チャネルベクトル)と置きます。

$$ \left|\sum_k w_k^* h_k\right|^2 = |\bm{w}^H \bm{h}|^2 \leq \|\bm{w}\|^2 \|\bm{h}\|^2 $$

等号は $\bm{w} = \alpha \bm{h}$($\alpha$ は任意の複素定数)のとき、すなわち

$$ \boxed{w_k = \alpha h_k} $$

のとき達成されます。このとき分子 $|\bm{w}^H\bm{h}|^2 = |\alpha|^2 \|\bm{h}\|^4$、分母 $\sigma_n^2 \|\bm{w}\|^2 = \sigma_n^2 |\alpha|^2 \|\bm{h}\|^2$ なので、$|\alpha|^2$ が約分されて

$$ \begin{equation} \gamma_{\text{MRC}} = \frac{\|\bm{h}\|^2}{\sigma_n^2} = \sum_{k=1}^{N} \frac{|h_k|^2}{\sigma_n^2} = \sum_{k=1}^{N} \gamma_k \end{equation} $$

という美しい結果が得られます。MRCの出力SNRは各ブランチのSNRの和です。これが最大比合成が最適である理由です。1本のブランチが弱くても、他の強いブランチがカバーする——SNRが確実に加算されます。

「なぜ重みがチャネルの複素共役 $h_k^*$ なのか」を直感で理解しましょう。各ブランチの信号 $y_k = h_k s + n_k$ には、チャネル $h_k$ による位相回転が含まれています。重みに $h_k^*$(複素共役)を掛けることで、$w_k^* \cdot h_k s = h_k^* h_k s = |h_k|^2 s$ となり、位相回転がキャンセルされてすべてのブランチの信号が同位相になります。同位相になった信号を足し合わせれば強め合い(コヒーレント加算)、雑音は独立なのでパワー加算にとどまる——これがMRCの物理的直感です。

等利得合成(EGC: Equal Gain Combining)

MRCは最適ですが、チャネル $h_k$ の振幅と位相の両方を正確に知る必要があります(CSI: Channel State Information)。振幅情報が得られない、あるいはコストを下げたい場合に使われるのが等利得合成です。

$$ y_{\text{EGC}} = \sum_{k=1}^N e^{-j\angle h_k} y_k $$

重みの大きさを全ブランチで等しく1に固定し、位相のみを補正します。$e^{-j\angle h_k}$ を掛けることで各ブランチの位相を揃え、加算時に打ち消し合いを防ぎます。

EGCの出力SNRを計算します。

$$ y_{\text{EGC}} = \left(\sum_{k=1}^N |h_k|\right) s + \sum_{k=1}^N e^{-j\angle h_k} n_k $$

シグナル電力は $\left(\sum_k |h_k|\right)^2$、雑音電力は $N\sigma_n^2$(位相補正後の雑音は独立)なので

$$ \gamma_{\text{EGC}} = \frac{\left(\sum_k |h_k|\right)^2}{N \sigma_n^2} $$

一般に $\gamma_{\text{SC}} \leq \gamma_{\text{EGC}} \leq \gamma_{\text{MRC}}$ が成立します。等号はN=1のときです。EGCはMRCより少し劣りますが、実装の複雑さはMRCより低く、SCよりは高いという中間的な位置づけです。

3つの合成方式を整理すると次の表のようになります。

合成方式 必要なCSI 出力SNR 実装コスト
SC(選択合成) SNRの大小のみ $\max_k \gamma_k$
EGC(等利得合成) 位相のみ $\left(\sum_k|h_k|\right)^2 / N\sigma_n^2$
MRC(最大比合成) 振幅+位相(完全CSI) $\sum_k \gamma_k$

MRCが最も高い性能を発揮する代わりにチャネル推定が必要であることが、この表からよく分かります。次に、この性能差を数値で確かめましょう。

Python実装 — シミュレーションで定量的に確認する

ここからは数式で得た知見をPythonシミュレーションで検証します。「理論通り MRC > EGC > SC > 単一」が成立するか、そして「相関が高いとダイバーシティ利得が損なわれる」ことを実測します。

レイリーフェージングチャネルの生成とSNR分布

まず、レイリーフェージングの複素チャネル係数を生成し、3つの合成方式の出力SNRをシミュレートします。

import numpy as np

rng = np.random.default_rng(42)

N_samples = 200_000  # モンテカルロサンプル数
N_branch  = 3        # ブランチ数
sigma2    = 1.0      # 1ブランチあたりの平均SNR = 2*sigma^2 = 2 に設定

# レイリーフェージング: 実部・虚部が N(0, 1/sqrt(2)) の複素ガウス
channels = (rng.normal(0, 1/np.sqrt(2), (N_samples, N_branch)) +
            1j * rng.normal(0, 1/np.sqrt(2), (N_samples, N_branch)))

# 各ブランチの瞬時SNR(雑音電力=1に規格化)
snr_branches = np.abs(channels)**2

# 選択合成 (SC): 最大SNRブランチを選ぶ
snr_sc  = np.max(snr_branches, axis=1)

# 最大比合成 (MRC): ブランチSNRの和
snr_mrc = np.sum(snr_branches, axis=1)

# 等利得合成 (EGC): (振幅の和)^2 / N
amp_sum = np.sum(np.abs(channels), axis=1)
snr_egc = amp_sum**2 / N_branch

print("平均SNR比較(理論値2^N、MRCがNブランチ分の和)")
print(f"  単一ブランチ: {snr_branches[:, 0].mean():.3f}")
print(f"  SC合成:       {snr_sc.mean():.3f}")
print(f"  EGC合成:      {snr_egc.mean():.3f}")
print(f"  MRC合成:      {snr_mrc.mean():.3f}  (理論値 {2*N_branch:.1f})")

このコードでは各サンプルに対して3通りの合成を行い、出力SNRの統計を比較しています。MRCの平均SNRは単一ブランチの N 倍(= 6.0)になるはずで、SCとEGCはその中間に位置するはずです。

MRCの出力SNRが「各ブランチSNRの単純な和」になる(式(3)の結果)ことが数値でも確認できます。一方SCは各瞬間に1本しか使わないため平均SNRは低くなりますが、深フェードの瞬間には他のブランチに切り替えることで最悪ケースを底上げします。SCの真の強みはアウテージ確率の改善にあります。

SNRの累積分布(CDF)比較

SNRの分布全体を見るため、累積分布関数(アウテージ確率)を描きます。

import numpy as np
import matplotlib, matplotlib.pyplot as plt

for cand in ["Hiragino Sans", "Yu Gothic", "Noto Sans CJK JP", "IPAexGothic", "Meiryo"]:
    if any(cand == f.name for f in matplotlib.font_manager.fontManager.ttflist):
        plt.rcParams["font.family"] = cand
        break
plt.rcParams["axes.unicode_minus"] = False

# (上で生成したsnr_branches, snr_sc, snr_egc, snr_mrcを使用)
rng2 = np.random.default_rng(42)
N_s, N_b = 200_000, 3
ch2 = (rng2.normal(0, 1/np.sqrt(2), (N_s, N_b)) +
       1j * rng2.normal(0, 1/np.sqrt(2), (N_s, N_b)))
snr_br2   = np.abs(ch2)**2
snr_sc2   = np.max(snr_br2, axis=1)
snr_mrc2  = np.sum(snr_br2, axis=1)
snr_egc2  = np.sum(np.abs(ch2), axis=1)**2 / N_b

fig, ax = plt.subplots(figsize=(9, 6), facecolor="#0d1117")
ax.set_facecolor("#0d1117")

def plot_cdf(ax, data, color, label, lw=2):
    sorted_d = np.sort(data)
    cdf = np.arange(1, len(sorted_d) + 1) / len(sorted_d)
    ax.semilogy(10*np.log10(sorted_d + 1e-15), 1 - cdf,
                color=color, lw=lw, label=label)

plot_cdf(ax, snr_br2[:, 0], "#ff6b6b", "単一アンテナ", lw=1.5)
plot_cdf(ax, snr_sc2,       "#f0a500", "選択合成 (SC)")
plot_cdf(ax, snr_egc2,      "#7ee787", "等利得合成 (EGC)")
plot_cdf(ax, snr_mrc2,      "#39c5cf", "最大比合成 (MRC)", lw=2.5)

ax.set_xlabel("SNR [dB]"); ax.set_ylabel("アウテージ確率")
ax.set_title(f"合成方式別のSNR分布({N_b}ブランチ)")
ax.legend(); ax.grid(alpha=0.2); ax.set_ylim(1e-4, 1)
plt.tight_layout()
plt.show()

合成方式別のSNR累積分布(3ブランチ)

このグラフから3つのことが読み取れます。第1に、3つの合成方式はいずれも単一アンテナ(赤)より大幅に左にシフトしており、同じアウテージ確率を達成するのに低いSNRで足りることがわかります——これがダイバーシティ利得です。第2に、MRC(シアン)が最も左に位置しており、すべての確率水準で最良のSNRを示します。EGC(緑)が続き、SC(橙)は少し劣ります。第3に、アウテージ確率が低い領域($10^{-3}$ 以下)になるほど3つの差が拡大する傾向があります——これは高SNR時にダイバーシティ次数の違いが表面化するためです。

アウテージ確率 vs ブランチ数

ブランチ数を増やしていくとアウテージ確率がどう変化するかを、1〜8本で比較します。

import numpy as np

rng3 = np.random.default_rng(2024)
snr_threshold = 10**(-10/10)  # 閾値SNR: -10 dB

N_samples3 = 500_000
results = {}

for N in range(1, 9):
    ch = (rng3.normal(0, 1/np.sqrt(2), (N_samples3, N)) +
          1j * rng3.normal(0, 1/np.sqrt(2), (N_samples3, N)))
    snr_br = np.abs(ch)**2
    results[N] = {
        "SC":  np.mean(np.max(snr_br, axis=1)  < snr_threshold),
        "EGC": np.mean((np.sum(np.abs(ch), axis=1)**2 / N) < snr_threshold),
        "MRC": np.mean(np.sum(snr_br, axis=1)  < snr_threshold),
    }

print(f"{'N':>3} | {'SC':>8} | {'EGC':>8} | {'MRC':>8}")
for N in range(1, 9):
    print(f"{N:>3} | {results[N]['SC']:.2e} | "
          f"{results[N]['EGC']:.2e} | {results[N]['MRC']:.2e}")

出力:

  N |       SC |      EGC |      MRC
  1 | 9.52e-02 | 9.52e-02 | 9.52e-02
  2 | 9.20e-03 | 6.27e-03 | 4.86e-03
  3 | 8.60e-04 | 3.00e-04 | 1.42e-04
  4 | 7.60e-05 | 1.00e-05 | 6.00e-06
  5 | 8.00e-06 | <2e-06   | <2e-06
  6 | <2e-06   | <2e-06   | <2e-06
  7 | <2e-06   | <2e-06   | <2e-06
  8 | <2e-06   | <2e-06   | <2e-06

(N≥5以降は50万サンプルでの発生頻度が0になるほど稀なアウテージです。SCは理論的に $P \approx (9.5\%)^N$ と推定できます)

アウテージ確率 vs ブランチ数(SC/EGC/MRC)

このグラフから指数的な改善が一目で確認できます。ブランチ数が1本から2本に増えると、アウテージ確率は1桁(10分の1)以上下がります。さらに4本、6本と増やすにつれて急激に低下し、8本では単一アンテナに比べて4〜5桁の改善が得られます。MRC(シアン)が最も急峻に下がり、SC(橙)が最も緩やか——この差が「ダイバーシティ次数」の差として現れています。SC・EGC・MRCのアウテージ確率の傾きはそれぞれ N の異なる次数に対応しており、高SNR(アウテージ確率が低い)領域でほぼ平行な直線になることがわかります。

合成方式のダイバーシティ利得を棒グラフで確認

1%アウテージを達成するために必要なSNRを比較することで、各方式の「ダイバーシティ利得」を直感的に把握できます。

import numpy as np

def required_snr_dB(method, N, target=0.01):
    rng_local = np.random.default_rng(42 + hash(method) % 100 + N)
    N_s = 500_000
    ch = (rng_local.normal(0, 1/np.sqrt(2), (N_s, N)) +
          1j * rng_local.normal(0, 1/np.sqrt(2), (N_s, N)))
    snr_br = np.abs(ch)**2
    if method == "single":
        combined = snr_br[:, 0]
    elif method == "sc":
        combined = np.max(snr_br, axis=1)
    elif method == "egc":
        combined = np.sum(np.abs(ch), axis=1)**2 / N
    else:  # mrc
        combined = np.sum(snr_br, axis=1)
    pct = np.percentile(combined, target * 100)
    return 10 * np.log10(pct + 1e-15)

cases = [
    ("単一アンテナ", "single", 1),
    ("SC (2本)",     "sc",     2),
    ("EGC (2本)",    "egc",    2),
    ("MRC (2本)",    "mrc",    2),
    ("SC (4本)",     "sc",     4),
    ("EGC (4本)",    "egc",    4),
    ("MRC (4本)",    "mrc",    4),
]

print(f"{'手法':>12} | 1%アウテージSNR [dB] | 改善量 [dB]")
baseline = required_snr_dB("single", 1)
for name, method, N in cases:
    val = required_snr_dB(method, N)
    print(f"{name:>12} | {val:>20.1f} | {baseline - val:>10.1f}")

合成方式・ブランチ数による1%アウテージ必要SNR比較

シミュレーション結果では、単一アンテナで-19.9 dBのSNRが必要だったのに対し、MRC 2本では-8.3 dB(約11.6 dB改善)、MRC 4本では-0.8 dB(約19.1 dB改善)となりました。MRC > EGC > SC の順位関係がすべてのブランチ数で成立しており、数式による予測と完全に合致します。棒グラフの低い位置(より低いSNRで1%アウテージを達成)ほど良い合成方式です。

相関の影響——なぜアンテナ間隔が重要なのか

import numpy as np

rng4 = np.random.default_rng(2025)
snr_th = 0.05  # 閾値SNR
rho_vals = np.linspace(0, 0.99, 20)
N_s = 300_000

pout_mrc = []
pout_sc  = []

for rho in rho_vals:
    # 相関係数 rho の2ブランチ: コレスキー分解で相関ガウスを生成
    cov = np.array([[1.0, rho], [rho, 1.0]])
    L   = np.linalg.cholesky(cov)
    z_I = L @ rng4.normal(0, 1/np.sqrt(2), (2, N_s))
    z_Q = L @ rng4.normal(0, 1/np.sqrt(2), (2, N_s))
    ch_c = (z_I + 1j * z_Q).T  # (N_s, 2)
    snr_br = np.abs(ch_c)**2
    pout_mrc.append(np.mean(np.sum(snr_br, axis=1) < snr_th))
    pout_sc.append( np.mean(np.max(snr_br, axis=1) < snr_th))

# rho=0 と rho=0.9 の比較
print(f"相関=0.0: MRC アウテージ={pout_mrc[0]:.2e}, SC={pout_sc[0]:.2e}")
print(f"相関=0.5: MRC アウテージ={pout_mrc[10]:.2e}, SC={pout_sc[10]:.2e}")
print(f"相関=0.9: MRC アウテージ={pout_mrc[-2]:.2e}, SC={pout_sc[-2]:.2e}")

相関係数とダイバーシティ利得の劣化(2ブランチ)

このグラフは設計上の重要な教訓を示します。相関係数 $\rho = 0$(完全独立)では MRC・SC ともにアウテージ確率が十分低いのに対し、$\rho$ が増えるにつれてアウテージ確率が単調に悪化します。$\rho = 0.5$ では $\rho = 0$ に比べてアウテージ確率が約1桁増え、$\rho = 0.9$ になると単一アンテナに近い性能まで劣化します。縦軸が対数スケールであることを考えると、相関の影響は非常に深刻です。「アンテナを2本置けば必ずダイバーシティ効果がある」は誤りで、十分な間隔を確保して相関を 0.5 以下に抑えることが必須だとわかります。

アンテナ間隔と空間相関 — なぜ 0.5λ か

空間ダイバーシティを実現するためにどれだけアンテナを離せばよいかは、到来波の角度スプレッドに依存します。全方位から均一に散乱波が到来する「一様到来角モデル(Clarke’s model)」では、2アンテナ間の複素相関係数が次のベッセル関数で表されます(詳細な導出は関連記事を参照)。

$$ \begin{equation} \rho_E(d) = J_0\!\left(\frac{2\pi d}{\lambda}\right) \end{equation} $$

ここで $J_0$ は第1種0次ベッセル関数、$d$ は2アンテナ間の距離、$\lambda$ は波長です。電力相関は $|\rho_E|^2 = J_0^2(2\pi d/\lambda)$ となります。

空間相関のアンテナ間隔依存性と周波数別の必要間隔

左図から、ベッセル関数は 0 の周りを振動しながら減衰し、最初のゼロ点が $d \approx 0.38\lambda$ にあることがわかります。実用的に $\rho \leq 0.5$ を満たすのは $d \geq 0.38\lambda$ 程度からで、安全余裕を加えた設計値として $d = 0.5\lambda$ が広く使われています。

右図は周波数帯別の視点で描いたものです。破線が各周波数での 0.5λ 点を示しており、周波数が高いほど物理的な間隔が短くて済むことが一目でわかります。

周波数 波長 0.5λ間隔
900 MHz(LTE Band 8) 33 cm 16.5 cm
2.4 GHz(Wi-Fi) 12.5 cm 6.3 cm
5 GHz(Wi-Fi 6) 6 cm 3 cm
28 GHz(5G mmWave) 10.7 mm 5.4 mm
77 GHz(車載レーダー) 3.9 mm 1.95 mm

ミリ波(mmWave)帯になると 0.5λ はわずか数mmになるため、小型デバイスに多数のアンテナを詰め込める(マッシブ MIMO)ことがわかります。これが5G mmWaveの空間多重・空間ダイバーシティの物理的基盤です。

一方で基地局では、到来角スプレッドが小さいため相関が下がりにくく、10λ 以上の間隔が必要になることがあります。スマートフォン側(散乱環境が豊富)と基地局側(到来角スプレッドが小さい)で必要な間隔が大きく異なる点は、MIMOシステム設計の重要なポイントです。

MRC最適重みの直感とEGCとの比較

理論の節では「コーシー・シュワルツの等号条件から $w_k = h_k^*$ が最適」と示しました。それを視覚的に確認しましょう。

MRC最適重みの直感とMRC/EGCのSNR分布

左図では、2ブランチの重みを角度パラメータ $\theta$ で変化させたとき($w_1 = \cos\theta$, $w_2 = \sin\theta$)の出力SNRを示します。最大値は MRC 上限(赤破線)= $|h_1|^2 + |h_2|^2 = 1.44 + 0.64 = 2.08$ に完全に一致し、$\theta \approx 56.3°$($\arctan(h_2/h_1) = \arctan(0.8/1.2)$)のときに達成されます。この角度が $w_k \propto h_k$ に対応する方向です。どの重み比率も単一ブランチ(橙・緑破線)を上回ることはできますが、MRC の最大値だけは下から抑えることができないことが見て取れます。

右図では、多数のランダムなレイリーフェージングチャネルに対して MRC と EGC の SNR 分布を比較します。MRC の平均 SNR(シアン破線)が EGC(緑破線)を約 10% 上回ることが確認できます。高SNR側の裾(大きなブランチ差がある場合)ほど両者の差が開きます——振幅差が大きいとき EGC は「弱いブランチに引きずられる」一方、MRC はその弱さを重みで補正できるからです。

応用への発展 — MIMO と空間多重

アンテナダイバーシティは「同じデータを複数経路で守る」受動的な使い方でしたが、同じ複数アンテナ構成を「異なるデータを複数経路で同時送受信する」能動的な使い方に転換したのが MIMO(Multiple-Input Multiple-Output) です。

送信側 $N_t$ 本、受信側 $N_r$ 本のアンテナを使うとき、チャネル行列 $\bm{H} \in \mathbb{C}^{N_r \times N_t}$ の階数(rank)分のデータストリームを同時伝送できます(空間多重)。一方でダイバーシティとの間にはトレードオフがあり、

$$ d + r \leq N_t + N_r – 1 $$

が成立します(Zheng-Tse の多様性・多重化トレードオフ)。ここで $d$ はダイバーシティ次数、$r$ は多重化利得(ストリーム数)です。すべてのリソースをダイバーシティに使えば最大 $N_t N_r$ の次数が得られ、すべてを多重化に使えば最大 $\min(N_t, N_r)$ ストリームが送れます。

実際のシステムでは、通信路の品質(SNRやフェージングの深さ)に応じてダイバーシティと多重化のバランスを適応的に制御します——これが 5G NR の適応変調・符号化(AMC)と空間多重制御の根幹です。

まとめ

本記事では、アンテナダイバーシティの原理から合成方式の数式導出、Pythonシミュレーションによる定量的検証まで解説しました。

  • マルチパスフェージングは電波の多経路干渉によって受信電力が激しく変動する現象で、包絡線はレイリー分布に従い、アウテージ確率は $P_{\text{out}} = 1 – \exp(-r_{th}^2/2\sigma^2)$ で与えられます
  • ダイバーシティの本質は独立なブランチを束ねること。N 本独立ブランチのアウテージ確率は $p^N$ に激減します(p = 1ブランチのアウテージ確率)
  • 3つの合成方式はトレードオフを持ちます: SC(最大SNRブランチを選択、実装容易)< EGC(位相のみ補正、中間)< MRC(SNRの和で最適、完全CSI必要)
  • MRCの最適性はコーシー・シュワルツの不等式から導かれ、最適重み $w_k = \alpha h_k^*$ のとき出力SNR = $\sum_k \gamma_k$ が達成されます
  • 空間相関が高いとダイバーシティ利得は急速に劣化します。一様到来角モデルでは $\rho = J_0(2\pi d/\lambda)^2$ となり、0.5λ 間隔で $\rho \leq 0.5$ を実現できます
  • Pythonシミュレーションで MRC > EGC > SC の順位、ブランチ数を増やすごとの指数的なアウテージ確率改善、相関の影響がすべて確認されました

ダイバーシティはMIMOの基盤技術です。複数アンテナを「守る」(ダイバーシティ)から「攻める」(空間多重)へと活用を広げることで、現代の高速無線通信が実現しています。

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