受信アンテナを1本から2本に増やしたとき、私たちは「何dB得をした」と言うのでしょうか。素朴に考えれば、受信電力が2倍になるので3 dBの得です。ところが実際にBER(ビット誤り率)曲線を測ってみると、フェージング環境では3 dBどころか20 dB以上も改善することがあります。BER $10^{-5}$ を達成するのに必要なSNRは、レイリーフェージング下で1分岐なら約44 dB、2分岐の最大比合成なら約21 dBです。差し引き22 dB以上。「電力2倍で3 dB」の直感とはまるで合いません。
この食い違いは、アンテナを増やすことで質の違う2種類の利得が同時に手に入るせいです。ひとつはBER曲線を左に平行移動させる利得。もうひとつはBER曲線の傾きそのものを急にする利得です。前者をアレイ利得(array gain)、後者をダイバーシチ利得(diversity gain、あるいはダイバーシチ次数)と呼びます。この2つを混ぜたまま「利得」と一括りにすると、次のような問いに答えられなくなります。
- 選択合成(SC)と最大比合成(MRC)は、どちらもL分岐なら「L次のダイバーシチ」と言われます。では、なぜMRCの方が明確に性能が良いのでしょうか。
- 2×1のアラモウティ符号と1×2のMRCは、どちらも2次のダイバーシチです。なぜアラモウティの方がちょうど3 dB損をするのでしょうか。
- MIMOでアンテナを増やしたとき、その自由度を「誤り率を下げる」のに使うのか「伝送レートを上げる」のに使うのか、どう配分すべきでしょうか。
この記事では、高SNR域でBERが $P_e \approx (G_a \cdot \mathrm{SNR})^{-G_d}$ という驚くほど単純な形に収束することを出発点に、$G_d$(傾き)と $G_a$(横シフト)を明確に分離します。この分離ができると、以下のような場面で設計判断が一気に楽になります。
- 移動体通信の受信機設計: 端末の実装コストを抑えるために選択合成で済ませるか、MRCまで作り込むかの判断。ダイバーシチ次数が同じなら「傾きは同じ、横に何dB損するか」だけを見ればよく、L分岐なら $(L!)^{1/L}$ という閉じた式で損失が見積もれます。
- 衛星通信・レーダーのリンクバジェット: フェージングマージンをいくら積むかは、実質的にBER曲線の傾きで決まります。ダイバーシチ次数が1から2に上がるだけで、必要マージンは半分近くに減ります。
- MIMOのモード選択: 5G NRのように「空間多重(レート)」と「送信ダイバーシチ(信頼性)」を切り替える系では、ダイバーシチ・多重化トレードオフ $d(r) = (N_t – r)(N_r – r)$ が切り替え設計の指針そのものになります。
言葉だけでは掴みにくいので、まず「この記事が何を分けようとしているのか」を1枚の絵にしておきます。

灰色の方式Aは1分岐で、SNRを10 dB上げてもBERは1桁しか下がりません。これに対し赤の方式Bと青の方式Cは3分岐で、10 dBあたり3桁落ちる急な直線になっています。この傾きの差がダイバーシチ利得です。一方、方式Bと方式Cは傾きが同じで、青が赤より一定量だけ左にあります。この横シフト量がアレイ利得で、どのBERの高さで測っても同じdB値になります。そして左下の注意書きのとおり、傾きが違う灰色と青の間で「横に何dB」を語っても、測る高さによって答えが変わるため意味を持ちません。
本記事の内容
- フェージング下でBER曲線が「傾き」を持つ理由と、$P_e \approx (G_a \cdot \mathrm{SNR})^{-G_d}$ の意味
- 合成後SNRの確率密度の原点近傍の振る舞いから $G_d$ と $G_a$ を導く一般公式
- MRC・選択合成(SC)・等利得合成(EGC)それぞれの $G_d$ と $G_a$ の導出(調和数 $H_L$ が出てくる理由まで)
- 「アレイ利得」の2つの流儀(平均出力SNR基準と、BER漸近基準)の違い
- MIMOにおける送信アレイ利得の消失と、ダイバーシチ・多重化トレードオフ $d(r) = (N_t-r)(N_r-r)$
- PythonでSC/EGC/MRCのBER曲線を同一軸に描き、傾きと横シフトを数値で分離抽出する
前提知識
この記事を読む前に、以下の記事を読んでおくと理解が深まります。
- 受信ダイバーシティの合成方式 — 選択合成・等利得合成・最大比合成の理論と導出 — SC/EGC/MRCの合成則そのものを定義から追っています
- 最大比合成(MRC)とは?ダイバーシチ利得の導出と実装 — MRCの最適性(コーシー・シュワルツによる導出)
- MIMO通信の基礎 — 空間多重とダイバーシティで通信容量を増やす — 送受信を多アンテナ化したときの信号モデル
なぜフェージングでは「傾き」が問題になるのか
フェージングの何が怖いのかを、まず数字で押さえておきましょう。フェージングが無い加法性白色ガウス雑音(AWGN)通信路でBPSKを送ると、BER $10^{-5}$ に必要なSNRは約9.6 dBです。ところが1本のアンテナでレイリーフェージングを受けると、同じBER $10^{-5}$ に必要な平均SNRは約44 dBに跳ね上がります。34 dB以上、すなわち2500倍以上の送信電力が要ります。
平均SNRは同じなのに、なぜこれほど違うのでしょうか。答えは「BERを支配しているのが平均的な状態ではなく、滅多に起きない深いフェードだから」です。瞬時SNRが $\gamma$ のときのBPSKのBERは $Q(\sqrt{2\gamma})$ で、$\gamma$ が大きい領域では $e^{-\gamma}$ 的に猛烈に小さくなります。つまりSNRが平均並みかそれ以上の時間帯は、BERへの寄与がほぼゼロです。一方、$\gamma$ が0付近まで落ち込むと $Q(\sqrt{2\gamma}) \to 1/2$、すなわち「ほぼコイン投げ」になります。平均を取ると、この稀な事象の寄与だけが生き残るのです。
この「稀な事象だけが生き残る」という事情は、被積分関数を描いてみると一目でわかります。

左のパネルでは、条件付きBER $Q(\sqrt{2\gamma})$(黒破線)が $\gamma \approx 3$ を過ぎるとほぼ床に張り付いてしまうことが読み取れます。つまり瞬時SNRが平均並みの領域は、誤りをほとんど生みません。右のパネルは実際に平均BERを作る被積分関数 $Q(\sqrt{2\gamma})p(\gamma)$ で、平均SNRを10 dBから20 dBに上げても山の位置は原点に張り付いたまま、高さだけが約1桁下がっています。BERを決めているのが分布の平均ではなく原点近傍の質量だ、という本記事の出発点がここに現れています。
レイリーフェージングでは瞬時SNRの確率密度が $p(\gamma) = (1/\bar{\gamma})e^{-\gamma/\bar{\gamma}}$ で、原点付近では $p(\gamma) \approx 1/\bar{\gamma}$ とほぼ一定です。したがって「$\gamma$ が $\epsilon$ 以下になる確率」は $\epsilon/\bar{\gamma}$ に比例します。平均SNR $\bar{\gamma}$ を10倍にしても、深いフェードの確率は10分の1にしかなりません。BERも10分の1にしかならない。これが「傾き1」の正体です。
では分岐を増やすとどうなるか。L本のアンテナが独立にフェージングを受けるなら、全部が同時に深いフェードに落ちる確率は $(\epsilon/\bar{\gamma})^L$ 程度になります。平均SNRを10倍にすれば、この確率は $10^{-L}$ 倍。BERも $10^{-L}$ 倍です。SNRを10 dB上げるたびにBERが $L$ 桁下がる — これが「傾き $L$」であり、ダイバーシチ利得の本質です。
この「同時に落ちる確率」を分岐数ごとに描くと、傾きの正体がそのまま見えます。

