スマートフォンで通話していて、ほんの少し体を動かしただけで急に音が途切れたり、画面の電波マークが揺れたりした経験はないでしょうか。送信機も受信機も止まっているのに受信電力が刻々と変わる——この厄介な現象がフェージング(fading)です。電波は壁や地面、建物に反射して何本もの経路をたどって受信機に届きます。それぞれの経路は長さが違うので位相がずれ、足し合わさったときに強め合ったり打ち消し合ったりします。受信機が波長の数分の一だけ動くだけで、この干渉の結果ががらりと変わるのです。
無線システムを設計するエンジニアにとって、この受信電力のばらつきを確率分布として正しく表現できるかどうかは死活問題です。「平均的にこのくらいの電力が届く」だけでは足りません。「どのくらいの頻度で電力が落ち込み、通信が途切れるのか」を見積もらなければ、必要な送信電力もアンテナ本数も決められないからです。この受信包絡線の統計を記述するモデルとして、もっとも柔軟で実用的なのが中上-m分布(Nakagami-m distribution)です。
中上-m分布を理解すると、次のような場面で役立ちます。
- 携帯電話・無線LANのリンク設計: 市街地や屋内のマルチパス環境で、所要のアウテージ確率(通信途絶確率)を満たす送信電力やフェードマージンを見積もれます。レイリー分布だけでは表現できない「軽いフェージング」から「深いフェージング」までを1つのパラメータで連続的に扱えます。
- ダイバーシティ受信・MIMOの性能評価: 複数アンテナで受信した信号を合成すると等価的にフェージングが軽くなりますが、この効果は中上-m分布の $m$ の増大として自然に表現できます。ダイバーシティ次数とBER勾配の関係が見通しよく理解できます。
本記事の内容
- 中上-m分布の直感的な意味と、レイリー・ライスとの関係
- 二乗包絡線(瞬時電力)のガンマ分布から包絡線PDFを省略なく導出
- $m=1$ でレイリー、$m\to\infty$ で無フェージングに帰着することの証明
- $m$ ファクタとフェージング深さ(電力の変動の大きさ)の関係
- 中上-mフェージング下でのBPSK平均BERの閉形式と数値積分
- ダイバーシティ次数 $m$ が大きいほどBER勾配が急になることの可視化
前提知識
この記事を読む前に、以下の記事を読んでおくと理解が深まります。
- ライスフェージングチャネルの理論 — 見通し成分を含むフェージングの基礎。中上-mと近い関係にあります
- ベータ分布の理論と性質 — ガンマ関数やベータ関数など、本記事で使う特殊関数に親しんでおくと役立ちます
- ビット誤り率(BER)とは — AWGNでのBPSK誤り率と、SNRとの関係
中上-m分布とは — フェージングの強さを1つのつまみで回す
まず直感から入りましょう。受信機に届く電波は、たくさんの反射波(散乱波)の重ね合わせです。これらの波の振幅と位相がてんでバラバラだと仮定すると、受信信号の同相成分(I成分)と直交成分(Q成分)はそれぞれ平均0のガウス分布に従い、その合成包絡線 $r = \sqrt{I^2 + Q^2}$ はレイリー分布になります。これが「見通し(直接波)がなく、散乱波だけが届く」典型的な市街地のモデルです。
しかし現実のフェージングは、レイリーよりも軽いこともあれば、もっと複雑なこともあります。たとえば、いくつかの強い反射波が支配的なときや、地形の影響で散乱の様子が偏るとき、受信包絡線の分布はレイリーから外れます。中上稔(Minoru Nakagami)は1940〜60年代に、短波の長距離伝搬の膨大な実測データを統計的に当てはめる中で、こうした多様なフェージングをたった1つの形状パラメータ $m$ で連続的に表現できる分布を見出しました。それが中上-m分布です。
イメージとしては、$m$ は「フェージングの厳しさを調整するつまみ」です。
- $m = 1$ にすると、ちょうどレイリー分布になります(もっとも一般的な深いフェージング)。
- $m < 1$ にすると、レイリーよりさらに深いフェージング(電力の落ち込みが激しい)を表します。理論上 $m \ge 1/2$ まで取れます。
- $m$ を大きくしていくと、フェージングはどんどん軽くなり、$m \to \infty$ では受信電力が一定値に張りつく「フェージングなし」の状態に近づきます。
つまり中上-m分布は、レイリー分布を特別な場合($m=1$)として含み、その両側へ自由に変形できる「フェージングの一般化モデル」なのです。後で見るように、見通し成分を持つライス分布とも近似的に対応づけられます(ライスの $K$ ファクタと $m$ の間には変換式があります)。この柔軟さと数式の扱いやすさから、中上-m分布は無線通信の性能評価でもっともよく使われる分布の一つになっています。

