受信ダイバーシティの合成方式 — 選択合成・等利得合成・最大比合成の理論と導出

スマートフォンで動画を見ながら歩いていると、ほんの数歩進んだだけで電波がガクッと落ちる瞬間があります。これは電波が壁や建物に反射して複数の経路で届き、受信点で互いに打ち消し合うマルチパスフェージングのせいです。1本のアンテナでこの「谷」にハマると、いくら送信電力を上げても通信は途切れてしまいます。

ここで効くのが受信ダイバーシティです。少し離れた場所にもう1本アンテナを置くと、2本が同時に深い谷にハマる確率はぐっと下がります。問題は「2本(あるいはN本)で受けた信号を、どう1つにまとめれば一番得をするか」です。この「まとめ方」を合成方式(combining) と呼び、本記事の主役です。受信ダイバーシティの合成方式を理解すると、次のような場面でその効果を実感できます。

  • 携帯基地局・スマホの受信回路: 4G/5G基地局は2〜8本の受信アンテナを並べ、最大比合成(MRC) で各ブランチを最適に足し合わせます。これがMIMO受信機の心臓部です。
  • IoT・衛星通信のリンク設計: LPWAゲートウェイや低軌道衛星リンクで、選択合成や偏波ダイバーシティを使い、ディープフェードによるパケット欠落を桁違いに減らします。

本記事では「なぜ複数アンテナが強いのか」という直感から出発し、3つの合成方式(選択合成・等利得合成・最大比合成)の数式を省略なしに導出します。とくに検索需要の高い「最大比合成の最適性」は、コーシー・シュワルツの不等式で重みがチャネルの共役になることまで丁寧に示します。

本記事の内容

  • なぜ複数アンテナで受けると強いのか(独立フェージングの直感とアウテージ確率)
  • 選択合成(SC)の出力SNR分布の導出
  • 等利得合成(EGC)と最大比合成(MRC)の仕組み
  • MRCの最適重み $w_k = h_k^*$ をコーシー・シュワルツで証明
  • ダイバーシティ次数とBER改善の関係(傾きが変わる図)
  • 3方式のPythonシミュレーション比較とMIMO・MRTへの橋渡し

前提知識

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

なぜ複数アンテナで受けると強いのか

まず直感から始めましょう。フェージングの本質は「受信電力が時間や位置によって激しく変動し、ときどき深い谷(ディープフェード)に落ちる」ことです。1本のアンテナでこの谷に落ちると通信は失敗します。

ここで、十分に離れた2本のアンテナを考えます。2本の受信点でのフェージングは互いに独立に変動します(なぜ離す必要があるか=空間相関の話は別記事で扱います)。すると「アンテナ1が谷に落ちた瞬間に、アンテナ2も同時に谷に落ちている」確率はとても小さくなります。片方が落ちても、もう片方は元気——これがダイバーシティの心臓部です。

実際に2本の独立なフェージング波形を並べてみましょう。

2本のアンテナの独立フェージング波形。両方が同時に深く落ちる瞬間はまれであることを示す概念図

上下のグラフはそれぞれ別アンテナの受信電力です。点線(−10 dB)より下が「ディープフェード」とします。それぞれ単独では何度も谷に落ちていますが、赤い帯で示した「両方が同時に−10 dBを割る」瞬間はごくわずかしかありません。つまり、2本のうち良い方を使えるなら、通信が途切れる確率は劇的に下がるのです。

これを確率で押さえましょう。1本のアンテナが「使い物にならないレベルまで落ちる」確率(アウテージ確率)を $p$ とします。$N$ 本のアンテナが独立なら、$N$ 本すべてが同時に落ちる確率は積になります。

$$ P_{\text{out}}(N) = p^N $$

$p = 0.1$ なら、$N=2$ で $0.01$、$N=3$ で $0.001$ と、本数を1本増やすごとに桁が1つ減ります。この「指数的に良くなる」効果がダイバーシティの威力です。

ブランチ数Nに対する全ブランチ同時フェードの確率が0.1のN乗で激減するグラフ