しきい値を $\gamma < 1$ と決めて「全 $L$ 分岐が同時にそれ以下になる確率」を平均SNRの関数として描いたものです。片対数プロット上で $L=1$ から $L=4$ まで、傾きがきれいに1倍・2倍・3倍・4倍になっているのが見て取れます。BERの傾きがまだ一度も登場していないのに $L$ 次の傾きが現れている点が重要で、これはこの確率がチャネル統計だけで決まり、受信機の合成方式に一切依存しないことを意味しています。
大事なのは、この議論に合成の仕方が一切出てこないことです。「全分岐が同時に落ちる確率」はアンテナ配置とチャネル統計だけで決まり、受信機がその後どう合成するかとは無関係です。だからこそ、SCでもEGCでもMRCでも傾きは同じ $L$ になります。合成法の巧拙は、傾きではなく係数に効いてくる。次はその係数の正体、つまりアレイ利得を式の上で切り出しましょう。
高SNR近似 $P_e \approx (G_a \cdot \mathrm{SNR})^{-G_d}$
前節の議論を式にまとめると、高SNR域でのBERは平均SNR $\bar{\gamma}$ のべき乗で書けるはずです。実際、フェージング通信路の広いクラスで次の近似が成り立つことが知られています(Wang and Giannakis, 2003)。
$$ \begin{equation} P_e(\bar{\gamma}) \approx \left(G_a \cdot \bar{\gamma}\right)^{-G_d}, \qquad \bar{\gamma} \to \infty \end{equation} $$
ここで $G_d$ をダイバーシチ利得(diversity gain / diversity order)、$G_a$ をアレイ利得(array gain。符号化系では coding gain とも呼ばれます)と言います。この式の2つのパラメータが何を意味するのか、両辺の対数を取ると一目でわかります。
$$ \log_{10} P_e = -G_d \left( \log_{10} G_a + \log_{10} \bar{\gamma} \right) $$
ここで横軸をdB表示 $\bar{\gamma}_{\mathrm{dB}} = 10\log_{10}\bar{\gamma}$ に取り替えると、$\log_{10}\bar{\gamma} = \bar{\gamma}_{\mathrm{dB}}/10$ ですから、
$$ \begin{equation} \log_{10} P_e = -\frac{G_d}{10}\,\bar{\gamma}_{\mathrm{dB}} – G_d \log_{10} G_a \end{equation} $$
これは「縦軸 $\log_{10} P_e$、横軸 $\bar{\gamma}_{\mathrm{dB}}$」の平面上の直線です。つまり通信の教科書でおなじみの片対数BERプロットは、高SNR域では直線に漸近します。そして、
- 傾き は $-G_d/10$(decade / dB)。すなわちSNRを10 dB上げるとBERが $G_d$ 桁下がる。$G_d$ が大きいほどグラフは急降下します。
- 切片 は $-G_d\log_{10}G_a$。$G_a$ を大きくすると直線は下に、言い換えれば同じ傾きのまま左に平行移動します。
実際のBER曲線がこの直線にどこから乗るのかを見ておきましょう。

太い実線が厳密BER、細い破線が式(1)の漸近直線 $A\bar{\gamma}^{-L}$ です。$L=3$ でも $L=1$ でも、10 dBを超えたあたりから両者がぴたりと重なっており、片対数プロット上で本当に直線になることが確認できます。緑の三角形は横10 dBに対して縦が3桁ぶんであることを示していて、これが $G_d = 3$ の視覚的な意味です。紫の矢印が指す切片 $-G_d\log_{10}G_a$ は直線の高さ、つまり横位置を決めており、傾きとは独立に動かせるパラメータであることがわかります。
平行移動量を確認しておきましょう。同じ $G_d$ を持つ2つの方式1, 2があり、アレイ利得が $G_{a,1}, G_{a,2}$ だとします。同じBER $P_e$ を達成するのに必要な平均SNRは $\bar{\gamma}_i = P_e^{-1/G_d}/G_{a,i}$ ですから、その比は
$$ \frac{\bar{\gamma}_2}{\bar{\gamma}_1} = \frac{G_{a,1}}{G_{a,2}} $$
となり、$P_e$ に依存しません。dB表示すれば
$$ \begin{equation} \Delta_{\mathrm{dB}} = 10\log_{10}\frac{G_{a,1}}{G_{a,2}} \end{equation} $$
で、これがBER曲線の横シフト量です。BERの目標値を変えても一定 — これが後で数値実験の検証ポイントになります。逆に、$G_d$ が違う2つの曲線は交差しうるので、「横に何dB」という比較自体が意味を失います。アレイ利得の比較は、ダイバーシチ次数が同じ方式同士でのみ意味を持つ。この一言が本記事のいちばん実務的な教訓です。
ここまでは $G_d$ と $G_a$ を「そういうパラメータがある」として導入しただけです。次は、合成後SNRの分布からこの2つを計算する方法を作ります。
出力SNRの原点近傍から $G_d$ と $G_a$ を取り出す
前節で「深いフェードの確率がBERを決める」と述べました。これを厳密化すると、驚くほど機械的な公式が得られます。鍵は、合成後の瞬時SNR $\gamma$ の確率密度関数 $p_\gamma(\gamma)$ の原点近傍の振る舞いだけを見ればよい、という点です。
この記事で後ほど扱う3方式の密度を、あらかじめ原点近傍だけ両対数で見比べておきます。

$L=3$、平均分岐SNR 20 dBでの出力SNR密度を両対数軸に描いたものです。SC・EGC・MRCの3本が、原点側(左側)で完全に平行な直線になっており、その傾きは黒点線の基準線と同じ $L-1 = 2$ です。つまり指数は3方式とも共通で、上下方向のオフセット、すなわち係数 $a$ だけが違います。この「指数が $G_d$ を、係数が $G_a$ を決める」という対応関係が、以下の計算全体の骨格になります。
合成後SNRの確率密度が、原点近傍で
$$ \begin{equation} p_\gamma(\gamma) = a\,\gamma^{t} + o(\gamma^{t}), \qquad \gamma \to 0^{+} \end{equation} $$
と振る舞うとします($a > 0$、$t > -1$)。BPSKの平均BERは条件付きBERを平均して
$$ P_e = \int_0^\infty Q\!\left(\sqrt{2\gamma}\right) p_\gamma(\gamma)\, d\gamma $$
です。$\bar{\gamma} \to \infty$ では $p_\gamma$ が原点付近に押しつぶされていくので、上の積分は原点近傍の情報だけで決まります。そこで $p_\gamma \approx a\gamma^t$ を代入した積分
$$ I_t = \int_0^\infty Q\!\left(\sqrt{2\gamma}\right)\gamma^{t}\, d\gamma $$
を計算しましょう。部分積分を使います。$u = Q(\sqrt{2\gamma})$、$dv = \gamma^t d\gamma$ と置くと $v = \gamma^{t+1}/(t+1)$ です。まず $u$ の微分を求めます。$Q(x) = \int_x^\infty \phi(u)du$($\phi$ は標準正規密度)なので $Q'(x) = -\phi(x)$、合成関数の微分から
$$ \frac{d}{d\gamma}Q\!\left(\sqrt{2\gamma}\right) = -\phi\!\left(\sqrt{2\gamma}\right)\cdot \frac{d}{d\gamma}\sqrt{2\gamma} = -\frac{1}{\sqrt{2\pi}}e^{-\gamma}\cdot\frac{1}{\sqrt{2\gamma}} $$
を得ます。$\phi(\sqrt{2\gamma}) = (1/\sqrt{2\pi})e^{-\gamma}$ を使った点に注意してください。境界項は $\gamma \to 0$ で $v \to 0$、$\gamma \to \infty$ で $Q$ がガウス的に消えるため、両端ともゼロです。よって
$$ I_t = \frac{1}{t+1}\int_0^\infty \gamma^{t+1}\cdot \frac{1}{\sqrt{2\pi}}\frac{e^{-\gamma}}{\sqrt{2\gamma}}\, d\gamma $$
となります。$\sqrt{2\pi}\sqrt{2\gamma} = 2\sqrt{\pi}\sqrt{\gamma}$ と整理して $\gamma$ のべきをまとめると、
$$ I_t = \frac{1}{2\sqrt{\pi}\,(t+1)}\int_0^\infty \gamma^{t+1/2}e^{-\gamma}\, d\gamma = \frac{\Gamma\!\left(t + \tfrac{3}{2}\right)}{2\sqrt{\pi}\,(t+1)} $$
最後はガンマ関数の定義 $\Gamma(z) = \int_0^\infty \gamma^{z-1}e^{-\gamma}d\gamma$ をそのまま使いました。以降で扱うのは $t = L – 1$($L$ は分岐数)の場合だけなので、$t = L-1$ を代入して次の形にしておきます。
$$ \begin{equation} P_e \approx a \cdot \frac{\Gamma\!\left(L + \tfrac{1}{2}\right)}{2L\sqrt{\pi}} \end{equation} $$
これが本記事の計算エンジンです。あとは方式ごとに「原点近傍の係数 $a$」を求めるだけで、BERの漸近式が出てきます。$a$ は必ず $\bar{\gamma}^{-L}$ に比例する形になるので、$P_e \propto \bar{\gamma}^{-L}$、すなわち $G_d = L$ が自動的に従い、比例定数から $G_a$ が読めます。
具体的には、$a = c/\bar{\gamma}^{L}$($c$ は $\bar{\gamma}$ に依らない定数)と書けるとき、
$$ P_e \approx \underbrace{\frac{c\,\Gamma(L+\tfrac{1}{2})}{2L\sqrt{\pi}}}_{\textstyle A}\ \bar{\gamma}^{-L} = \left(A^{-1/L}\bar{\gamma}\right)^{-L} $$
なので $G_d = L$、$G_a = A^{-1/L}$ です。方式Xと方式Yを比べるときの横シフトは、式(3)より
$$ \begin{equation} \Delta_{\mathrm{dB}}(X \to Y) = 10\log_{10}\left(\frac{A_Y}{A_X}\right)^{1/L} = \frac{10}{L}\log_{10}\frac{A_Y}{A_X} \end{equation} $$
で計算できます。係数比を $L$ 乗根で開くところがポイントで、ここを忘れると損失を過大評価します。
道具が揃いました。MRC・SC・EGCそれぞれの $a$ を順に求めていきましょう。
L分岐MRCのダイバーシチ利得とアレイ利得
出力SNRと最適性
まず信号モデルを固定します。$L$ 本の受信分岐の観測を
$$ y_i = h_i s + n_i, \qquad i = 1,\dots,L $$
とします。$s$ は送信シンボル(エネルギー $E_s$)、$h_i$ は複素チャネル係数で $\mathbb{E}[|h_i|^2] = 1$、$n_i \sim \mathcal{CN}(0, N_0)$ は互いに独立な雑音です。分岐 $i$ の瞬時SNRは $\gamma_i = |h_i|^2 E_s/N_0$、平均分岐SNRは $\bar{\gamma} = E_s/N_0$ です。レイリーフェージングでは $|h_i|^2$ が平均1の指数分布に従い、$\gamma_i$ は平均 $\bar{\gamma}$ の指数分布になります。
線形合成では重み $\bm{w} = (w_1,\dots,w_L)^T$ を使って $z = \sum_i w_i^{*} y_i$ を作ります。このときの出力SNRは
$$ \gamma_{\mathrm{out}}(\bm{w}) = \frac{\left|\sum_i w_i^{*}h_i\right|^2 E_s}{N_0 \sum_i |w_i|^2} $$
です。コーシー・シュワルツの不等式 $|\sum_i w_i^{*}h_i|^2 \le (\sum_i|w_i|^2)(\sum_i|h_i|^2)$ を分子に使えば、
$$ \gamma_{\mathrm{out}}(\bm{w}) \le \frac{E_s}{N_0}\sum_i |h_i|^2 = \sum_{i=1}^{L}\gamma_i $$
で、等号は $\bm{w} \propto \bm{h}$ のとき、つまり最大比合成(MRC)のときに限ります。ここで重要なのは、この不等式が「平均的に」ではなくチャネルの各実現ごとに成り立つことです。SCもEGCも線形合成の特別な場合(SCは $\bm{w}$ が単位ベクトル、EGCは $w_i = e^{j\angle h_i}$)ですから、あらゆる瞬間においてMRCの出力SNRが最大です。したがって条件付きBER $Q(\sqrt{2\gamma_{\mathrm{out}}})$ も各瞬間で最小、平均BERも最小になります。MRCのBER曲線は他の線形合成より必ず下にある — これはSNRが高いか低いかに関係のない、無条件の事実です。
平均出力SNRと確率密度
MRCの出力SNRは $\gamma_{\mathrm{mrc}} = \sum_{i=1}^L \gamma_i$ なので、期待値は線形性からすぐ出ます。
$$ \mathbb{E}[\gamma_{\mathrm{mrc}}] = \sum_{i=1}^{L}\mathbb{E}[\gamma_i] = L\bar{\gamma} $$
つまり平均出力SNRは分岐数に比例して $L$ 倍。これが「アンテナ $L$ 本で電力 $L$ 倍」という素朴な直感に対応する部分です。
確率密度は、平均 $\bar{\gamma}$ の指数分布 $L$ 個の和なのでアーラン分布(自由度 $2L$ のカイ二乗分布のスケール版)になります。
$$ \begin{equation} p_{\mathrm{mrc}}(\gamma) = \frac{\gamma^{L-1}e^{-\gamma/\bar{\gamma}}}{(L-1)!\,\bar{\gamma}^{L}} \end{equation} $$
この密度が分岐数とともにどう変わるかを見ておきましょう。