この図は、送信機から出た電波が多数の反射経路をたどって受信機に届く様子を示しています。経路ごとに長さ(位相)が違うため、合成された包絡線は強め合ったり打ち消し合ったりして時々刻々と変動します。中上-m分布は、この変動の激しさを $m$ という1つのつまみで表し、$m$ が小さいほど深い(激しい)フェージング、大きいほど浅いフェージングに対応します。
ここで一つの疑問が湧きます。「電波の重ね合わせ」というガウス的な物理から出発したのに、なぜ $m$ という連続パラメータが現れる余地があるのでしょうか。その答えは、中上-m分布が瞬時電力(包絡線の二乗)がガンマ分布に従うという仮定から出てくることにあります。次の節で、この出発点から包絡線のPDFを丁寧に導いていきましょう。
中上-m分布の数学的定義
中上-m分布の確率密度関数(PDF)は、受信包絡線 $r \ge 0$ について次のように与えられます。
$$ \begin{equation} f_R(r) = \frac{2 m^m}{\Gamma(m)\, \Omega^m}\, r^{2m-1} \exp\!\left(-\frac{m}{\Omega} r^2\right), \qquad r \ge 0 \end{equation} $$
ここで登場する記号の意味は次の通りです。
- $r$: 受信信号の包絡線(振幅)。瞬時の受信電圧の大きさだと思ってください。
- $\Omega = \mathbb{E}[r^2]$: 包絡線の二乗の期待値、すなわち平均受信電力です。フェージングの「全体の強さ」を決めるスケールパラメータです。
- $m$: 形状パラメータ(mファクタ)。フェージングの厳しさを表し、$m \ge 1/2$ の範囲で定義されます。
- $\Gamma(m) = \int_0^\infty t^{m-1} e^{-t}\, dt$: ガンマ関数。$m$ が正整数なら $\Gamma(m) = (m-1)!$ です。
この式の形を眺めると、「べき乗 $r^{2m-1}$」と「ガウス的な減衰 $\exp(-\tfrac{m}{\Omega}r^2)$」の積になっています。$r$ が小さいときはべき乗項が立ち上がりを抑え、$r$ が大きいときは指数項が裾を押さえ込みます。$m$ が大きいほど指数の減衰が速くなり、ピークが平均値 $\sqrt{\Omega}$ 付近に鋭く集中します。逆に $m$ が小さいと裾が広がり、$r$ が0に近い「深い落ち込み」の確率が増えます。これがまさに「$m$ がフェージングの深さを調整するつまみ」である数式上の理由です。
なぜこの形なのか、$m$ という連続パラメータがどこから来るのかを理解するには、包絡線そのものではなく、瞬時電力 $\gamma \propto r^2$ の分布から出発するのが自然です。次の節で、瞬時電力がガンマ分布に従うという仮定から、上の包絡線PDFを変数変換で導きます。
二乗包絡線のガンマ分布からの導出
出発点 — 瞬時電力をガンマ分布で表す
中上-m分布の本質は、瞬時電力(包絡線の二乗)$P = r^2$ がガンマ分布に従うという点にあります。なぜガンマ分布なのか、まず直感を述べます。レイリーフェージングのとき、受信電力 $r^2$ は指数分布に従います。指数分布は形状パラメータ1のガンマ分布の特別な場合です。ここで「複数の独立な散乱クラスタからの電力の和」を考えると、独立な指数分布の和はガンマ分布になります。$m$ 個の同じ強さのクラスタが足し合わさると、電力は形状パラメータ $m$ のガンマ分布になる——これが $m$ が「等価的なクラスタ数」「ダイバーシティ次数」として解釈できる理由です。
そこで、瞬時電力 $P = r^2$ が、形状パラメータ $m$、平均 $\Omega$ のガンマ分布に従うとします。ガンマ分布のPDFは、平均が $\Omega$ になるようにスケール $\theta = \Omega/m$ を取ると、
$$ \begin{equation} f_P(P) = \frac{1}{\Gamma(m)\,\theta^m}\, P^{m-1} e^{-P/\theta}, \qquad \theta = \frac{\Omega}{m}, \quad P \ge 0 \end{equation} $$
と書けます。このとき平均は $\mathbb{E}[P] = m\theta = \Omega$ となり、確かに平均電力 $\Omega$ に一致します。$\theta = \Omega/m$ を代入して整理すると、電力のガンマ分布は
$$ \begin{equation} f_P(P) = \frac{m^m}{\Gamma(m)\,\Omega^m}\, P^{m-1} \exp\!\left(-\frac{m}{\Omega}P\right) \end{equation} $$
となります。ここまでで「電力はガンマ分布」というモデルが定まりました。次に、私たちが本当に知りたいのは電力ではなく包絡線 $r$ の分布です。$P = r^2$ という変数変換でPDFを移し替えましょう。
変数変換 — 電力から包絡線へ
確率変数の変換則を使います。$P = r^2$($r \ge 0$ で単調増加)なので、PDFの変換は
$$ \begin{equation} f_R(r) = f_P(P)\left|\frac{dP}{dr}\right| \end{equation} $$
で与えられます。ここで $P = r^2$ より、微分は
$$ \frac{dP}{dr} = 2r $$
です。この $\dfrac{dP}{dr} = 2r$ と $P = r^2$ を、先ほど求めた電力のガンマ分布 $f_P(P)$ に代入していきます。まず $f_P(P)$ の $P$ をすべて $r^2$ に置き換えると、
$$ \begin{equation} f_P(r^2) = \frac{m^m}{\Gamma(m)\,\Omega^m}\, (r^2)^{m-1} \exp\!\left(-\frac{m}{\Omega}r^2\right) \end{equation} $$
となります。$(r^2)^{m-1} = r^{2m-2}$ と整理できます。これにヤコビアン $\left|\dfrac{dP}{dr}\right| = 2r$ を掛けると、
$$ \begin{align} f_R(r) &= \frac{m^m}{\Gamma(m)\,\Omega^m}\, r^{2m-2} \exp\!\left(-\frac{m}{\Omega}r^2\right) \cdot 2r \\[4pt] &= \frac{2 m^m}{\Gamma(m)\,\Omega^m}\, r^{2m-2+1} \exp\!\left(-\frac{m}{\Omega}r^2\right) \end{align} $$
となります。指数 $r$ のべきを足し合わせて $2m-2+1 = 2m-1$ とまとめると、
$$ \begin{equation} f_R(r) = \frac{2 m^m}{\Gamma(m)\,\Omega^m}\, r^{2m-1} \exp\!\left(-\frac{m}{\Omega}r^2\right) \end{equation} $$
が得られます。これは冒頭で示した中上-m分布のPDFそのものです。出発点が「電力のガンマ分布」だったことを思い出すと、中上-m分布とは包絡線を二乗するとガンマ分布になる分布だと言い換えられます。この事実は、後でモーメントを計算するときにも、ダイバーシティの効果を考えるときにも繰り返し効いてきます。
正規化の確認
念のため、このPDFが全区間で積分して1になることを確かめましょう。積分
$$ \int_0^\infty f_R(r)\, dr = \frac{2 m^m}{\Gamma(m)\,\Omega^m} \int_0^\infty r^{2m-1} \exp\!\left(-\frac{m}{\Omega}r^2\right) dr $$
を計算します。$t = \dfrac{m}{\Omega} r^2$ と置換すると、$dt = \dfrac{2m}{\Omega} r\, dr$ すなわち $r\, dr = \dfrac{\Omega}{2m} dt$ です。また $r^{2m-1}\,dr = r^{2m-2}\cdot r\,dr = (r^2)^{m-1} \cdot r\,dr$ であり、$r^2 = \dfrac{\Omega}{m} t$ なので $(r^2)^{m-1} = \left(\dfrac{\Omega}{m}\right)^{m-1} t^{m-1}$ となります。これらを代入すると、
$$ \begin{align} \int_0^\infty r^{2m-1} e^{-\frac{m}{\Omega}r^2} dr &= \int_0^\infty \left(\frac{\Omega}{m}\right)^{m-1} t^{m-1} e^{-t} \cdot \frac{\Omega}{2m}\, dt \\[4pt] &= \frac{1}{2}\left(\frac{\Omega}{m}\right)^{m} \int_0^\infty t^{m-1} e^{-t}\, dt \\[4pt] &= \frac{1}{2}\left(\frac{\Omega}{m}\right)^{m} \Gamma(m) \end{align} $$
となります。最後の行ではガンマ関数の定義 $\Gamma(m) = \int_0^\infty t^{m-1}e^{-t}dt$ を使いました。これを元の式に戻すと、
$$ \frac{2 m^m}{\Gamma(m)\,\Omega^m} \cdot \frac{1}{2}\left(\frac{\Omega}{m}\right)^{m} \Gamma(m) = \frac{2 m^m}{\Gamma(m)\,\Omega^m} \cdot \frac{1}{2} \cdot \frac{\Omega^m}{m^m} \Gamma(m) = 1 $$
と、きれいに1になります。確かに正しい確率密度関数です。
導出が済んだので、次にこの分布の「形」を特徴づけるモーメント(平均や分散)を求め、$m$ がフェージングの深さをどう支配するのかを定量的に見ていきましょう。
モーメントとフェージング深さ — mファクタの意味
任意次モーメント
中上-m分布の $k$ 次モーメント $\mathbb{E}[r^k]$ を計算しておくと、平均・分散・フェージングの深さがすべて見通せます。定義から、
$$ \mathbb{E}[r^k] = \int_0^\infty r^k\, f_R(r)\, dr = \frac{2 m^m}{\Gamma(m)\,\Omega^m} \int_0^\infty r^{k+2m-1} e^{-\frac{m}{\Omega}r^2} dr $$
です。正規化の確認とまったく同じ置換 $t = \dfrac{m}{\Omega}r^2$ を行うと、$r^{k+2m-1}\,dr$ の部分が $\dfrac{1}{2}\left(\dfrac{\Omega}{m}\right)^{(k+2m)/2} t^{(k+2m)/2 – 1} e^{-t}$ の形に移り、積分はガンマ関数 $\Gamma\!\left(m + \tfrac{k}{2}\right)$ になります。整理すると、
$$ \begin{equation} \mathbb{E}[r^k] = \frac{\Gamma\!\left(m + \frac{k}{2}\right)}{\Gamma(m)} \left(\frac{\Omega}{m}\right)^{k/2} \end{equation} $$
という美しい閉形式が得られます。さっそく $k=2$ を代入してみましょう。$\Gamma(m+1) = m\,\Gamma(m)$ を使うと、
$$ \mathbb{E}[r^2] = \frac{\Gamma(m+1)}{\Gamma(m)} \cdot \frac{\Omega}{m} = \frac{m\,\Gamma(m)}{\Gamma(m)} \cdot \frac{\Omega}{m} = \Omega $$
となり、確かに $\Omega$ が平均電力であることが再確認できます。スケールパラメータの意味が数式の上でも一貫しています。
フェージング深さと m の関係
「フェージングの深さ」を定量化する自然な量は、瞬時電力 $P=r^2$ の変動の大きさです。電力の平均は $\mathbb{E}[P]=\Omega$、分散は電力がガンマ分布(形状 $m$、スケール $\Omega/m$)であることから
$$ \mathrm{Var}[P] = m \theta^2 = m \left(\frac{\Omega}{m}\right)^2 = \frac{\Omega^2}{m} $$
です。電力の変動係数(相対的なばらつき)の二乗を取ると、
$$ \begin{equation} \frac{\mathrm{Var}[P]}{(\mathbb{E}[P])^2} = \frac{\Omega^2/m}{\Omega^2} = \frac{1}{m} \end{equation} $$
という極めてシンプルな関係になります。これが $m$ ファクタの物理的な意味を端的に表しています。$m$ がフェージングの逆数的な深さを測っているのです。
- $m$ が小さい($1/2$ に近い)ほど $1/m$ は大きく、電力のばらつきが大きい=深いフェージング。
- $m$ が大きいほど $1/m$ は小さく、電力はほぼ一定=浅いフェージング。
- $m \to \infty$ で $1/m \to 0$、つまり変動が消えてフェージングなし。
この「電力の変動係数の二乗がちょうど $1/m$」という関係は、$m$ をデータから推定するときにも使えます。実測の電力サンプルから $\hat m = (\mathbb{E}[P])^2 / \mathrm{Var}[P]$ という積率推定量(モーメント法)が得られるのです。
$m$ がフェージングの深さを支配することがわかりました。では、特に重要な2つの極限——$m=1$(レイリー)と $m\to\infty$(無フェージング)——で分布が具体的にどうなるのかを、次の節で確かめましょう。
特別な場合 — レイリーと無フェージングへの帰着
m = 1 でレイリー分布になる
$m=1$ を中上-m分布のPDFに代入します。$\Gamma(1) = 1$ なので、
$$ f_R(r) = \frac{2 \cdot 1^1}{\Gamma(1)\,\Omega^1}\, r^{2\cdot 1 – 1} \exp\!\left(-\frac{1}{\Omega}r^2\right) = \frac{2r}{\Omega} \exp\!\left(-\frac{r^2}{\Omega}\right) $$
となります。一方、レイリー分布のPDFは尺度パラメータ $\sigma$ を使って
$$ f_R^{\text{Rayleigh}}(r) = \frac{r}{\sigma^2} \exp\!\left(-\frac{r^2}{2\sigma^2}\right) $$
と書けます。レイリー分布では $\mathbb{E}[r^2] = 2\sigma^2$ なので、平均電力を $\Omega = 2\sigma^2$ とすれば $\sigma^2 = \Omega/2$ です。これを代入すると、
$$ f_R^{\text{Rayleigh}}(r) = \frac{r}{\Omega/2} \exp\!\left(-\frac{r^2}{2\cdot \Omega/2}\right) = \frac{2r}{\Omega} \exp\!\left(-\frac{r^2}{\Omega}\right) $$
となり、$m=1$ の中上-m分布と完全に一致します。中上-m分布がレイリー分布を特別な場合として含むことが、数式の上で確認できました。これは「散乱波だけの典型的なマルチパス環境」が $m=1$ に対応するという直感とも整合します。
m → ∞ で無フェージングに近づく
次に $m$ を大きくした極限を考えます。前節で見たように、電力の変動係数の二乗は $1/m$ でした。$m\to\infty$ で $1/m\to 0$ なので、電力 $r^2$ は分散が消えて平均値 $\Omega$ の一点に集中します。すなわち包絡線 $r$ は $\sqrt{\Omega}$ に張りつき、フェージングが消えた定常な受信(AWGNのみ)の状態になります。
これを分布の形で見るために、瞬時SNR $\gamma = r^2 \cdot (E_s/N_0)/\Omega$ を考えると、$\gamma$ はガンマ分布に従います。ガンマ分布(形状 $m$)は $m\to\infty$ で平均まわりに集中し、中心極限定理的にデルタ関数 $\delta(\gamma – \bar\gamma)$ に近づきます。つまり瞬時SNRがばらつかず、常に平均SNR $\bar\gamma$ になる——これがフェージングなしのAWGNチャネルにほかなりません。
このように、中上-m分布は $m$ という1本のつまみで「深いフェージング($m=1/2$)」「レイリー($m=1$)」「無フェージング($m\to\infty$)」を連続的につなぐ、極めて表現力の高いモデルなのです。なお、見通し成分を持つライス分布とも $m = \dfrac{(K+1)^2}{2K+1}$($K$ はライスファクタ)という近似対応があり、$K=0$(見通しなし)で $m=1$、$K\to\infty$ で $m\to\infty$ と、両端でレイリー・無フェージングに揃います。詳しくはライスフェージングチャネルの理論を参照してください。
分布の「立ち上がりの速さ」を見るには、PDFを積分した累積分布関数(CDF)$F_R(r_{th}) = P(R \le r_{th})$ が便利です。包絡線の二乗がガンマ分布なので、CDFは下側不完全ガンマ関数 $F_R(r_{th}) = \gamma_{\text{inc}}\!\left(m,\, \tfrac{m}{\Omega}r_{th}^2\right)$(正則化)で書けます。