縦軸が対数なので、$p^N$ は直線で右肩下がりになります。1本では10%だったアウテージが、4本では $10^{-4}$(0.01%)まで下がります。送信電力を増やさずに、ただアンテナを増やすだけでこの改善が得られるのが重要な点です。

ただし、これは「N本のうち最も良い1本だけを使う」場合の話です。実際には「全部足し合わせればもっと得をする」方法があります。では具体的に、どんな足し合わせ方があるのかを見ていきましょう。

3つの合成方式の全体像

受信した $N$ 本の信号をどう1つにまとめるか。代表的な方式は3つです。まず全体像を掴んでおきましょう。

選択合成SC・等利得合成EGC・最大比合成MRCの3方式のブロック図

3方式の違いは「各ブランチにどんな重み $w_k$ を掛けてから足すか」に集約されます。図の左から順に、考え方を直感的に説明します。

  • 選択合成(SC: Selection Combining): 最も受信が強い1本だけを選んでスイッチで切り替え、残りは捨てます。実装が一番簡単です。
  • 等利得合成(EGC: Equal Gain Combining): 全ブランチの位相だけを揃えて、振幅は等しい重みのまま足し合わせます。$w_k = e^{-j\phi_k}$。
  • 最大比合成(MRC: Maximal Ratio Combining): 位相を揃えたうえで、強いブランチほど重く、弱いブランチほど軽く重み付けして足します。$w_k = h_k^*$。理論上もっとも高い出力SNRが得られます。

ここで共通の信号モデルを決めておきます。$k$ 番目のブランチ(アンテナ)が受信する信号 $r_k$ を、複素チャネル係数 $h_k$ と送信シンボル $s$、雑音 $n_k$ で表します。

$$ r_k = h_k s + n_k, \quad k = 1, 2, \dots, N $$

ここで $h_k = a_k e^{j\phi_k}$ はフェージングによる振幅 $a_k$ と位相回転 $\phi_k$ を含み、$n_k$ は分散 $\sigma^2$ の複素ガウス雑音です。合成器は重みベクトル $\bm{w} = (w_1, \dots, w_N)^\top$ で各ブランチを足し合わせます。

$$ y = \sum_{k=1}^{N} w_k r_k = \left(\sum_{k=1}^{N} w_k h_k\right) s + \sum_{k=1}^{N} w_k n_k $$

この $y$ の信号対雑音比(SNR)をできるだけ大きくする重み $\bm{w}$ を探すのが目標です。まずは一番シンプルな選択合成から、その出力SNRがどんな分布になるかを導きましょう。

選択合成(SC)の出力SNR分布の導出

選択合成は「$N$ 本のブランチのうち、瞬時SNRが最大のものを選ぶ」だけです。各ブランチの瞬時SNRを $\gamma_k$、選択合成の出力SNRを $\gamma_{\text{SC}}$ とすると、

$$ \gamma_{\text{SC}} = \max_{k} \, \gamma_k $$

これだけです。問題は「$\gamma_{\text{SC}}$ がどんな確率分布になるか」です。これがアウテージ確率を決めます。

レイリーフェージングでは、各ブランチの瞬時SNR $\gamma_k$ は平均 $\Gamma$ の指数分布に従います(これは振幅がレイリー分布、電力が指数分布になることから来ます)。指数分布の累積分布関数(CDF)は、

$$ F_{\gamma}(\gamma) = P(\gamma_k \le \gamma) = 1 – e^{-\gamma/\Gamma} $$

ゴールは $\gamma_{\text{SC}}$ のCDFを求めることです。「最大値がある値 $\gamma$ 以下である」とは「全ブランチがそろって $\gamma$ 以下である」ことと同じです。各ブランチが独立なので、確率は積になります。