左は線形軸で、$L$ が増えるほど山が右へ移動し、同時に原点付近の確率質量が消えていく様子が見えます。$L=1$ では原点で密度が1と最大なのに、$L=4$ では原点近傍がほぼ平らに押し潰されています。右は同じ密度を両対数で見たもので、原点側の直線の傾きが $L-1$(0, 1, 2, 3)になっていることが確認できます。深いフェードの確率がこの指数で決まるので、この傾きの差がそのままBER曲線の傾きの差になります。
原点近傍では $e^{-\gamma/\bar{\gamma}} \to 1$ ですから、
$$ p_{\mathrm{mrc}}(\gamma) \approx \frac{1}{(L-1)!\,\bar{\gamma}^{L}}\gamma^{L-1} $$
となり、式(4)の形で $t = L-1$、$c_{\mathrm{mrc}} = 1/(L-1)!$ です。これを式(5)に入れると
$$ P_e^{\mathrm{mrc}} \approx \frac{\Gamma(L+\tfrac{1}{2})}{2L\sqrt{\pi}\,(L-1)!}\,\bar{\gamma}^{-L} = \frac{\Gamma(L+\tfrac{1}{2})}{2\sqrt{\pi}\,L!}\,\bar{\gamma}^{-L} $$
を得ます。$\Gamma(L+1/2) = \frac{(2L)!}{4^L L!}\sqrt{\pi}$ という関係を使って整理すると、教科書でよく見る次の形になります。
$$ \begin{equation} P_e^{\mathrm{mrc}} \approx \binom{2L-1}{L}\left(\frac{1}{4\bar{\gamma}}\right)^{L} \end{equation} $$
$L=1$ なら $1/(4\bar{\gamma})$、$L=2$ なら $3/(16\bar{\gamma}^2)$、$L=3$ なら $10/(64\bar{\gamma}^3) = 5/(32\bar{\gamma}^3)$ です。傾きは $G_d = L$。$L$ 分岐で確かに $L$ 次のダイバーシチが得られています。
ここでひとつ注意しておきたいことがあります。式(8)から $G_a = 4/\binom{2L-1}{L}^{1/L}$ と読めますが、この値は $L$ が増えるほど小さくなります($L=1$ で4、$L=2$ で $4/\sqrt{3}=2.31$)。だからといって「アンテナを増やすとアレイ利得が減る」わけではありません。$G_d$ が違う曲線同士で $G_a$ を比べても意味がないという、前節の警告そのものです。$G_a$ の比較は $L$ を固定して合成法だけを変えたときにのみ行いましょう。
MRCという最良の基準ができました。次は、実装がいちばん簡単な選択合成が、この基準からどれだけ離れるかを見ます。
選択合成(SC)— 傾きは同じ、係数だけ悪化する
なぜSCでも傾きが $L$ になるのか
選択合成は、$L$ 本の分岐のうち瞬時SNRが最大のものだけを選び、残りを捨てる方式です。RF系が1本で済むので実装コストが劇的に安く、初期の携帯基地局やダイバーシチ受信機で広く使われました。
エネルギーを $L-1$ 本ぶん捨てているのに、なぜダイバーシチ次数が $L$ のまま保たれるのでしょうか。直感的には、「深いフェード」がBERを決めるという前節の議論を思い出せば明らかです。SCの出力SNRが $\epsilon$ 以下になるのは、全分岐のSNRが同時に $\epsilon$ 以下のときだけです。その確率は独立性から $L$ 乗になります。つまり傾きを決める「同時フェード確率」の指数は、合成法ではなく分岐の統計だけで決まる。捨てた分岐のエネルギーは傾きには影響しないのです。
式で確認しましょう。出力SNR $\gamma_{\mathrm{sc}} = \max_i \gamma_i$ の累積分布は
$$ F_{\mathrm{sc}}(\gamma) = \Pr\left[\max_i \gamma_i \le \gamma\right] = \prod_{i=1}^{L}\Pr[\gamma_i \le \gamma] = \left(1 – e^{-\gamma/\bar{\gamma}}\right)^{L} $$
です。微分して確率密度を得ます。
$$ \begin{equation} p_{\mathrm{sc}}(\gamma) = \frac{L}{\bar{\gamma}}\left(1 – e^{-\gamma/\bar{\gamma}}\right)^{L-1}e^{-\gamma/\bar{\gamma}} \end{equation} $$
原点近傍を評価するために $1 – e^{-x} \approx x$($x \to 0$)を使うと、
$$ p_{\mathrm{sc}}(\gamma) \approx \frac{L}{\bar{\gamma}}\left(\frac{\gamma}{\bar{\gamma}}\right)^{L-1} = \frac{L}{\bar{\gamma}^{L}}\gamma^{L-1} $$
となり、確かに $\gamma^{L-1}$ の形です。$c_{\mathrm{sc}} = L$ なので、式(5)から
$$ \begin{equation} P_e^{\mathrm{sc}} \approx L \cdot \frac{\Gamma(L+\tfrac{1}{2})}{2L\sqrt{\pi}}\bar{\gamma}^{-L} = \frac{\Gamma(L+\tfrac{1}{2})}{2\sqrt{\pi}}\bar{\gamma}^{-L} \end{equation} $$
MRCの式と並べると、係数の比が実に綺麗な形になります。
$$ \begin{equation} \frac{A_{\mathrm{sc}}}{A_{\mathrm{mrc}}} = \frac{\Gamma(L+\tfrac{1}{2})/(2\sqrt{\pi})}{\Gamma(L+\tfrac{1}{2})/(2\sqrt{\pi}L!)} = L! \end{equation} $$
つまりSCの漸近BERはMRCのちょうど $L!$ 倍です。$L=2$ で2倍、$L=3$ で6倍、$L=4$ で24倍。式(6)に入れると横シフトは
$$ \Delta_{\mathrm{dB}} = \frac{10}{L}\log_{10}L! $$
で、$L=2$ なら1.51 dB、$L=3$ なら2.59 dB、$L=4$ なら3.45 dBの損失です。傾きは一切変わらず、曲線が右に平行移動するだけ — これがSCの代償の正確な姿です。
平均出力SNRに現れる調和数
もうひとつの角度から、SCの「効率の悪さ」を見ておきましょう。平均出力SNRです。非負確率変数の期待値公式 $\mathbb{E}[X] = \int_0^\infty (1 – F_X(x))dx$ を使うと、
$$ \mathbb{E}[\gamma_{\mathrm{sc}}] = \int_0^\infty \left[1 – \left(1 – e^{-\gamma/\bar{\gamma}}\right)^{L}\right]d\gamma $$
です。$u = e^{-\gamma/\bar{\gamma}}$ と見て被積分関数を二項展開します。$1 – (1-u)^L = -\sum_{k=1}^{L}\binom{L}{k}(-u)^k = \sum_{k=1}^{L}\binom{L}{k}(-1)^{k+1}u^k$ ですから、$u^k = e^{-k\gamma/\bar{\gamma}}$ を代入して項別に積分すると
$$ \mathbb{E}[\gamma_{\mathrm{sc}}] = \sum_{k=1}^{L}\binom{L}{k}(-1)^{k+1}\int_0^\infty e^{-k\gamma/\bar{\gamma}}d\gamma = \bar{\gamma}\sum_{k=1}^{L}\binom{L}{k}\frac{(-1)^{k+1}}{k} $$
となります。ここで組合せ論でおなじみの恒等式
$$ \sum_{k=1}^{L}\binom{L}{k}\frac{(-1)^{k+1}}{k} = \sum_{k=1}^{L}\frac{1}{k} = H_L $$
を使うと、次の結論に到達します。
$$ \begin{equation} \mathbb{E}[\gamma_{\mathrm{sc}}] = \bar{\gamma}\, H_L, \qquad H_L = 1 + \frac{1}{2} + \frac{1}{3} + \dots + \frac{1}{L} \end{equation} $$
$H_L$ は調和数です。MRCの $L\bar{\gamma}$ と比べると差は歴然で、$L=2$ で $1.5$ 対 $2$、$L=4$ で $2.083$ 対 $4$、$L=10$ で $2.929$ 対 $10$。$H_L \approx \ln L + 0.577$ ですから、SCの平均SNR利得は対数的にしか伸びません。アンテナを2倍にしても $H_L$ は $\ln 2 = 0.69$ しか増えず、しかも $H_L$ 自体が既に大きいので、比で見た改善はどんどん痩せます。実際 $L=4 \to 8$ で $2.083 \to 2.718$(1.15 dB)、$L=8 \to 16$ で $2.718 \to 3.381$(0.95 dB)、$L=50 \to 100$ では0.62 dBしか改善しません。MRCなら倍増は常にきっちり3.01 dBです。
3方式の平均出力SNRを並べて描くと、この「対数と線形」の差がはっきりします(EGCの式は次節で導きます)。