このCDFの図から、$m$ が小さいほど曲線が左に寄り、小さなしきい値で早く立ち上がる=「包絡線が小さい値を取る確率が高い」ことが読み取れます。逆に $m$ が大きいほど曲線は $\sqrt{\Omega}=1$ 付近で急峻に立ち上がり、受信電力が平均値の近くに集中する様子がわかります。後で扱うアウテージ確率(通信途絶確率)は、まさにこのCDFのしきい値での値そのものです。
ここまでで分布の性質は出そろいました。いよいよ通信エンジニアがもっとも知りたい量——平均ビット誤り率(BER)——を中上-mフェージング下で導いていきましょう。
中上-mフェージング下のBPSK平均BER
瞬時SNRの分布
通信の誤り率は、瞬時SNR $\gamma$ の関数として与えられます。フェージングがあると $\gamma$ 自体が確率変数なので、誤り率もその分布で平均する必要があります。包絡線が中上-mに従うとき、瞬時SNR $\gamma = r^2 \cdot \bar\gamma / \Omega$($\bar\gamma$ は平均SNR)は、形状 $m$・平均 $\bar\gamma$ のガンマ分布になります。先に求めた電力のガンマ分布で $\Omega \to \bar\gamma$ と読み替えればよく、
$$ \begin{equation} f_\gamma(\gamma) = \frac{m^m}{\Gamma(m)\,\bar\gamma^m}\, \gamma^{m-1} \exp\!\left(-\frac{m}{\bar\gamma}\gamma\right), \qquad \gamma \ge 0 \end{equation} $$
です。$\bar\gamma = \mathbb{E}[\gamma]$ は平均SNRです。瞬時SNRがこのように分布することを使って、誤り率を平均します。
平均BERの定義
AWGNチャネル(フェージングなし)でのBPSKの瞬時BERは、よく知られた
$$ P_b(\gamma) = Q\!\left(\sqrt{2\gamma}\right) = \frac{1}{2}\,\mathrm{erfc}\!\left(\sqrt{\gamma}\right) $$
です。ここで $Q(\cdot)$ はガウスのQ関数、$\mathrm{erfc}(\cdot)$ は相補誤差関数です(両者は $Q(x)=\tfrac12\mathrm{erfc}(x/\sqrt2)$ で結ばれます)。フェージングがあると $\gamma$ がランダムに変動するので、平均BERはこの瞬時BERを瞬時SNRの分布で平均した値になります。
$$ \begin{equation} \bar{P}_b = \int_0^\infty P_b(\gamma)\, f_\gamma(\gamma)\, d\gamma = \int_0^\infty \frac{1}{2}\,\mathrm{erfc}\!\left(\sqrt{\gamma}\right) f_\gamma(\gamma)\, d\gamma \end{equation} $$
この積分は、ガンマ分布の重みでQ関数を平均する形になっています。一般の $m$ では特殊関数で表されますが、数値積分すれば確実に評価できます。後でPythonで計算しますが、その前に閉形式を求めておくと、BERが平均SNRに対してどんな勾配で減るのかが見通せます。
平均BERの閉形式
$m$ が整数のとき、上の積分は閉じた形で書けます。Q関数を含むガンマ平均の標準的な結果として、平均BERは
$$ \begin{equation} \bar{P}_b = \frac{1}{2}\left[1 – \mu \sum_{k=0}^{m-1} \binom{2k}{k}\left(\frac{1-\mu^2}{4}\right)^{k}\right], \qquad \mu = \sqrt{\frac{\bar\gamma}{m + \bar\gamma}} \end{equation} $$
と表されます。ここで $\mu$ は平均SNRと $m$ で決まる補助変数で、$\bar\gamma\to\infty$ で $\mu\to 1$ に近づきます。この式は数値積分の結果と一致するので、後でPythonで両者を突き合わせて検証します。
高SNRでの漸近形 — ダイバーシティ次数 m
エンジニアにとって本当に知りたいのは「平均SNRを上げると、BERはどれだけの速さで下がるのか」です。高SNR領域($\bar\gamma \gg m$)での漸近挙動を調べましょう。閉形式は扱いが重いので、積分から直接漸近を取り出します。瞬時SNRが小さい領域($\gamma$ が0付近)でPDFが $f_\gamma(\gamma) \approx \dfrac{m^m}{\Gamma(m)\bar\gamma^m}\gamma^{m-1}$ とふるまうことに注目し、$\mathrm{erfc}(\sqrt\gamma)$ をこの重みで積分すると、主要項は
$$ \begin{equation} \bar{P}_b \approx \frac{\Gamma\!\left(m + \frac{1}{2}\right)}{2\sqrt{\pi}\,\Gamma(m+1)}\left(\frac{m}{\bar\gamma}\right)^{m} \propto \bar\gamma^{-m} \end{equation} $$
となります。ここがこの記事の核心です。平均BERは高SNRで $\bar\gamma^{-m}$ に比例して減少する——つまり対数スケールでは傾きが $-m$ の直線になります。この指数 $m$ こそがダイバーシティ次数(diversity order)です。
直感的に言えば、$m$ はフェージングを軽くする「実効的なアンテナ本数」のようなものです。$m=1$(レイリー)では平均SNRを10倍(10 dB)上げてもBERは1桁しか下がりませんが、$m=4$ ならBERは4桁も下がります。深いフェージングほど($m$ が小さいほど)「電力を上げてもなかなか誤りが減らない」、浅いフェージングほど($m$ が大きいほど)「電力を上げれば一気に誤りが減る」という、実務で極めて重要な事実が、この $\bar\gamma^{-m}$ という1点に凝縮されています。
数式で見てきたこの結論を、最後にPythonで実際に計算し、グラフで確かめましょう。包絡線PDFの形、フェージング深さ、そしてBERの $-m$ 勾配を順に可視化していきます。
Pythonでの実装と可視化
図のための共通設定
まず日本語フォントの設定と、よく使うインポートをまとめておきます。
import numpy as np
import matplotlib, matplotlib.pyplot as plt
from scipy.special import gamma as gamma_func, erfc, comb
from scipy.stats import gamma as gamma_dist
from scipy.integrate import quad
# 日本語フォント設定(豆腐対策)
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
# 中上-m分布のPDF
def nakagami_pdf(r, m, Omega):
"""中上-m分布の確率密度関数"""
return (2 * m**m / (gamma_func(m) * Omega**m)) * r**(2*m - 1) * np.exp(-m / Omega * r**2)
nakagami_pdf は冒頭で導出したPDFをそのまま実装したものです。以降の図はこの関数を中心に組み立てます。scipy のガンマ関数・相補誤差関数・二項係数を使うので、まとめてインポートしておきました。
包絡線PDFの形を m ごとに見る
$m$ を変えたときに包絡線分布の形がどう変わるかをプロットします。平均電力 $\Omega=1$ に固定し、$m=0.5, 1, 2, 4, 8$ を重ねます。
r = np.linspace(0, 2.5, 500)
Omega = 1.0
m_list = [0.5, 1.0, 2.0, 4.0, 8.0]
plt.figure(figsize=(8, 5))
for m in m_list:
label = f"$m={m}$"
if m == 1.0:
label += "(レイリー)"
plt.plot(r, nakagami_pdf(r, m, Omega), lw=2, label=label)
plt.axvline(np.sqrt(Omega), color="gray", ls="--", alpha=0.6,
label=r"平均電力の平方根 $\sqrt{\Omega}$")
plt.xlabel("包絡線 $r$")
plt.ylabel("確率密度 $f_R(r)$")
plt.title("中上-m分布の包絡線PDF(平均電力 $\\Omega=1$ で固定)")
plt.legend()
plt.grid(alpha=0.3)
plt.tight_layout()
plt.show()