$$ \begin{align} F_{\gamma_{\text{SC}}}(\gamma) &= P\left(\max_k \gamma_k \le \gamma\right) \\ &= P(\gamma_1 \le \gamma,\ \dots,\ \gamma_N \le \gamma) \\ &= \prod_{k=1}^{N} P(\gamma_k \le \gamma) \quad (\because \text{独立}) \\ &= \left(1 – e^{-\gamma/\Gamma}\right)^N \end{align} $$

たった1行の独立性の仮定で、$N$ 乗の形が出てきました。この $\left(1 – e^{-\gamma/\Gamma}\right)^N$ こそが選択合成のアウテージ確率(出力SNRが閾値 $\gamma$ を下回る確率)です。

低SNR領域($\gamma \ll \Gamma$)での振る舞いを見てみましょう。$e^{-\gamma/\Gamma} \approx 1 – \gamma/\Gamma$ とテイラー展開すると、

$$ F_{\gamma_{\text{SC}}}(\gamma) \approx \left(\frac{\gamma}{\Gamma}\right)^N $$

つまりアウテージ確率は $\gamma^N$ に比例して小さくなります。この指数 $N$ が後で出てくるダイバーシティ次数で、本数を増やすほど低SNR側でアウテージが急峻に改善します。

実際にシミュレーションで分布を描き、理論式と一致するか確かめましょう。

選択合成の出力SNRの累積分布。ブランチ数を増やすとアウテージ確率が改善する

実線(シミュレーション)と点線(理論式 $(1-e^{-\gamma/\Gamma})^N$)がぴったり重なっています。注目すべきは低SNR側(左下)の傾きです。$N$ が増えるほど曲線が立ち上がり、たとえば「−10 dB以下に落ちる確率」が $N=1$ で約10%、$N=4$ で約 $10^{-4}$ まで下がります。これは前節の $p^N$ の議論と整合します。

選択合成はシンプルで強力ですが、「最強の1本以外を捨てている」のがもったいない点です。全ブランチを賢く足し合わせれば、もっと出力SNRを稼げるはずです。次は位相を揃えて足す等利得合成、そして最適な最大比合成へ進みます。

等利得合成(EGC)— 位相を揃えて足す

複数のブランチをそのまま足すと、なぜ損をするのでしょうか。各ブランチの信号は $h_k s = a_k e^{j\phi_k} s$ で、ブランチごとに位相 $\phi_k$ がバラバラです。位相の違うベクトルを足すと、互いに打ち消し合って合成結果が小さくなってしまいます。

MRCのフェーザ整列。共役重みで位相を揃えてから加算する様子

左図のように位相を揃えずに足すと、3本のベクトルが別々の方向を向き、合成結果(赤の点線)は短くなります。右図のように各ブランチの位相回転をキャンセルして全部を同じ向き(実軸)に揃えてから足すと、長さがそのまま積み上がります。これが合成の第一歩「同相加算」です。

等利得合成は、まさにこの「位相だけを揃える」方式です。重みを $w_k = e^{-j\phi_k}$ とすると、各ブランチの位相回転 $e^{j\phi_k}$ が打ち消され、信号成分は同相で足し合わさります。

$$ \sum_{k=1}^{N} w_k h_k s = \sum_{k=1}^{N} e^{-j\phi_k} \cdot a_k e^{j\phi_k} s = \left(\sum_{k=1}^{N} a_k\right) s $$

信号振幅は $\sum_k a_k$ となり、$N$ 本がそのまま積み上がります。実装は「位相推定だけでよく、振幅の重み付けが不要」なので、MRCより簡単です。ただし、雑音が大きい(=弱い)ブランチも等しい重みで足してしまうため、最適ではありません。

では「弱いブランチは軽く、強いブランチは重く」という最適な重み付けはどう決めればよいのでしょうか。これを厳密に解くのが最大比合成です。

最大比合成(MRC)の導出 — 最適重みはチャネルの共役

ここが本記事の核心です。ゴールは「出力SNR $\gamma_{\text{MRC}}$ を最大にする重みベクトル $\bm{w}$ を求める」ことです。

出力SNRを重みで表す