左のグラフでは、MRC($L$)とEGC($1+(L-1)\pi/4$)が直線的に伸びるのに対し、SCの調和数 $H_L$ だけが早々に寝てしまい、$L=10$ で10対2.93という大差がついています。右の棒グラフはその原因で、アンテナを1本足したときの平均出力SNRの増分を比べたものです。MRCは何本目でも常に $\bar{\gamma}$ ぶん増えるのに対し、SCは $L$ 本目で $\bar{\gamma}/L$ しか増えません。10本目のアンテナがSCでは0.1しか貢献しない、という「捨てることの代償」が定量的に見えます。
なぜ対数なのか、直感で押さえておきましょう。$L$ 個の指数分布の最大値は、順序統計の言葉で「$L$ 個中の1位」です。指数分布には無記憶性があるので、$k$ 位から $k-1$ 位への「上積み」は平均 $\bar{\gamma}/k$ になります。1位の値はこの上積みの総和 $\bar{\gamma}(1/L + 1/(L-1) + \dots + 1/1) = \bar{\gamma}H_L$。分岐が増えるほど「もう1本足したときの上積み」が $\bar{\gamma}/L$ と痩せていくので、伸びが鈍るわけです。一方MRCは全分岐のエネルギーをそのまま足すので、上積みは常に $\bar{\gamma}$ のまま。「捨てる」ことの代償が、この対数と線形の差に凝縮されています。
ここで気づいた読者もいるはずです。式(11)から出る損失($L=3$ で2.59 dB)と、平均SNR比 $10\log_{10}(L/H_L)$($L=3$ で2.14 dB)が一致していません。この食い違いは誤りではなく、「アレイ利得」という言葉に2つの流儀があることの現れです。この点は比較表の節で正面から扱います。その前に、SCとMRCの中間に位置するEGCを片付けましょう。
等利得合成(EGC)— 位相だけ合わせる中間解
出力SNRの定義
等利得合成は「振幅の重み付けはしないが、位相だけは揃えて足す」方式です。$w_i = e^{j\angle h_i}$ とすることに相当し、チャネルの振幅推定が要らないぶんMRCより実装が軽くなります。$\alpha_i = |h_i|$ と書くと、合成後の信号振幅は $\left(\sum_i \alpha_i\right)\sqrt{E_s}$、雑音は $L$ 本ぶん足されるので電力 $L N_0$ です。したがって
$$ \begin{equation} \gamma_{\mathrm{egc}} = \frac{\left(\sum_{i=1}^{L}\alpha_i\right)^2 E_s}{L N_0} = \frac{\bar{\gamma}}{L}\left(\sum_{i=1}^{L}\alpha_i\right)^{2} \end{equation} $$
となります。分母の $L$ が「振幅を揃えずに足したせいで雑音だけが素直に $L$ 倍になる」ペナルティです。
平均出力SNR
期待値を計算しましょう。まず和の2乗を展開します。
$$ \mathbb{E}\left[\left(\sum_i \alpha_i\right)^2\right] = \sum_i \mathbb{E}[\alpha_i^2] + \sum_{i \ne j}\mathbb{E}[\alpha_i]\mathbb{E}[\alpha_j] $$
独立性から交差項が期待値の積に分解できる点がポイントです。$\mathbb{E}[\alpha_i^2] = 1$(規約より)で、レイリー分布の1次モーメントは確率密度 $p(\alpha) = 2\alpha e^{-\alpha^2}$ から
$$ \mathbb{E}[\alpha] = \int_0^\infty 2\alpha^2 e^{-\alpha^2}d\alpha = 2 \cdot \frac{\sqrt{\pi}}{4} = \frac{\sqrt{\pi}}{2} \approx 0.8862 $$
です(ガウス積分の2次モーメント $\int_0^\infty \alpha^2 e^{-\alpha^2}d\alpha = \sqrt{\pi}/4$ を使いました)。交差項は $L(L-1)$ 個あるので
$$ \mathbb{E}\left[\left(\sum_i \alpha_i\right)^2\right] = L + L(L-1)\cdot\frac{\pi}{4} $$
これを式(13)に戻して $L$ で割ると、
$$ \begin{equation} \mathbb{E}[\gamma_{\mathrm{egc}}] = \bar{\gamma}\left[1 + (L-1)\frac{\pi}{4}\right] \end{equation} $$
を得ます。$\pi/4 = 0.785$ ですから、分岐を1本足すごとに平均SNRは $0.785\bar{\gamma}$ ずつ増える。MRCの $1.0\bar{\gamma}$ には及ばないものの、SCのように鈍化することはなく線形に伸びます。$L=2$ で1.785、$L=4$ で3.356。SCの1.5、2.083とは大違いです。「振幅の重みは最適でなくても、位相さえ揃えて全エネルギーを足せば、線形の伸びは失われない」— これがEGCが実務で好まれる理由です。
原点近傍の密度とアレイ利得
漸近BERを出すには $\gamma_{\mathrm{egc}}$ の原点近傍の密度が要ります。$S = \sum_i \alpha_i$ とおくと、$S$ は独立なレイリー変数 $L$ 個の和です。密度は畳み込みで、閉じた形は $L \ge 3$ で厄介ですが、原点近傍だけなら簡単に出ます。
各 $\alpha_i$ の密度は原点近傍で $p(\alpha) = 2\alpha e^{-\alpha^2} \approx 2\alpha$、つまり $\alpha$ の1次です。一般に、密度が原点で $f_i(x) \approx c_i x^{p_i}$ と振る舞う独立変数の和については、畳み込みの原点近傍が
$$ (f_1 * \cdots * f_L)(s) \approx \left(\prod_i c_i\right)\frac{\prod_i \Gamma(p_i+1)}{\Gamma\left(\sum_i (p_i+1)\right)}\, s^{\sum_i p_i + L – 1} $$
となります。$L=2$ で確かめてみましょう。$\int_0^s 2x \cdot 2(s-x)dx = 4(s\cdot s^2/2 – s^3/3) = \frac{2}{3}s^3$ で、公式の $2^2\Gamma(2)^2/\Gamma(4)\cdot s^3 = 4/6\cdot s^3$ と一致します。一般の $L$ には帰納法で示せます。
いま $c_i = 2$、$p_i = 1$ なので、
$$ f_S(s) \approx 2^{L}\frac{\Gamma(2)^{L}}{\Gamma(2L)}s^{2L-1} = \frac{2^{L}}{(2L-1)!}s^{2L-1} $$
です。これを $\gamma = \bar{\gamma}s^2/L$ で変数変換します。$s = \sqrt{L\gamma/\bar{\gamma}}$、$ds/d\gamma = \frac{1}{2}\sqrt{L/(\bar{\gamma}\gamma)}$ ですから、
$$ p_{\mathrm{egc}}(\gamma) = f_S(s)\frac{ds}{d\gamma} \approx \frac{2^{L}}{(2L-1)!}\left(\frac{L\gamma}{\bar{\gamma}}\right)^{L-\frac{1}{2}}\cdot\frac{1}{2}\sqrt{\frac{L}{\bar{\gamma}\gamma}} $$
$\gamma$ のべきを整理すると $\gamma^{L-1/2}\cdot\gamma^{-1/2} = \gamma^{L-1}$、$L$ のべきは $L^{L-1/2}\cdot L^{1/2} = L^{L}$、$\bar{\gamma}$ のべきは $\bar{\gamma}^{-(L-1/2)}\cdot\bar{\gamma}^{-1/2} = \bar{\gamma}^{-L}$ です。まとめて
$$ \begin{equation} p_{\mathrm{egc}}(\gamma) \approx \frac{2^{L-1}L^{L}}{(2L-1)!\,\bar{\gamma}^{L}}\gamma^{L-1} \end{equation} $$
ここでも指数は $L-1$。EGCも $G_d = L$ です。$c_{\mathrm{egc}} = 2^{L-1}L^L/(2L-1)!$ なので、MRCとの係数比は
$$ \begin{equation} \frac{A_{\mathrm{egc}}}{A_{\mathrm{mrc}}} = \frac{2^{L-1}L^{L}(L-1)!}{(2L-1)!} \end{equation} $$
です。$L=2$ で $2\cdot4\cdot1/6 = 4/3$、$L=3$ で $4\cdot27\cdot2/120 = 9/5 = 1.8$、$L=4$ で $8\cdot256\cdot6/5040 = 2.438$。式(6)で横シフトに直すと、$L=2$ で0.62 dB、$L=3$ で0.85 dB、$L=4$ で0.97 dBです。EGCはMRCの1 dB以内という有名な経験則が、ここで定量的に確認できました。しかもこの損失は $L$ が増えてもゆっくりしか広がりません。
なお「MRC $\ge$ EGC $\ge$ SC」という順序は、平均やBERのレベルでは成り立ちますが、チャネルの各実現ごとに成り立つとは限りません。EGCとSCの間には順序が付かないのです。例えば $L=2$ で $\alpha = (1, 0)$ なら、SCの出力SNRは $\bar{\gamma}$、EGCは $\bar{\gamma}(1+0)^2/2 = 0.5\bar{\gamma}$ でEGCの負けです。片方が完全に死んでいるとき、EGCは死んだ分岐の雑音まで律儀に足してしまうからです。それでも平均すればEGCが勝つ、というのが式(16)の主張です。
この「実現ごとには順序が付かない」という主張を、$L=2$ のチャネル実現3000本で散布図にしてみます。