このグラフからいくつかの重要な特徴が読み取れます。第一に、$m=1$ の曲線はレイリー分布であり、$r=0$ 付近からなだらかに立ち上がって裾が広く伸びています。第二に、$m=0.5$ では原点付近の密度がさらに高く、つまり「包絡線がほぼ0に落ち込む深いフェージング」が起きやすいことがわかります。第三に、$m$ を大きくすると分布は $\sqrt{\Omega}=1$ のまわりに鋭く集中し、$m=8$ ではほぼ釣鐘型になります。これは「$m$ を大きくするほどフェージングが浅くなり、受信電力が平均値に張りつく」という理論の予測そのものです。
包絡線のPDFを見たので、次にこの分布から実際にサンプルを生成し、「電力を二乗するとガンマ分布になる」という導出の核が正しいことをヒストグラムで確かめましょう。

この図は、電力 $P$ を形状 $m$・スケール $\Omega/m$ のガンマ分布で生成し、その平方根 $r=\sqrt{P}$ を包絡線サンプルとしたヒストグラム(各20万サンプル)に、理論PDF(赤線)を重ねたものです。$m=0.5$ の深いフェージングから $m=4$ の浅いフェージングまで、ヒストグラムが理論曲線にぴたりと一致しています。これは「中上-m包絡線はガンマ分布する電力の平方根である」という導出が、乱数生成のレベルでも正しいことの実証です。
フェージング深さ(電力の変動係数)の確認
理論で導いた「電力の変動係数の二乗が $1/m$」を、乱数シミュレーションで確かめます。中上-m分布の乱数は、ガンマ分布で電力を生成してから平方根を取ることで作れます(導出で使った関係そのものです)。
rng = np.random.default_rng(0)
N = 200000
Omega = 1.0
m_grid = np.array([0.5, 1.0, 2.0, 4.0, 8.0, 16.0])
theory = 1.0 / m_grid # 理論値 Var[P]/E[P]^2 = 1/m
empirical = []
for m in m_grid:
# 電力 P ~ Gamma(形状m, スケールOmega/m)、包絡線 r = sqrt(P)
P = rng.gamma(shape=m, scale=Omega/m, size=N)
empirical.append(np.var(P) / np.mean(P)**2)
empirical = np.array(empirical)
plt.figure(figsize=(8, 5))
plt.plot(m_grid, theory, "o-", lw=2, label=r"理論 $1/m$")
plt.plot(m_grid, empirical, "s--", lw=2, label="シミュレーション")
plt.xlabel("mファクタ")
plt.ylabel(r"電力の変動係数の二乗 $\mathrm{Var}[P]/E[P]^2$")
plt.title("mファクタとフェージング深さの関係")
plt.legend()
plt.grid(alpha=0.3)
plt.tight_layout()
plt.show()
for m, t, e in zip(m_grid, theory, empirical):
print(f"m={m:4.1f} 理論={t:.4f} 実測={e:.4f}")