合成出力 $y = (\sum_k w_k h_k) s + \sum_k w_k n_k$ の信号電力と雑音電力を計算します。送信シンボル電力を $E_s = E[|s|^2]$、各ブランチ雑音の分散を $\sigma^2$(独立)とします。

信号電力は、

$$ P_{\text{sig}} = \left|\sum_{k=1}^{N} w_k h_k\right|^2 E_s $$

雑音電力は、各ブランチ雑音が独立なので分散が足し合わさり、

$$ P_{\text{noise}} = \sum_{k=1}^{N} |w_k|^2 \sigma^2 $$

したがって出力SNRは、ベクトル表記 $\bm{w}, \bm{h}$ を使って、

$$ \gamma_{\text{MRC}} = \frac{P_{\text{sig}}}{P_{\text{noise}}} = \frac{E_s}{\sigma^2} \cdot \frac{\left|\sum_{k} w_k h_k\right|^2}{\sum_{k} |w_k|^2} = \frac{E_s}{\sigma^2} \cdot \frac{|\bm{w}^\top \bm{h}|^2}{\|\bm{w}\|^2} $$

この $\dfrac{|\bm{w}^\top \bm{h}|^2}{\|\bm{w}\|^2}$ を最大化する $\bm{w}$ を探すのが問題です。

コーシー・シュワルツの不等式で最適性を示す

ここでコーシー・シュワルツの不等式を使います。任意の複素ベクトル $\bm{w}, \bm{h}$ に対して、

$$ \left|\sum_{k=1}^{N} w_k h_k\right|^2 \le \left(\sum_{k=1}^{N} |w_k|^2\right)\left(\sum_{k=1}^{N} |h_k|^2\right) $$

が成り立ち、等号は $w_k$ が $h_k^*$ に比例するとき($w_k = c\, h_k^*$、$c$ は任意の複素定数)に限り成立します。この不等式の両辺を $\sum_k |w_k|^2 = \|\bm{w}\|^2$ で割ると、

$$ \frac{|\bm{w}^\top \bm{h}|^2}{\|\bm{w}\|^2} \le \sum_{k=1}^{N} |h_k|^2 = \|\bm{h}\|^2 $$

右辺は $\bm{w}$ に依存しません。つまり出力SNRには上限 $\|\bm{h}\|^2$ があり、その上限に到達するのは等号成立条件、すなわち

$$ \boxed{\,w_k = h_k^* \quad (k = 1, \dots, N)\,} $$

のときだけです。これが最大比合成(MRC)の名前の由来で、最適重みはチャネル係数の複素共役になります。共役を取ることの意味は2つあります。第一に $h_k^* h_k = |h_k|^2$ となり位相 $\phi_k$ がキャンセルされる(同相加算)こと、第二に振幅 $a_k$ が重みにも掛かるので強いブランチほど重く扱われることです。EGCが位相だけ揃えたのに対し、MRCは「位相を揃え、かつ振幅でも重み付けする」のが違いです。

合成後SNRはブランチSNRの和になる

最適重み $w_k = h_k^*$ を代入すると、出力SNRは上限に達します。

$$ \gamma_{\text{MRC}} = \frac{E_s}{\sigma^2} \sum_{k=1}^{N} |h_k|^2 = \sum_{k=1}^{N} \frac{|h_k|^2 E_s}{\sigma^2} = \sum_{k=1}^{N} \gamma_k $$

ここで $\gamma_k = |h_k|^2 E_s / \sigma^2$ は $k$ 番目のブランチ単独のSNRです。結論は驚くほどシンプルです。

$$ \gamma_{\text{MRC}} = \sum_{k=1}^{N} \gamma_k $$

MRCの出力SNRは、各ブランチSNRの単純な和になるのです。1本でも弱いブランチは小さく寄与し、強いブランチは大きく寄与する——その合計が得られます。これがあらゆる線形合成の中で最大のSNRであることを、コーシー・シュワルツが保証しています。

導出が完了しました。ここまでで3方式の重みが出そろいました。SCは最強1本、EGCは位相だけ揃える、MRCは共役重みで和を取る。次に、これらが実際にどれだけ性能差を生むのかを比較します。