横軸がSC、縦軸がEGCの出力SNRで、黒破線より上がEGCの勝ちです。実現の71.2%ではEGCが勝っていますが、残り28.8%(赤点)ではSCの方が上に来ています。境界線から下へ大きく離れた赤点ほど「片方の分岐だけが強く、もう片方が死んでいる」実現に対応します。実際 $\gamma_{\mathrm{egc}}/\gamma_{\mathrm{sc}} = (\alpha_1+\alpha_2)^2/(2\max(\alpha_1,\alpha_2)^2)$ は、片方が0のとき最小値0.5を取ります。そのときEGCは死んだ分岐の雑音まで足してしまうので負けるわけです。それでも平均を取れば実測でMRC 2.01 / EGC 1.79 / SC 1.51 となり、理論値2.000 / 1.785 / 1.500 とよく一致してEGCがSCを上回ります。
3方式の $G_d$ と $G_a$ が出揃いました。ここで2つの「アレイ利得」の流儀を整理しておきましょう。
2つのアレイ利得 — 平均SNR基準とBER漸近基準
これまでの計算で、各方式について2種類の「利得」が出てきました。整理します。
定義A(平均出力SNR基準): $G_a^{\mathrm{SNR}} = \mathbb{E}[\gamma_{\mathrm{out}}]/\bar{\gamma}$。合成器が平均的にSNRを何倍にするかを表します。Goldsmithなど多くの教科書がアレイ利得をこの意味で使います。直感的でわかりやすく、雑音指数やリンクバジェットの議論と整合します。
定義B(BER漸近基準): $P_e \approx (G_a\bar{\gamma})^{-G_d}$ の $G_a$。BER曲線の横位置そのものを表します。Wang & Giannakisの枠組みで、符号化系では coding gain と呼ばれます。
両者は一致しません。定義Aは分布の平均を見ており、定義Bは分布の原点近傍を見ているからです。前節までで見たとおり、BERを支配するのは平均ではなく深いフェードの領域なので、実際に測れる横シフトに対応するのは定義Bの方です。
$L$ 分岐レイリー、BPSKでの数値を並べると次のようになります(MRCを基準にした損失をdBで表示)。
| $L$ | $H_L$(SC平均利得) | EGC平均利得 $1+(L-1)\pi/4$ | 定義A損失 SC | 定義A損失 EGC | 定義B損失 SC | 定義B損失 EGC |
|---|---|---|---|---|---|---|
| 1 | 1.000 | 1.000 | 0.00 dB | 0.00 dB | 0.00 dB | 0.00 dB |
| 2 | 1.500 | 1.785 | 1.25 dB | 0.49 dB | 1.51 dB | 0.62 dB |
| 3 | 1.833 | 2.571 | 2.14 dB | 0.67 dB | 2.59 dB | 0.85 dB |
| 4 | 2.083 | 3.356 | 2.83 dB | 0.76 dB | 3.45 dB | 0.97 dB |
定義Aと定義Bの差は0.2〜0.6 dB程度で、傾向(SCの方がずっと損、EGCは1 dB以内)は完全に一致しています。ざっくり見積もるなら定義A、BER曲線と突き合わせるなら定義B、と使い分ければ実用上は困りません。ただし論文や規格書で「アレイ利得 $L$」「アレイ利得 $H_L$」という数字を見たときは、どちらの定義かを確認する癖をつけておくと安全です。
ここまで受信側の合成だけを見てきました。次は送信側にアンテナを増やしたとき、この2つの利得がどう振る舞うかを見ます。実は送信側では、話が受信側と対称にはなりません。
送信ダイバーシチ — 傾きは買えるがアレイ利得は買えない
受信アンテナを増やすのは「空から降ってくるエネルギーを余分に拾う」行為なので、ダイバーシチ利得とアレイ利得の両方が同時に手に入ります。ところが送信アンテナを増やす場合、話が変わります。総送信電力は法規や電力増幅器の制約で固定されているのが普通だからです。$N_t$ 本のアンテナに電力を分けて出すなら、1本あたりの電力は $E_s/N_t$。エネルギーの総量は増えていません。
2×1のアラモウティ符号を例に取りましょう。送信側がチャネルを知らない状態で2本のアンテナから直交する時空間符号を送ると、受信機での実効SNRは
$$ \gamma_{\mathrm{alamouti}} = \frac{\bar{\gamma}}{2}\left(|h_1|^2 + |h_2|^2\right) $$
になります。一方、1×2のMRCでは
$$ \gamma_{\mathrm{mrc}} = \bar{\gamma}\left(|h_1|^2 + |h_2|^2\right) $$
です。まったく同じ確率変数の、ちょうど半分。したがってダイバーシチ次数はどちらも2で同じ、しかしアレイ利得はアラモウティの方が正確に2分の1(3.01 dB)少ないという結論になります。実際、BER $10^{-5}$ に必要な平均SNRは1×2 MRCで21.34 dB、2×1アラモウティで24.35 dBです。