出力される理論値と実測値はほぼ一致し、$m$ が増えるにつれて電力の変動係数の二乗が $1/m$ の双曲線に沿って小さくなっていくことが確認できます。実測でも $m=0.5$ で約2.00、$m=1$ で約1.00、$m=16$ で約0.063 と理論 $1/m$ にきれいに乗っています。$m=0.5$ では値が2に達し(電力が平均の2倍も揺れる激しいフェージング)、$m=16$ では0.06程度まで下がって電力がほぼ安定します。乱数を「ガンマ分布の平方根」で生成できたこと自体が、中上-m分布の本質(二乗するとガンマ分布)を裏づけています。
平均BERの計算 — 数値積分と閉形式
中上-mフェージング下でのBPSK平均BERを、数値積分と整数 $m$ の閉形式の両方で計算し、突き合わせます。
def avg_ber_integral(m, ebn0_db):
"""数値積分による平均BER(BPSK, 中上-mフェージング)"""
ebn0 = 10**(ebn0_db / 10) # 平均SNR(真値)
barg = ebn0 # BPSKでは Eb/N0 = 平均SNR
# 瞬時SNRのガンマ分布で Q(sqrt(2*gamma)) = 0.5*erfc(sqrt(gamma)) を平均
def integrand(g):
pdf = (m**m / (gamma_func(m) * barg**m)) * g**(m-1) * np.exp(-m/barg * g)
return 0.5 * erfc(np.sqrt(g)) * pdf
val, _ = quad(integrand, 0, np.inf, limit=200)
return val
def avg_ber_closed(m, ebn0_db):
"""整数mの閉形式による平均BER"""
m = int(m)
barg = 10**(ebn0_db / 10)
mu = np.sqrt(barg / (m + barg))
s = sum(comb(2*k, k) * ((1 - mu**2) / 4)**k for k in range(m))
return 0.5 * (1 - mu * s)
この2つの関数は、それぞれ前節で導いた積分形と閉形式に対応します。avg_ber_integral は任意の実数 $m$ に使え、avg_ber_closed は整数 $m$ 限定ですが高速です。次に両者の一致を数値で確かめます。
ebn0_check = np.arange(0, 21, 5)
print("Eb/N0[dB] m=2 積分 m=2 閉形式")
for e in ebn0_check:
bi = avg_ber_integral(2, e)
bc = avg_ber_closed(2, e)
print(f" {e:4.0f} {bi:.3e} {bc:.3e}")