3方式の性能比較

3方式を同じ条件($N=2$、レイリーフェージング、各ブランチ平均SNR等しい)で比べ、出力SNRの累積分布を描きます。

N=2でのSC・EGC・MRCの出力SNR累積分布比較

3本の曲線は MRC ≧ EGC ≧ SC の順に良くなっています(左にあるほど良い=同じアウテージ確率をより低いSNRで達成)。一方で、低SNR側での傾きはどれも同じである点に注目してください。傾きは「ダイバーシティ次数」を表し、3方式とも $N=2$ なので傾きは同じ2です。つまり方式の違いは「SNRが何 dB 得か(アレイ利得)」に効き、「傾き(ダイバーシティ次数)」は本数 $N$ で決まります。MRCはEGCより約1 dB、SCより約2〜3 dB 有利です。

次に、本数 $N$ を変えたときの平均出力SNR利得を比較します。

ブランチ数に対するSC・EGC・MRCの平均SNR利得の比較

MRCは平均SNRが $N$ に比例して線形に増える($N$ 本で $N$ 倍、6 本で約 8 dB)のに対し、SCは $\sum_{k=1}^{N} 1/k$(調和級数)で増えるため、本数を増やすほど頭打ちになります。EGCはその中間です。たとえば4本のとき、MRCは6 dB の利得ですがSCは約3.7 dB にとどまります。MRCが「最大比」と呼ばれ実システムで好まれる理由がここにあります。

性能差は分かりました。では、この差は最終的なビット誤り率(BER)にどう効くのでしょうか。通信品質を直接表すBERで見てみましょう。

ダイバーシティ次数とBER改善

フェージング下では、SNRが平均的に高くても深い谷にハマると誤りが集中し、BERがなかなか下がりません。MRCはこの谷を埋めるので、BERの下がり方(SNRに対する傾き)が劇的に改善します。

レイリーフェージング下でMRC($N$ ブランチ)を使ったBPSKの平均ビット誤り率には、閉形式があります。

$$ P_b = \left(\frac{1-\mu}{2}\right)^N \sum_{k=0}^{N-1} \binom{N-1+k}{k}\left(\frac{1+\mu}{2}\right)^k, \quad \mu = \sqrt{\frac{\Gamma}{1+\Gamma}} $$

ここで $\Gamma$ はブランチあたりの平均SNRです。式は複雑ですが、高SNR領域での振る舞いだけ押さえれば十分です。$\Gamma$ が大きいとき、この式は近似的に、

$$ P_b \approx \binom{2N-1}{N}\left(\frac{1}{4\Gamma}\right)^N \propto \Gamma^{-N} $$

となります。BERは高SNRで $\Gamma^{-N}$ で減衰するのです。両対数グラフで見ると、傾きが $-N$ の直線になります。この $N$ こそがダイバーシティ次数で、本数を増やすと曲線の傾きそのものが急になります。

レイリーフェージング下のMRCのBPSK誤り率。ダイバーシティ次数によりSNRのN乗で減衰

灰色の点線(AWGN=フェージングなし)と比べると、$N=1$(青)はフェージングのせいで非常に緩やかにしか下がりません。BERを $10^{-3}$ にするのに、$N=1$ では約24 dB 必要なのに対し、$N=2$ では約14 dB、$N=4$ では約10 dB で済みます。傾きが本数とともに急になっていることが一目でわかります。これがダイバーシティの真価です。

最後に、この閉形式理論が正しいことをモンテカルロシミュレーションで確かめましょう。

Pythonでのシミュレーション検証

ここまでの理論を、実際にMRC受信機をシミュレートして確かめます。送信したBPSKシンボルを $N$ ブランチで受信し、$w_k = h_k^*$ で合成して復調し、ビット誤り率を測ります。理論の閉形式と一致すれば、導出が正しいと確認できます。

import numpy as np
from scipy.special import comb