青の1×2 MRCと赤の2×1アラモウティは、見てのとおり完全に平行です。灰色の1×1(傾き1)とは明らかに傾きが違うので、アラモウティもきちんと2次のダイバーシチを獲得していることがわかります。一方で赤は青より一定量だけ右にあり、BER $10^{-5}$ で測った横シフトは3.01 dB。この値はどのBERの高さで測っても変わりません。傾き(信頼性の伸び)は買えたが、横位置(アレイ利得)は買えていない、という状況が1枚に収まっています。
この3 dBは「アラモウティ符号が下手だから」ではありません。送信側がチャネルを知らない以上、どの方向にエネルギーを集中すべきか判断できず、全方向に等分するしかない — その物理的必然です。逆に、送信側がチャネル情報(CSIT)を持てれば、$\bm{w} = \bm{h}^*/\|\bm{h}\|$ という最大比送信(MRT / 送信ビームフォーミング)が使え、実効SNRは $\bar{\gamma}\|\bm{h}\|^2$ に戻ります。CSITの有無がちょうど3 dB(一般に $10\log_{10}N_t$ dB)のアレイ利得に化けるわけです。
まとめると、次のような整理になります。
- ダイバーシチ利得(傾き): 送受のアンテナ数だけで決まる。$N_t \times N_r$ の独立レイリーなら最大 $N_t N_r$。CSITは不要。
- アレイ利得(横シフト): 受信側では $N_r$ 倍が自動的に手に入る。送信側は、CSITがあれば $N_t$ 倍、なければ1倍(ゼロdB)。
「送信ダイバーシチは傾きを買えるが、アレイ利得は買えない」。この一文を覚えておくと、STBCとビームフォーミングの使い分けや、5G NRのランク/プリコーダ選択の議論が見通しよくなります。
ここまでは「アンテナの自由度を全部、信頼性(傾き)に注ぎ込む」話でした。しかしMIMOでは、その自由度を伝送レートに回すこともできます。両者は同時には最大化できず、明確なトレードオフの関係にあります。
MIMOのダイバーシチ・多重化トレードオフ
$N_t$ 送信 $\times$ $N_r$ 受信のMIMOチャネルには、$\min(N_t, N_r)$ 本の独立な空間ストリームを立てられるだけの自由度があります。この自由度をどう使うか、選択肢は2つです。
- 全ストリームに同じ情報を載せ、$N_t N_r$ 次のダイバーシチで信頼性を稼ぐ(送信ダイバーシチ)
- 各ストリームに別々の情報を載せ、レートを $\min(N_t,N_r)$ 倍にする(空間多重)
Zheng と Tse(2003)は、この二択が実は連続的なトレードオフの両端であることを示しました。彼らの定式化はこうです。SNRの増加に伴ってレートも増やしていく「レートのスケーリング」を
$$ r = \lim_{\mathrm{SNR}\to\infty}\frac{R(\mathrm{SNR})}{\log_2 \mathrm{SNR}} $$
で定義し($r$ を多重化利得と呼びます)、そのときの誤り率のスケーリングを
$$ d = -\lim_{\mathrm{SNR}\to\infty}\frac{\log P_e(\mathrm{SNR})}{\log \mathrm{SNR}} $$
で定義します(これがダイバーシチ利得で、まさに本記事の $G_d$ です)。$r$ は「SNRを2倍(3 dB)にするたびにレートを何ビット増やせるか」、$d$ は「SNRを10倍にするたびにBERが何桁下がるか」を表しています。
準静的レイリーフェージングでブロック長 $T \ge N_t + N_r – 1$ のとき、達成可能な最良のトレードオフ $d^{*}(r)$ は、整数点
$$ \begin{equation} d^{*}(r) = (N_t – r)(N_r – r), \qquad r = 0, 1, \dots, \min(N_t, N_r) \end{equation} $$
を結ぶ折れ線になります。この式の読み方は非常に直感的です。$r$ 本のストリームを多重化に使ってしまうと、残る送信側の自由度は $N_t – r$、受信側の自由度は $N_r – r$。その積が、信頼性に回せる自由度というわけです。
具体例を見ましょう。$2\times 2$ MIMOなら $(r, d) = (0, 4), (1, 1), (2, 0)$ です。
- $r=0$(レートを増やさず全部信頼性に投入): $d=4$。フルダイバーシチです。
- $r=1$: $d=1$。1本ストリームを多重化に回すだけで、ダイバーシチは4から1へ急落します。
- $r=2$(フル多重化): $d=0$。BERはSNRを上げても定数に張り付き、傾きがゼロになります。