この出力では、各 $E_b/N_0$ について数値積分と閉形式のBERが小数点以下数桁まで一致します(たとえば $m=2$, $E_b/N_0=20$ dB で両者とも $7.26\times10^{-5}$)。図でも、線(数値積分)の上に点(閉形式)がぴたりと重なり、$m=1,2,3$ のすべてで一致しています。これにより、導出した閉形式が正しいこと、そして数値積分の実装も信頼できることが相互に裏づけられます。理論の式と数値計算が噛み合っていることを確認できたので、安心して $m$ ごとのBER曲線を描けます。
BER曲線 — ダイバーシティ次数 m の効果
いよいよ本記事のクライマックスです。$m$ を変えたBER曲線を片対数(縦軸対数)で描き、高SNRでの傾きが $-m$ になることを確認します。
ebn0_db = np.linspace(0, 30, 31)
m_list = [0.5, 1.0, 2.0, 4.0]
plt.figure(figsize=(8, 6))
for m in m_list:
ber = [avg_ber_integral(m, e) for e in ebn0_db]
label = f"$m={m}$"
if m == 1.0:
label += "(レイリー)"
plt.semilogy(ebn0_db, ber, "o-", ms=3, lw=1.8, label=label)
# 参考: AWGN(フェージングなし)のBPSK BER
awgn = 0.5 * erfc(np.sqrt(10**(ebn0_db/10)))
plt.semilogy(ebn0_db, awgn, "k--", lw=2, label="AWGN(フェージングなし)")
plt.xlabel("平均 $E_b/N_0$ [dB]")
plt.ylabel("平均BER")
plt.title("中上-mフェージング下のBPSK平均BER")
plt.ylim(1e-7, 1)
plt.legend()
plt.grid(True, which="both", alpha=0.3)
plt.tight_layout()
plt.show()