def ber_mrc_rayleigh(GdB, N):
    """レイリー+MRC のBPSK平均BER(閉形式)"""
    G = 10 ** (GdB / 10)
    mu = np.sqrt(G / (1 + G))
    s = np.zeros_like(G)
    for k in range(N):
        s += comb(N - 1 + k, k) * ((1 + mu) / 2) ** k
    return ((1 - mu) / 2) ** N * s

rng = np.random.default_rng(2)
GdB_sim = np.arange(0, 22, 2)
Nbits = 400000

for n in [1, 2, 4]:
    print(f"--- N={n} ---")
    for gdb in GdB_sim:
        G = 10 ** (gdb / 10)
        bits = rng.integers(0, 2, Nbits)
        s = 2.0 * bits - 1.0  # BPSK: 0->-1, 1->+1
        # 各ブランチ: レイリーチャネル h と複素ガウス雑音
        h = (rng.normal(size=(Nbits, n)) + 1j * rng.normal(size=(Nbits, n))) / np.sqrt(2)
        noise = (rng.normal(size=(Nbits, n)) + 1j * rng.normal(size=(Nbits, n))) / np.sqrt(2 * G)
        r = h * s[:, None] + noise
        # MRC: w = h* で合成(位相を揃え振幅で重み付け)
        y = np.sum(np.conj(h) * r, axis=1)
        ber = np.mean((y.real > 0).astype(int) != bits)
        if gdb in (0, 10, 20):
            print(f"  {gdb} dB: sim={ber:.3e}, theory={ber_mrc_rayleigh(np.array([float(gdb)]), n)[0]:.3e}")

このコードの肝は y = np.sum(np.conj(h) * r, axis=1) の1行で、導出した最適重み $w_k = h_k^*$ をそのまま実装しています。各ブランチに共役チャネルを掛けて足すだけです。実行すると、シミュレーション値(sim)と閉形式理論(theory)が小数点以下まで一致します。たとえば $N=4$、20 dB では理論値約 $1.3\times10^{-9}$ となり、導出した式が正しいことが裏づけられます(高SNRでサンプル数が足りないとシミュレーション側は誤りゼロになる点に注意)。

さらに、ブランチ数を変えてBER曲線全体を描くと、理論と一致した曲線群が得られます。

MRCのモンテカルロシミュレーションと閉形式理論のBER一致確認

丸印(シミュレーション)が実線(閉形式理論)の上にきれいに乗っています。$N$ が大きいほど曲線の傾きが急になり、ダイバーシティ次数 $N$ がそのままBERの減衰の速さを決めることが、理論・シミュレーションの両面から確認できました。

まとめ

本記事では、受信ダイバーシティの3つの合成方式を理論と導出付きで解説しました。

  • 直感: 独立にフェージングするN本のアンテナが同時に深い谷に落ちる確率は $p^N$ で激減する。これがダイバーシティの本質
  • 選択合成(SC): 最強1本を選ぶ。出力SNRのCDFは $(1-e^{-\gamma/\Gamma})^N$。実装は最も簡単だが利得は頭打ち
  • 等利得合成(EGC): 位相だけを揃えて等重みで加算。$w_k = e^{-j\phi_k}$
  • 最大比合成(MRC): 最適重みは $w_k = h_k^*$(コーシー・シュワルツで証明)。出力SNRはブランチSNRの和 $\sum_k \gamma_k$ となり、線形合成の中で最大
  • ダイバーシティ次数: 本数 $N$ が高SNRでのBERの傾き($\propto \Gamma^{-N}$)を決める。方式の違いはアレイ利得(dBオフセット)に効く

MRCで導いた「最適重みはチャネルの共役」という結果は、無線通信の至るところに顔を出します。送信側で同じ考え方を使えば最大比送信(MRT: Maximal Ratio Transmission)になり、複数アンテナ間で行えばMIMOの受信ウェイト設計(MMSE/ZF受信機)の出発点になります。受信ダイバーシティは、現代のMIMO・ビームフォーミング技術の最も基礎的な一歩なのです。

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