3つのアンテナ構成についてトレードオフ点を結んだ折れ線です。どの構成も右下がりで、多重化利得 $r$ を1つ増やすたびにダイバーシチ利得 $d$ が急激に落ちることが読み取れます。特に $2\times2$ の $(0,4) \to (1,1)$ の落ち込みが激しく、1本ストリームを多重化に回すだけでダイバーシチが4分の1になります。またアンテナ数を増やすと折れ線全体が外側に膨らみ、同じ $r$ でもより大きな $d$ が確保できることも見て取れます。
$4\times4$ なら $(0,16), (1,9), (2,4), (3,1), (4,0)$。$r$ を1増やすごとに $d$ が $16 \to 9 \to 4 \to 1 \to 0$ と平方数で落ちていきます。
ここで本記事の主題との関係を明示しておきます。DMTはダイバーシチ利得(傾き)しか語りません。式(17)にはアレイ利得が一切登場しません。$d$ の定義が $\log P_e / \log \mathrm{SNR}$ という極限になっている以上、$P_e$ に掛かる定数倍(つまり $G_a$)は極限で消えてしまうからです。DMTは「指数スケールでの粗い設計指針」であり、実際に何dBの送信電力で済むかまでは教えてくれません。
だからこそ実務では2段階の設計になります。まずDMTで「どのランク(多重化数)で運用するか、そのとき傾きはいくつか」を決める。次に、そのランクの中で符号化・合成・プリコーディングを詰めてアレイ利得を稼ぐ。傾きは自由度の割り振りで決まり、横位置は実装の作り込みで決まる — この2層構造が、MIMOシステム設計の骨格です。
理論が出揃ったので、いよいよ数値で確かめましょう。BER曲線を実際に描き、そこから傾きと横シフトを機械的に抜き出します。
Pythonでの実装 — 傾きと横シフトを数値で分離する
3方式のBERを計算する
まず基礎となる関数を用意します。SCとMRCは厳密な閉形式があるので、それをそのまま使います。EGCは $L \ge 3$ で閉形式が面倒なので、レイリー振幅の密度を数値畳み込みして $S = \sum\alpha_i$ の密度を求め、その上でBERを数値積分します。モンテカルロだと $10^{-12}$ のようなBERを推定できませんが、この方法なら任意の低BERまで滑らかに追えます。
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
from math import comb, factorial, gamma, pi, sqrt, log10
from scipy.special import erfc
# 日本語フォント設定
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
def qfunc(x):
"""Q関数"""
return 0.5 * erfc(np.asarray(x, dtype=float) / np.sqrt(2.0))
def ber_mrc(gbar, L):
"""L分岐MRCのBPSK厳密BER(レイリー)"""
mu = np.sqrt(gbar / (1.0 + gbar))
s = sum(comb(L - 1 + k, k) * ((1.0 + mu) / 2.0) ** k for k in range(L))
return ((1.0 - mu) / 2.0) ** L * s
def ber_sc(gbar, L):
"""L分岐選択合成の厳密BER(pdfを二項展開して項別積分)"""
tot = 0.0
for k in range(L):
ge = gbar / (k + 1) # k+1本ぶんの等価平均SNR
tot += comb(L - 1, k) * (-1) ** k * (L / (k + 1)) \
* 0.5 * (1 - np.sqrt(ge / (1 + ge)))
return tot
MRCの厳密式 $P_e = \left(\frac{1-\mu}{2}\right)^L\sum_{k=0}^{L-1}\binom{L-1+k}{k}\left(\frac{1+\mu}{2}\right)^k$($\mu = \sqrt{\bar\gamma/(1+\bar\gamma)}$)は、レイリーMRCの標準的な結果です。SCの方は式(9)の密度を二項展開して、$\int_0^\infty Q(\sqrt{2\gamma})\frac{1}{\bar\gamma_e}e^{-\gamma/\bar\gamma_e}d\gamma = \frac{1}{2}(1-\sqrt{\bar\gamma_e/(1+\bar\gamma_e)})$ という1分岐の結果を項ごとに当てはめています。符号交代の和なので $L$ が大きいと桁落ちしますが、$L \le 6$ 程度なら倍精度で十分です。
EGCの密度を畳み込みで作る
_egc_cache = {}
def _egc_pdf(L, smax=40.0, n=400001):
"""S = Σα_i の確率密度を数値畳み込みで求める(αはレイリー)"""
s = np.linspace(0.0, smax, n)
ds = s[1] - s[0]
f = 2.0 * s * np.exp(-s ** 2) # レイリー振幅の密度
F = f.copy()
for _ in range(L - 1):
F = np.convolve(F, f)[:n] * ds # 畳み込みを (L-1) 回
return s, F, ds
def ber_egc(gbar, L):
"""L分岐等利得合成のBER(数値積分)"""
if L not in _egc_cache:
_egc_cache[L] = _egc_pdf(L)
s, F, ds = _egc_cache[L]
gam = gbar * s ** 2 / L # 式(13)
return float(np.sum(qfunc(np.sqrt(2.0 * gam)) * F) * ds)
def asym_coef(L):
"""P_e ≈ A * gbar^{-L} の係数A(式(5)から)"""
K = gamma(L + 0.5) / (2 * L * sqrt(pi))
return {"MRC": K / factorial(L - 1),
"EGC": K * 2 ** (L - 1) * L ** L / factorial(2 * L - 1),
"SC": K * L}
A3 = asym_coef(3)
print("L=3 の漸近係数 A:", {k: round(v, 6) for k, v in A3.items()})
# -> {'MRC': 0.15625, 'EGC': 0.28125, 'SC': 0.9375}
出力の $A_{\mathrm{MRC}} = 0.15625 = 5/32$ は式(8)の $\binom{5}{3}/4^3 = 10/64$ と一致しており、導出が正しいことが確認できます。$A_{\mathrm{SC}}/A_{\mathrm{MRC}} = 0.9375/0.15625 = 6 = 3!$ で式(11)どおり、$A_{\mathrm{EGC}}/A_{\mathrm{MRC}} = 0.28125/0.15625 = 1.8 = 9/5$ で式(16)どおりです。3方式の漸近係数が、独立に導いた閉形式とぴたり合いました。
BER曲線を同一軸に描く
import numpy as np
import matplotlib.pyplot as plt
L = 3
snr_db = np.arange(0.0, 40.01, 0.25)
snr = 10 ** (snr_db / 10.0)
ber = {"MRC": np.array([ber_mrc(g, L) for g in snr]),
"EGC": np.array([ber_egc(g, L) for g in snr]),
"SC": np.array([ber_sc(g, L) for g in snr])}
ber_L1 = np.array([ber_mrc(g, 1) for g in snr]) # ダイバーシチ無し
ber_awgn = qfunc(np.sqrt(2 * snr)) # フェージング無し
A = asym_coef(L)
plt.figure(figsize=(8, 6))
plt.semilogy(snr_db, ber_awgn, "k:", lw=1.5, label="フェージング無し(AWGN)")
plt.semilogy(snr_db, ber_L1, "k--", lw=1.5, label="ダイバーシチ無し L=1(傾き1)")
for name, col in [("SC", "tab:red"), ("EGC", "tab:orange"), ("MRC", "tab:blue")]:
plt.semilogy(snr_db, ber[name], color=col, lw=2.2, label=f"{name} (L=3)")
plt.semilogy(snr_db, A[name] * snr ** (-L), color=col, ls="--", lw=1, alpha=0.6)
plt.ylim(1e-12, 1)
plt.xlabel("平均分岐SNR [dB]")
plt.ylabel("ビット誤り率 BER")
plt.title("3分岐ダイバーシチのBER曲線(破線は高SNR漸近式)")
plt.grid(True, which="both", alpha=0.3)
plt.legend(fontsize=9)
plt.tight_layout()
plt.show()

このグラフから3つのことが読み取れます。第一に、SC・EGC・MRCの3本は互いに平行です。傾きが同じ、すなわちダイバーシチ次数が3で共通していることが目で見て確認できます。一方、ダイバーシチ無し(L=1)の破線ははるかに緩い傾きで、この差は横シフトでは決して埋まりません。第二に、細い破線で重ねた漸近式 $A\bar{\gamma}^{-L}$ が、10 dBを超えたあたりから実線とほぼ重なります。式(5)の漸近解析が高SNR域で十分な精度を持つことの確認です。第三に、AWGNの点線は極めて急峻で、3分岐でもまだ追いつきません(BER $10^{-5}$ でAWGNが9.6 dB、MRC L=3が13.8 dB)。ダイバーシチはフェージングのペナルティを「削る」技術であって、消し去るわけではないとわかります。
傾き(ダイバーシチ利得)を数値で抜き出す
BER曲線の局所的な傾きを、対数-対数スケールの数値微分で求めます。定義そのものである $-d\log_{10}P_e/d\log_{10}\bar{\gamma}$ を計算するだけです。
import numpy as np
import matplotlib.pyplot as plt
plt.figure(figsize=(8, 5))
for name, col in [("SC", "tab:red"), ("EGC", "tab:orange"), ("MRC", "tab:blue")]:
slope = -np.gradient(np.log10(ber[name]), np.log10(snr))
plt.plot(snr_db, slope, color=col, lw=2, label=name)
vals = [float(np.interp(v, snr_db, slope)) for v in (5, 10, 20, 30)]
print(f"{name:4s} 局所傾き @5/10/20/30 dB = " +
", ".join(f"{v:.3f}" for v in vals))
plt.axhline(L, color="k", ls=":", label=f"理論値 $G_d$ = {L}")
plt.ylim(0, L + 0.5)
plt.xlabel("平均分岐SNR [dB]")
plt.ylabel("局所傾き $-d\\log_{10}P_e / d\\log_{10}\\bar{\\gamma}$")
plt.title("BER曲線の局所傾き=ダイバーシチ利得の収束")
plt.grid(alpha=0.3)
plt.legend()
plt.tight_layout()
plt.show()

3本の曲線はいずれも右へ行くほど理論値3(黒点線)へ漸近し、20 dBを超えるとほぼ区別がつかなくなります。低SNR側ではMRC(青)が最も上、SC(赤)が最も下という順序がついており、SCの傾きが立ち上がるのがいちばん遅いことが視覚的にわかります。実行すると、次の値が得られます。
SC 局所傾き @5/10/20/30 dB = 2.009, 2.570, 2.949, 2.995
EGC 局所傾き @5/10/20/30 dB = 2.253, 2.704, 2.967, 2.997
MRC 局所傾き @5/10/20/30 dB = 2.365, 2.761, 2.974, 2.997
3方式とも30 dBでは3.00に収束しており、$G_d = L = 3$ が確認できました。しかし低SNR域では様子が違います。5 dBではSCが2.01、MRCが2.37と、いずれも3に届いていません。ダイバーシチ利得は高SNRの漸近的な概念であり、実運用SNRでは「まだ傾きが立ちきっていない」状態がふつうにある、ということです。加えて、収束の速さにも差があります。SCがいちばん遅れて立ち上がる。捨てた分岐の情報が効いてくるのが遅い、と読めます。実験でダイバーシチ次数を推定するときは、十分高いSNRまで測らないと過小評価する危険があると覚えておきましょう。
横シフト(アレイ利得)を数値で抜き出す
同じBER目標を達成するのに必要なSNRの差を、BER目標を変えながら測ります。これが式(3)の $\Delta_{\mathrm{dB}}$ に対応します。
import numpy as np
import matplotlib.pyplot as plt
targets = 10.0 ** np.arange(-2, -10.01, -0.25) # BER目標を 1e-2 → 1e-10
req = {k: np.interp(-np.log10(targets), -np.log10(v), snr_db)
for k, v in ber.items()} # 各方式の所要SNR [dB]
plt.figure(figsize=(8, 5))
for name, col in [("SC", "tab:red"), ("EGC", "tab:orange")]:
shift = req[name] - req["MRC"]
plt.semilogx(targets, shift, color=col, lw=2, label=f"{name} − MRC(実測)")
theo = 10.0 / L * log10(asym_coef(L)[name] / asym_coef(L)["MRC"])
plt.axhline(theo, color=col, ls="--", lw=1.2,
label=f"{name} 漸近理論 {theo:.2f} dB")
print(f"{name}: 実測シフト @1e-3={np.interp(3, -np.log10(targets), shift):.3f} dB, "
f"@1e-7={np.interp(7, -np.log10(targets), shift):.3f} dB, 理論={theo:.3f} dB")
plt.gca().invert_xaxis()
plt.xlabel("BER目標値")
plt.ylabel("MRCに対する所要SNRの増分 [dB]")
plt.title("アレイ利得の差=BER曲線の横シフト(BER目標に依らず一定)")
plt.grid(alpha=0.3, which="both")
plt.legend(fontsize=9)
plt.tight_layout()
plt.show()