このグラフは中上-m分布の実務的な意味を一目で示しています。第一に、$m$ が大きいほどBER曲線は急峻に落ち、同じBERを達成するのに必要な $E_b/N_0$ が小さくて済みます。第二に、高SNR領域での傾きが $m$ とともに急になっていきます——$m=1$(レイリー)ではSNRを10 dB上げてBERが1桁、$m=4$ では4桁近く下がります。第三に、$m\to\infty$ の極限に対応するAWGN曲線(破線)に向かって、$m$ を増やすほど曲線が近づいていきます。これは「フェージングが浅くなるほどAWGNに帰着する」という理論の帰結そのものです。
ここまでは理論式(数値積分)でBERを計算してきましたが、本当にこの値で誤りが起きるのか、実際にビットを大量に飛ばすモンテカルロ実験で確かめましょう。瞬時SNRをガンマ分布から引き、BPSKの判定 $y = \sqrt{2\gamma} + n$($n \sim \mathcal{N}(0,1)$)で $y<0$ を誤りと数えます。

各 $E_b/N_0$ で40万ビットを送った実測点(白丸)が、理論曲線(実線)の上にきれいに乗っています。たとえば $m=2$, $E_b/N_0=24$ dB で実測 $1.25\times10^{-5}$ に対し理論 $1.17\times10^{-5}$ とよく一致します。誤りが極めて稀な領域($m=4$ の高SNR側)では40万ビットでも誤りが0回になることがあり、これがモンテカルロでBERを測る難しさ(深いダイバーシティほど膨大な試行が要る)も同時に示しています。
傾きの定量確認 — ダイバーシティ次数を測る
最後に、高SNRでのBER曲線の傾きを数値的に測り、それが理論の $-m$(10 dBあたり $-m$ 桁)に一致することを確かめます。
# 高SNR(20→30 dB)でのlog10(BER)の傾きを測る
e1, e2 = 20.0, 30.0
print(" m 実測の傾き(桁/10dB) 理論=-m")
for m in [1.0, 2.0, 3.0, 4.0]:
b1 = avg_ber_integral(m, e1)
b2 = avg_ber_integral(m, e2)
# log10(BER)の (e2-e1)=10dB あたりの変化
slope = (np.log10(b2) - np.log10(b1)) / ((e2 - e1) / 10)
print(f"{m:3.0f} {slope:+.3f} {-m:+.1f}")

この出力では、各 $m$ について高SNRでのBERの傾き(10 dBあたりの桁数)が、理論値 $-m$ にきわめて近い値になります。実測では $m=1$ で $-0.997$、$m=2$ で $-1.99$、$m=3$ で $-2.97$、$m=4$ で $-3.95$ と、いずれも理論 $-m$ にほぼ一致しています。たとえば $m=4$ なら傾きはおよそ $-4$、すなわち平均SNRを10 dB上げるとBERが約4桁下がることを意味します。$\bar P_b \propto \bar\gamma^{-m}$ という漸近式、そして「$m$ がダイバーシティ次数である」という主張が、数値実験で明確に裏づけられました。フェージングを軽くする工夫(ダイバーシティやMIMO)が、なぜBERをこれほど劇的に改善するのか——その答えが、この $-m$ の傾きに集約されています。
アウテージ確率 — 通信が途切れる頻度を見積もる
リンク設計でBERと並んで重要なのが、アウテージ確率(outage probability)$P_{out}$ です。これは瞬時SNR $\gamma$ が、必要な品質を保つためのしきい値 $\gamma_{th}$ を下回る確率 $P_{out} = P(\gamma < \gamma_{th})$ で、瞬時SNRがガンマ分布なので下側不完全ガンマ関数で閉形式に書けます。
$$ \begin{equation} P_{out} = P(\gamma < \gamma_{th}) = \gamma_{\text{inc}}\!\left(m,\, \frac{m\,\gamma_{th}}{\bar\gamma}\right) \end{equation} $$
ここで $\gamma_{\text{inc}}$ は正則化された下側不完全ガンマ関数です。しきい値SNRを $5$ dB に固定し、平均SNR $\bar\gamma$ を振ってアウテージ確率を計算・実測した結果が次の図です。

この図から、平均SNRを上げるほどアウテージ確率が下がること、そして $m$ が大きいほど(フェージングが浅いほど)同じ平均SNRでもはるかに低いアウテージ確率を達成できることが読み取れます。乱数シミュレーションでも、たとえば $\bar\gamma=15$ dB のとき理論 $9.52\times10^{-2}$($m=1$)/ $7.76\times10^{-4}$($m=4$)に対し実測 $9.51\times10^{-2}$ / $7.60\times10^{-4}$ と一致し、閉形式の正しさが確認できます。BERの $-m$ 勾配と同じく、アウテージ確率の改善も「実効的な $m$ をいかに大きくするか」に帰着します。
まとめ
本記事では、中上-m分布の理論と導出、そしてフェージングチャネルの性能評価への応用を解説しました。
- 柔軟なフェージングモデル: 中上-m分布は形状パラメータ $m$ ひとつで、深いフェージング($m=1/2$)からレイリー($m=1$)、無フェージング($m\to\infty$)までを連続的に表現します。見通し成分を持つライス分布とも近似的に対応します
- ガンマ分布からの導出: 中上-m分布の本質は「瞬時電力(包絡線の二乗)がガンマ分布に従う」ことです。変数変換 $P=r^2$、ヤコビアン $2r$ から包絡線PDF $f_R(r)=\frac{2m^m}{\Gamma(m)\Omega^m}r^{2m-1}e^{-mr^2/\Omega}$ を省略なく導けます
- mファクタの意味: 電力の変動係数の二乗がちょうど $1/m$ になり、$m$ がフェージングの深さ(の逆数)を直接測ります。モーメント法でデータから $m$ を推定できます
- 平均BERとダイバーシティ次数: 瞬時BERを瞬時SNRのガンマ分布で平均すると平均BERが得られ、高SNRでは $\bar P_b \propto \bar\gamma^{-m}$ となります。この指数 $m$ がダイバーシティ次数であり、片対数グラフ上の傾き $-m$ として現れます
中上-m分布を理解すると、ダイバーシティ受信やMIMO、符号化といった「フェージングと戦う技術」が、なぜ・どれだけBERを改善するのかを定量的に語れるようになります。フェージング対策の効果は突き詰めれば「実効的な $m$(ダイバーシティ次数)をいかに大きくするか」に集約されるからです。
次のステップとして、以下の記事も参考にしてください。
- ライスフェージングチャネルの理論 — 見通し成分を含むフェージングと、ライスファクタ $K$ と $m$ の対応
- ビット誤り率(BER)とは — AWGNでのBERの基礎と、フェージング下との比較
- ベータ分布の理論と性質 — ガンマ・ベータなど特殊関数の確率分布への応用