実測の2本(実線)が、BER目標を8桁動かしてもほとんど水平のまま、それぞれの漸近理論値(破線)に張り付いています。SCは約2.6 dB、EGCは約0.85 dBの一定オフセットです。実行結果は次のとおりです。
SC: 実測シフト @1e-3=2.524 dB, @1e-7=2.591 dB, 理論=2.594 dB
EGC: 実測シフト @1e-3=0.814 dB, @1e-7=0.849 dB, 理論=0.851 dB
このグラフの本質は「曲線が平坦になっている」ことです。BER目標を $10^{-2}$ から $10^{-10}$ まで8桁動かしても、SCの損失は2.45〜2.59 dB、EGCの損失は0.78〜0.85 dBの範囲にしか動きません($10^{-3}$ 以下に限れば、それぞれ2.52〜2.59 dB、0.81〜0.85 dBです)。式(3)で「横シフトは $P_e$ に依存しない」と示したとおりの振る舞いです。そして低BER側では、漸近理論値(SC 2.594 dB、EGC 0.851 dB)にきれいに収束しています。$\frac{10}{3}\log_{10}3! = 2.594$、$\frac{10}{3}\log_{10}1.8 = 0.851$ という手計算が、そのまま実測できる量として現れました。
もうひとつ、アレイ利得は「一定のdB」として現れるという点も重要です。ダイバーシチ利得のように「SNRを上げるほど効いてくる」性質ではなく、どのSNRでも同じ額だけ得(損)をします。だからこそ、リンクバジェットに「合成方式によるロス2.6 dB」のように定数として書き込めるのです。
ダイバーシチ次数を変えたときの比較
最後に、傾きそのものが変わるとどうなるかを確認します。
import numpy as np
import matplotlib.pyplot as plt
snr_db2 = np.arange(0.0, 50.01, 0.25)
snr2 = 10 ** (snr_db2 / 10.0)
plt.figure(figsize=(8, 6))
for Lx, col in [(1, "tab:gray"), (2, "tab:green"), (3, "tab:blue"), (4, "tab:purple")]:
b = np.array([ber_mrc(g, Lx) for g in snr2])
plt.semilogy(snr_db2, b, color=col, lw=2, label=f"MRC L={Lx}")
req = np.interp(5, -np.log10(b), snr_db2)
print(f"L={Lx}: BER=1e-5 に必要な平均分岐SNR = {req:.2f} dB")
plt.semilogy(snr_db2, qfunc(np.sqrt(2 * snr2)), "k:", lw=1.5, label="AWGN")
plt.axhline(1e-5, color="r", ls="--", lw=1, alpha=0.6)
plt.ylim(1e-8, 1)
plt.xlabel("平均分岐SNR [dB]")
plt.ylabel("ビット誤り率 BER")
plt.title("ダイバーシチ次数が変わると「傾き」が変わる")
plt.grid(True, which="both", alpha=0.3)
plt.legend()
plt.tight_layout()
plt.show()

4本の曲線は互いに平行ではなく、$L$ が増えるほど扇状に急峻になっています。赤破線の $10^{-5}$ との交点が右から左へ大きく詰まっていく様子から、最初の1本を足したときの改善が突出して大きいことが目で確認できます。$L=4$ の紫はAWGNの黒点線とほぼ同じ位置で $10^{-5}$ を切っており、4次のダイバーシチでフェージングのペナルティがほぼ相殺されていることも読み取れます。出力は次のようになります。
L=1: BER=1e-5 に必要な平均分岐SNR = 43.98 dB
L=2: BER=1e-5 に必要な平均分岐SNR = 21.34 dB
L=3: BER=1e-5 に必要な平均分岐SNR = 13.82 dB
L=4: BER=1e-5 に必要な平均分岐SNR = 9.96 dB
1本から2本にすると22.6 dB、2本から3本にすると7.5 dB、3本から4本にすると3.9 dBの改善です。最初の1本を足したときの効果が圧倒的に大きく、以降は急速に飽和します。これは傾きが $1 \to 2$ と2倍になるインパクトが、$3 \to 4$ の1.33倍より遥かに大きいためです。「ダイバーシチは2本目がいちばん美味しい」という現場の経験則が、この数字に表れています。またL=4で9.96 dB、AWGNの9.59 dBとほぼ並びます。4次のダイバーシチがあれば、BER $10^{-5}$ という条件下ではフェージングの影響がほぼ消える、と読み取れます。
なお、この図でL=1とL=4を比べて「34 dBのアレイ利得がある」と言ってはいけません。傾きが違うので、横シフトの値はどのBERで測るかによって変わってしまいます。実際、BER $10^{-3}$ で測ればL=1が23.97 dB、L=4が4.03 dBで差は約20 dBに縮みます($10^{-5}$ では34 dB)。傾きが違う曲線の比較は、必ず「どのBERで」を明示する必要があります。
まとめ
本記事では、フェージング通信路における「利得」を2つに分解して理解する方法を解説しました。
- $P_e \approx (G_a\bar{\gamma})^{-G_d}$ が出発点: 片対数BERプロット上で、$G_d$ は傾き(10 dBあたり $G_d$ 桁)、$G_a$ は横シフトに対応します。この2つは独立な指標で、$G_d$ が違う曲線同士でアレイ利得を比較しても意味がありません
- $G_d$ は分布の原点近傍の指数、$G_a$ は係数: 合成後SNRの密度が $p(\gamma)\approx a\gamma^{L-1}$ なら $G_d = L$、$G_a$ は $a$ から決まります。「全分岐が同時に深いフェードに落ちる確率」が指数を決めるので、合成法は $G_d$ に影響しません
- SC・EGC・MRCは同じ $G_d = L$、違うのは $G_a$ だけ: 平均出力SNRで見るとMRCは $L\bar{\gamma}$、EGCは $[1+(L-1)\pi/4]\bar{\gamma}$、SCは調和数 $H_L\bar{\gamma}$。SCだけが $\ln L$ 的にしか伸びず、これがSCの損失の正体です
- BER漸近で見たSCの損失は $\frac{10}{L}\log_{10}L!$ dB: $L=3$ で2.59 dB。EGCの損失は1 dB以内に収まり、実測でも0.85 dBと一致しました。位相だけ揃えれば線形の伸びは失われない、という設計指針が得られます
- 送信ダイバーシチは傾きを買えるがアレイ利得は買えない: 総電力一定の制約から、CSITなしの2×1アラモウティは1×2 MRCに対して正確に3 dB損をします。$G_d$ は同じ2です
- MIMOのDMT $d^{*}(r) = (N_t-r)(N_r-r)$ は傾きだけの理論: 多重化利得 $r$ に自由度を割くほど傾きが落ちます。ただしDMTにアレイ利得は現れないため、実際の所要電力は別途詰める必要があります
「傾きは自由度の割り振りで決まり、横位置は実装の作り込みで決まる」。この2層の視点を持つと、ダイバーシチ方式の選定、MIMOのランク選択、リンクバジェットへのマージン計上が、それぞれ別の議論として整理できます。
次のステップとして、以下の記事も参考にしてください。
- 受信ダイバーシティの合成方式 — 選択合成・等利得合成・最大比合成の理論と導出 — 各合成方式の実装レベルの詳細
- 最大比合成(MRC)とは?ダイバーシチ利得の導出と実装 — 本記事で基準にしたMRCの最適性
- アラモウティ符号(空間時間ブロック符号)の導出と実装 — 送信ダイバーシチで3 dB損する仕組みを符号の側から
- MIMO空間多重と容量—固有モード伝送を理解して実装する — DMTのもう一方の端、多重化利得の理論
- 中上(Nakagami-m)フェージング分布の理論と導出と実装 — レイリー以外の分布でダイバーシチ次数がどう変わるか
- マルチパスフェージングとダイバーシティ完全ガイド — 対策アンテナ・OFDM・MIMOの理論 — フェージング対策技術の全体像