回線設計(リンクバジェット)の基礎 — 電波が届くかを計算で確かめる

携帯電話でビルの奥に入ると電波が途切れたり、Wi-Fi ルーターから離れると動画が止まったりする経験は誰にでもあるでしょう。「電波は本当に届くのか?」——この問いに定量的に答えるのが回線設計(リンクバジェット)です。

リンクバジェットとは、送信機から受信機までの電力の収支表のことです。家計簿に例えるなら、「収入(送信電力やアンテナ利得)」から「支出(ケーブル損失、空間損失、大気損失など)」を差し引いて、最終的に「手元にいくら残るか(受信電力)」を見積もる作業に相当します。残高が最低限の生活費(受信感度)を下回ると通信が成立しないわけです。

回線設計の考え方は、驚くほど幅広い分野で使われます。

  • 衛星通信: 数万 km 離れた人工衛星との通信が成立するか確認する
  • 携帯電話: 基地局のカバレッジ半径を設計する
  • Wi-Fi: オフィスや住宅でアクセスポイントの配置を決める
  • レーダー: 目標の検出距離を見積もる
  • 深宇宙探査: 数十億 km 先の探査機からデータを受信できるか判断する

つまり、電波を使うあらゆるシステムの設計は、リンクバジェットから始まると言っても過言ではありません。

本記事の内容

  • dB と dBm の復習
  • 送信電力とアンテナ利得(EIRP)の定義
  • 自由空間損失の導出と dB 表現
  • 各種損失(ケーブル、大気、フェージング)の整理
  • 受信系の性能(受信アンテナ利得、受信感度)
  • 回線マージンの設計と $E_b/N_0$ の関係
  • 実践例: 地上マイクロ波回線と Wi-Fi 回線の設計
  • Python によるリンクバジェット計算と可視化

前提知識

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

また、熱雑音電力($kTB$)の知識があるとより深く理解できます。

dB と dBm の復習

リンクバジェットの計算では、すべての量を dB(デシベル) で表します。なぜわざわざ対数に変換するのでしょうか?理由は単純で、電波が伝搬する過程では電力が何桁も変化するからです。たとえば、送信電力が 1 W($10^0$ W)なのに受信電力が $10^{-12}$ W ということが珍しくありません。これを掛け算で追いかけるより、対数を取って足し算にした方がはるかに見通しがよくなります。

dB の定義

2 つの電力 $P_1$ と $P_2$ の比を dB で表すと、次のようになります。

$$ G_{\text{dB}} = 10 \log_{10} \frac{P_1}{P_2} \quad [\text{dB}] $$

ここで $\log_{10}$ は常用対数です。電力比が 10 倍なら $10\,\text{dB}$、100 倍なら $20\,\text{dB}$、1000 倍なら $30\,\text{dB}$ です。逆に電力比が $1/10$ なら $-10\,\text{dB}$ になります。

覚えておくと便利な近似値として、電力比 2 倍が約 $3\,\text{dB}$ です。

$$ 10 \log_{10} 2 \approx 3.01 \quad \text{dB} $$

したがって $6\,\text{dB}$ は約 4 倍、$9\,\text{dB}$ は約 8 倍、というように $3\,\text{dB}$ 刻みで素早く暗算できます。

dBm と dBW

電力の絶対値を表すときは、基準電力を明示した単位を使います。

$$ P_{\text{dBm}} = 10 \log_{10} \frac{P}{1\,\text{mW}} \quad [\text{dBm}] $$

同様に、基準を 1 W とした場合は dBW で表します。

$$ P_{\text{dBW}} = 10 \log_{10} \frac{P}{1\,\text{W}} \quad [\text{dBW}] $$

$1\,\text{W} = 1000\,\text{mW}$ ですから、dBm と dBW の間には常に $30\,\text{dB}$ の差があります。

$$ P_{\text{dBm}} = P_{\text{dBW}} + 30 $$

たとえば、$1\,\text{W} = 0\,\text{dBW} = 30\,\text{dBm}$ です。携帯電話の送信電力がおよそ $0.2\,\text{W}$ だとすると、

$$ P_{\text{dBm}} = 10 \log_{10} \frac{0.2}{0.001} = 10 \log_{10} 200 \approx 23\,\text{dBm} $$

と計算できます。

dBi と dBd

アンテナ利得の単位にも 2 種類あります。

単位 基準 説明
dBi 等方性アンテナ 全方向に均等に放射する仮想アンテナが基準
dBd 半波長ダイポール 実在するダイポールアンテナが基準

半波長ダイポールの利得は等方性アンテナに対して約 $2.15\,\text{dBi}$ なので、

$$ G_{\text{dBi}} = G_{\text{dBd}} + 2.15 $$

という関係があります。リンクバジェットでは通常 dBi を使います。

ここまでで、電力や利得を dB で表現する道具が揃いました。次に、リンクバジェットの「収入」にあたる送信側のパラメータを見ていきましょう。

送信電力と EIRP

送信電力

送信機(トランスミッタ)が出力する電力を $P_t$ とします。これがリンクバジェットの出発点です。送信機の出力端子からケーブル(フィーダ)を通ってアンテナまで電力が伝わりますが、その途中でケーブル損失 $L_{\text{cable,tx}}$ が生じます。

したがって、実際にアンテナの給電点に届く電力は、

$$ P_{\text{ant}} = P_t – L_{\text{cable,tx}} \quad [\text{dBm}] $$

です。dB の世界では割り算が引き算になることに注意してください。

アンテナ利得

アンテナは電力を増幅するわけではありませんが、特定の方向に電力を集中させることで、あたかも増幅したかのような効果を生みます。これがアンテナ利得 $G_t$(dBi)です。

等方性アンテナ(全方向に均等放射する仮想アンテナ)と比較して、目的の方向にどれだけ電力密度を高められるかを表します。パラボラアンテナの利得は周波数に依存し、次の式で近似できます。

$$ G = 10 \log_{10} \left( \eta \left(\frac{\pi D}{\lambda}\right)^2 \right) \quad [\text{dBi}] $$

ここで $D$ はアンテナの直径、$\lambda$ は波長、$\eta$ は開口効率(通常 0.5〜0.7 程度)です。アンテナが大きいほど、また周波数が高い(波長が短い)ほど利得が大きくなることがわかります。

EIRP の定義

EIRP(Equivalent Isotropically Radiated Power: 等価等方放射電力) は、送信アンテナから目的の方向に放射される電力を、等方性アンテナがその方向に放射した場合の電力に換算したものです。

言い換えると、「もし等方性アンテナでこの方向に同じ電力密度を実現するなら、どれだけの送信電力が必要か」を示す量です。EIRP は次のように定義されます。

$$ \text{EIRP} = P_t + G_t – L_{\text{cable,tx}} \quad [\text{dBm}] $$

ここで $P_t$ は送信電力 [dBm]、$G_t$ は送信アンテナ利得 [dBi]、$L_{\text{cable,tx}}$ は送信側ケーブル損失 [dB] です。

たとえば、送信電力が $30\,\text{dBm}$(1 W)、送信アンテナ利得が $40\,\text{dBi}$、ケーブル損失が $2\,\text{dB}$ なら、

$$ \text{EIRP} = 30 + 40 – 2 = 68\,\text{dBm} $$

となります。これは等方性アンテナで同じ方向に同じ電力密度を実現しようとすると、$68\,\text{dBm} = 6.3\,\text{kW}$ もの電力が必要になることを意味します。指向性アンテナの集束効果がいかに大きいかがわかります。

EIRP はリンクバジェットの「総収入」に相当します。ここから伝搬路の「支出」を差し引いていくことで、受信機に届く電力を求めます。次に、最大の支出項目である自由空間損失を見ていきましょう。

自由空間損失

直感的な理解

送信アンテナから放射された電波は、真空中では球面状に広がっていきます。距離 $d$ では、その電力は半径 $d$ の球面全体に分散します。球の表面積は $4\pi d^2$ ですから、距離が 2 倍になると表面積は 4 倍に、電力密度は $1/4$ になります。これが自由空間損失の本質です。

つまり自由空間損失は、電波のエネルギーが「失われる」のではなく、空間的に「薄まる」ことによる見かけ上の損失です。

数式の導出

フリスの伝達公式から自由空間損失(FSPL: Free-Space Path Loss)を導きます。等方性アンテナが送信電力 $P_t$ で放射したとき、距離 $d$ における電力密度 $S$ は、

$$ S = \frac{P_t}{4\pi d^2} \quad [\text{W/m}^2] $$

受信アンテナの実効開口面積 $A_e$ を使うと、受信電力は、

$$ P_r = S \cdot A_e = \frac{P_t}{4\pi d^2} \cdot A_e $$

ここでアンテナの実効開口面積と利得の関係 $A_e = \frac{G \lambda^2}{4\pi}$ を利用します。送信側に利得 $G_t$、受信側に利得 $G_r$ を適用すると、フリスの伝達公式は、

$$ P_r = P_t \cdot G_t \cdot G_r \cdot \left(\frac{\lambda}{4\pi d}\right)^2 $$

この式の $\left(\frac{\lambda}{4\pi d}\right)^2$ の逆数が自由空間損失です。

$$ L_{\text{FSPL}} = \left(\frac{4\pi d}{\lambda}\right)^2 $$

周波数 $f$ と波長 $\lambda$ の関係 $\lambda = c / f$($c$ は光速)を代入すると、

$$ L_{\text{FSPL}} = \left(\frac{4\pi d f}{c}\right)^2 $$

リンクバジェットでは足し引きで計算するため、この真数表現を dB に変換します。対数の性質 $\log(x^2) = 2\log x$ を利用すると、次のようになります。

$$ L_{\text{FSPL,dB}} = 10 \log_{10}\left(\frac{4\pi d f}{c}\right)^2 = 20 \log_{10}\left(\frac{4\pi d f}{c}\right) $$

$c = 3 \times 10^8\,\text{m/s}$ を代入して整理すると、距離を km、周波数を GHz で表した場合の便利な近似式が得られます。

$$ L_{\text{FSPL,dB}} = 20 \log_{10}(d_{\text{km}}) + 20 \log_{10}(f_{\text{GHz}}) + 92.45 \quad [\text{dB}] $$

この式から、距離が 10 倍になると損失は $20\,\text{dB}$ 増加し、周波数が 10 倍になっても損失は $20\,\text{dB}$ 増加することがわかります。

定数 92.45 の導出

上の近似式に現れる定数 92.45 がどこから来るかを確認しておきましょう。$d$ を km、$f$ を GHz で表すと、

$$ L_{\text{FSPL,dB}} = 20 \log_{10}\left(\frac{4\pi \cdot d \times 10^3 \cdot f \times 10^9}{3 \times 10^8}\right) $$

$4\pi$ と $10^3 \times 10^9 / (3 \times 10^8) = 10^4 / 3$ をまとめると、

$$ 20 \log_{10}\left(\frac{4\pi}{3} \times 10^4\right) = 20 \log_{10}(4\pi/3) + 20 \times 4 $$

ここで $20 \log_{10}(4\pi/3) = 20 \log_{10}(4.189) \approx 20 \times 0.622 = 12.44$ なので、

$$ 12.44 + 80 = 92.44 \approx 92.45 \quad \text{dB} $$

が得られます。

自由空間損失はリンクバジェットにおいて最大の損失要因であることがほとんどです。しかし実際の通信路では、これ以外にもさまざまな損失が加わります。次にそれらを整理しましょう。

各種損失の整理

実際の通信システムでは、自由空間損失に加えていくつかの損失要因が存在します。家計簿の比喩に戻ると、自由空間損失が「家賃」なら、以下は「光熱費」「食費」「保険料」に相当する追加の支出項目です。

ケーブル損失(フィーダ損失)

送信機からアンテナまで、また受信アンテナから受信機までは同軸ケーブルや導波管で接続されます。ケーブル内で電力の一部が熱に変わるため、長さに比例した損失が生じます。

$$ L_{\text{cable}} = \alpha \cdot l \quad [\text{dB}] $$

$\alpha$ はケーブルの単位長さあたりの損失 [dB/m]、$l$ は長さ [m] です。

代表的なケーブルの損失率は以下の通りです。

ケーブル 周波数 損失率
RG-58(細い同軸) 1 GHz 約 0.6 dB/m
LMR-400(太い同軸) 1 GHz 約 0.08 dB/m
導波管(WR-90) 10 GHz 約 0.01 dB/m

高い周波数ほど損失率が大きくなる傾向があります。衛星地球局やレーダーでは、ケーブル損失を最小化するために受信機をアンテナ直下に設置する(LNA をアンテナ直近に配置する)設計が一般的です。

大気損失

地上〜宇宙間の通信や長距離地上通信では、大気による吸収が無視できません。主な吸収源は以下の 2 つです。

  • 水蒸気: 22.2 GHz 付近に吸収線がある
  • 酸素分子: 60 GHz 付近に強い吸収帯がある

地上間の水平パスでは降雨による減衰も重要で、特に 10 GHz を超える周波数帯で顕著になります。降雨減衰は ITU-R P.838 勧告に基づいて推定でき、降雨量 $R$(mm/h)に対して次のような経験式が使われます。

$$ \gamma_R = k R^\alpha \quad [\text{dB/km}] $$

ここで $k$ と $\alpha$ は周波数と偏波に依存するパラメータです。たとえば 12 GHz の垂直偏波で $R = 25\,\text{mm/h}$(やや強い雨)の場合、$\gamma_R \approx 1.5\,\text{dB/km}$ 程度になります。

指向ずれ損失

送信アンテナと受信アンテナのビーム中心がぴったり相手を向いていない場合、利得が最大値よりも低くなります。これを指向ずれ損失(pointing loss)と呼びます。

$$ L_{\text{pointing}} = 12 \left(\frac{\theta}{\theta_{3\text{dB}}}\right)^2 \quad [\text{dB}] $$

$\theta$ はビーム中心からのずれ角、$\theta_{3\text{dB}}$ はアンテナの半値幅(3 dB ビーム幅)です。この近似はガウスビームパターンを仮定しており、ずれ角が半値幅の半分以内であれば十分な精度があります。

フェージングマージン

電波伝搬は気象条件や地形によって時間的に変動します。マルチパスフェージング(複数の伝搬経路からの電波が干渉する現象)により、受信電力が瞬間的に大きく落ち込むことがあります。

フェージングマージンは、このような変動に対する余裕分です。必要なマージン量は、要求される回線稼働率(アベイラビリティ)から決まります。

稼働率 フェージングマージンの目安
99.0 % 15〜20 dB
99.9 % 25〜30 dB
99.99 % 35〜40 dB

稼働率を 1 桁上げる(99.9 % → 99.99 %)ごとに約 10 dB のマージンが追加で必要になるのが典型的なパターンです。

損失のまとめ

リンクバジェットに含まれる主要な損失を記号で整理します。

$$ L_{\text{total}} = L_{\text{FSPL}} + L_{\text{cable,tx}} + L_{\text{cable,rx}} + L_{\text{atm}} + L_{\text{pointing}} + L_{\text{misc}} \quad [\text{dB}] $$

ここで $L_{\text{misc}}$ にはコネクタ損失、レドーム損失などの雑多な項目が含まれます。

送信側と伝搬路の「支出」を把握できました。次は、受信側の「受け取り能力」を定量化しましょう。

受信系の性能

受信アンテナ利得

受信側にもアンテナがあり、その利得 $G_r$ [dBi] が受信電力に寄与します。送信側と同様に、受信側にもケーブル損失 $L_{\text{cable,rx}}$ があります。

受信アンテナで捕捉した電力から受信側ケーブル損失を差し引いたものが、受信機入力端における受信電力 $P_r$ です。

受信電力の計算

ここまでの要素をすべて組み合わせると、受信機入力端における受信電力 $P_r$ は次のように書けます。

$$ P_r = \text{EIRP} – L_{\text{FSPL}} – L_{\text{atm}} – L_{\text{misc}} + G_r – L_{\text{cable,rx}} \quad [\text{dBm}] $$

EIRP の定義 $\text{EIRP} = P_t + G_t – L_{\text{cable,tx}}$ を展開すると、

$$ P_r = P_t + G_t – L_{\text{cable,tx}} – L_{\text{FSPL}} – L_{\text{atm}} – L_{\text{misc}} + G_r – L_{\text{cable,rx}} \quad [\text{dBm}] $$

この式がリンクバジェットの基本式です。dB の世界では利得は足し算、損失は引き算というシンプルな構造になっています。

受信感度(最小受信電力)

受信機が正しく信号を復調するために必要な最小の受信電力を受信感度 $P_{\text{sens}}$ と呼びます。受信感度は雑音電力と要求される信号対雑音比(SNR)から決まります。

受信機入力端における雑音電力 $N$ は、

$$ N = k T_{\text{sys}} B \quad [\text{W}] $$

で与えられます。ここで $k = 1.38 \times 10^{-23}\,\text{J/K}$ はボルツマン定数、$T_{\text{sys}}$ はシステム雑音温度 [K]、$B$ は受信帯域幅 [Hz] です。

dBm で表すと、

$$ N_{\text{dBm}} = -228.6 + 10\log_{10}(T_{\text{sys}}) + 10\log_{10}(B) + 30 \quad [\text{dBm}] $$

ここで $-228.6$ は $10\log_{10}(k)$ を dBW 単位で表した値($10\log_{10}(1.38 \times 10^{-23}) \approx -228.6\,\text{dBW/K/Hz}$)で、$+30$ は dBW から dBm への変換です。整理すると、

$$ N_{\text{dBm}} = -198.6 + 10\log_{10}(T_{\text{sys}}) + 10\log_{10}(B) \quad [\text{dBm}] $$

要求される SNR を $\text{SNR}_{\text{req}}$ [dB] とすると、受信感度は、

$$ P_{\text{sens}} = N_{\text{dBm}} + \text{SNR}_{\text{req}} \quad [\text{dBm}] $$

たとえば、システム雑音温度 $T_{\text{sys}} = 500\,\text{K}$、帯域幅 $B = 1\,\text{MHz}$、要求 SNR が $10\,\text{dB}$ の場合、

$$ N_{\text{dBm}} = -198.6 + 10\log_{10}(500) + 10\log_{10}(10^6) = -198.6 + 27.0 + 60.0 = -111.6\,\text{dBm} $$

$$ P_{\text{sens}} = -111.6 + 10 = -101.6\,\text{dBm} $$

となります。

受信電力と受信感度の関係が明らかになりました。では、両者の差である「回線マージン」がどのような意味を持つのか、次に見ていきましょう。

回線マージンの設計

回線マージンの定義

回線マージン(リンクマージン)は、受信電力が受信感度をどれだけ上回っているかを示す指標です。

$$ M = P_r – P_{\text{sens}} \quad [\text{dB}] $$

$M > 0$ なら通信が成立し、$M < 0$ なら通信が破綻します。

ただし、$M = 0$ ぎりぎりで設計するのは危険です。前節で述べたフェージングや気象条件の変動、部品の経年劣化などを考慮して、十分なマージンを確保する必要があります。実用的には最低でも $3\sim5\,\text{dB}$ のマージンを持たせるのが一般的で、高い信頼性が求められるシステムでは $10\,\text{dB}$ 以上を確保します。

リンクバジェット表

ここまでの内容を一枚のバランスシートにまとめたものがリンクバジェット表です。以下に典型的なフォーマットを示します。

項目 記号 単位 備考
送信電力 $P_t$ +30.0 dBm 1 W
送信ケーブル損失 $L_{\text{cable,tx}}$ -2.0 dB
送信アンテナ利得 $G_t$ +40.0 dBi パラボラ
EIRP +68.0 dBm
自由空間損失 $L_{\text{FSPL}}$ -140.0 dB
大気損失 $L_{\text{atm}}$ -1.0 dB
その他損失 $L_{\text{misc}}$ -1.0 dB
受信アンテナ利得 $G_r$ +35.0 dBi
受信ケーブル損失 $L_{\text{cable,rx}}$ -1.5 dB
受信電力 $P_r$ -40.5 dBm
雑音電力 $N$ -111.6 dBm
要求 SNR $\text{SNR}_{\text{req}}$ +10.0 dB
受信感度 $P_{\text{sens}}$ -101.6 dBm
回線マージン $M$ +61.1 dB 十分な余裕

このように、すべての項目を dB で揃えることで、足し引きだけで受信電力と回線マージンが求められます。

回線マージンの概念を理解したところで、デジタル通信で特に重要な $E_b/N_0$ という指標について掘り下げましょう。

$E_b/N_0$ と BER の関係

なぜ $E_b/N_0$ が必要か

アナログ通信では SNR(信号対雑音比)だけで回線品質を議論できますが、デジタル通信ではビットあたりのエネルギー雑音電力密度の比である $E_b/N_0$ が使われます。なぜこの指標が便利なのでしょうか?

SNR は帯域幅に依存するため、変調方式やビットレートが異なるシステム間で公平に比較できません。$E_b/N_0$ は「1 ビットを正しく伝送するのにどれだけのエネルギーが必要か」を雑音の強さとの比で表すため、変調方式やビットレートによらない統一的な性能指標になります。

$E_b/N_0$ の定義

$$ \frac{E_b}{N_0} = \frac{P_r / R_b}{N_0} = \frac{P_r}{N_0 R_b} $$

ここで $P_r$ は受信電力 [W]、$R_b$ はビットレート [bit/s]、$N_0$ は雑音電力密度 [W/Hz] です。$E_b = P_r / R_b$ はビットあたりのエネルギー [J/bit]、$N_0 = kT_{\text{sys}}$ は単位帯域幅あたりの雑音電力です。

$E_b/N_0$ と SNR の関係は次のとおりです。帯域幅 $B$ と SNR を使って、

$$ \frac{E_b}{N_0} = \frac{S/N \cdot B}{R_b} = \text{SNR} \cdot \frac{B}{R_b} $$

dB で表すと、

$$ \left(\frac{E_b}{N_0}\right)_{\text{dB}} = \text{SNR}_{\text{dB}} + 10\log_{10}\left(\frac{B}{R_b}\right) $$

帯域幅とビットレートの比 $B/R_b$ は変調方式と符号化率によって決まります。

BER と $E_b/N_0$ の関係

デジタル通信の品質は BER(Bit Error Rate: ビット誤り率) で評価されます。BER は変調方式ごとに $E_b/N_0$ の関数として理論的に求まります。代表的な変調方式の BER 式を以下に示します。

BPSK / QPSK(位相変調):

$$ \text{BER} = \frac{1}{2}\text{erfc}\left(\sqrt{\frac{E_b}{N_0}}\right) $$

16-QAM:

$$ \text{BER} \approx \frac{3}{8}\text{erfc}\left(\sqrt{\frac{2}{5}\frac{E_b}{N_0}}\right) $$

64-QAM:

$$ \text{BER} \approx \frac{7}{24}\text{erfc}\left(\sqrt{\frac{1}{7}\frac{E_b}{N_0}}\right) $$

ここで $\text{erfc}(x) = 1 – \text{erf}(x) = \frac{2}{\sqrt{\pi}}\int_x^{\infty} e^{-t^2} dt$ は相補誤差関数です。

たとえば BPSK で BER $= 10^{-6}$ を実現するには、$E_b/N_0 \approx 10.5\,\text{dB}$ が必要です。この値がリンクバジェットにおける要求 $E_b/N_0$ となり、回線マージンの計算に使われます。

リンクバジェットへの組み込み

デジタル通信のリンクバジェットでは、受信感度を次のように定義し直します。

$$ P_{\text{sens}} = 10\log_{10}(k T_{\text{sys}}) + 10\log_{10}(R_b) + \left(\frac{E_b}{N_0}\right)_{\text{req,dB}} + 30 \quad [\text{dBm}] $$

整理すると、

$$ P_{\text{sens}} = -198.6 + 10\log_{10}(T_{\text{sys}}) + 10\log_{10}(R_b) + \left(\frac{E_b}{N_0}\right)_{\text{req,dB}} \quad [\text{dBm}] $$

回線マージンは依然として $M = P_r – P_{\text{sens}}$ で計算できます。

理論的な枠組みがすべて揃いました。ここからは、具体的な数値を使って実際にリンクバジェットを計算してみましょう。

実践例 1: 地上マイクロ波回線の設計

シナリオ設定

ある通信事業者が、2 つのビル間をマイクロ波回線で結ぶとします。以下の条件を想定します。

パラメータ 説明
距離 30 km ビル間の見通し距離
周波数 15 GHz Ku バンド
送信電力 1 W (30 dBm)
送信アンテナ利得 40 dBi 直径 60 cm パラボラ
受信アンテナ利得 40 dBi 同上
送信ケーブル損失 1.5 dB
受信ケーブル損失 1.5 dB
大気損失 0.5 dB 晴天時
降雨減衰(設計値) 8.0 dB 99.99 %稼働率対応
システム雑音温度 800 K
ビットレート 155 Mbps STM-1 相当
変調方式 QPSK
要求 BER $10^{-6}$
要求 $E_b/N_0$ 10.5 dB QPSK, BER=$10^{-6}$

計算手順

ステップ 1: EIRP の計算

$$ \text{EIRP} = P_t + G_t – L_{\text{cable,tx}} = 30 + 40 – 1.5 = 68.5\,\text{dBm} $$

ステップ 2: 自由空間損失

距離 30 km、周波数 15 GHz を近似式に代入します。

$$ L_{\text{FSPL}} = 20\log_{10}(30) + 20\log_{10}(15) + 92.45 $$

$20\log_{10}(30) = 29.54$、$20\log_{10}(15) = 23.52$ より、

$$ L_{\text{FSPL}} = 29.54 + 23.52 + 92.45 = 145.51\,\text{dB} $$

ステップ 3: 受信電力

$$ P_r = \text{EIRP} – L_{\text{FSPL}} – L_{\text{atm}} – L_{\text{rain}} + G_r – L_{\text{cable,rx}} $$

各値を代入して計算すると、次のようになります。

$$ P_r = 68.5 – 145.51 – 0.5 – 8.0 + 40 – 1.5 = -47.01\,\text{dBm} $$

ステップ 4: 受信感度

$$ P_{\text{sens}} = -198.6 + 10\log_{10}(800) + 10\log_{10}(155 \times 10^6) + 10.5 $$

$10\log_{10}(800) = 29.03$、$10\log_{10}(155 \times 10^6) = 81.90$ より、

$$ P_{\text{sens}} = -198.6 + 29.03 + 81.90 + 10.5 = -77.17\,\text{dBm} $$

ステップ 5: 回線マージン

$$ M = P_r – P_{\text{sens}} = -47.01 – (-77.17) = 30.16\,\text{dB} $$

結果の考察

回線マージンは約 $30\,\text{dB}$ あり、十分な余裕です。この余裕には降雨減衰 $8\,\text{dB}$ がすでに計算に含まれています。さらに $30\,\text{dB}$ の余裕があるので、予想外の気象変動や部品劣化にも対応できます。

仮に回線マージンが不足していた場合の対策としては、 – アンテナ直径を大きくする(利得向上) – 送信電力を上げる – より低い周波数帯を使う(自由空間損失の低減) – 符号化利得のある誤り訂正符号を導入する

などが考えられます。

次に、もう少し身近な例として Wi-Fi の回線設計を行ってみましょう。

実践例 2: Wi-Fi 回線の到達距離計算

シナリオ設定

オフィスの Wi-Fi アクセスポイントから、最大どこまで電波が届くかを見積もります。

パラメータ 説明
周波数 5 GHz Wi-Fi 5GHz 帯(802.11ac)
送信電力 20 dBm (100 mW) アクセスポイント
送信アンテナ利得 3 dBi 無指向性アンテナ
受信アンテナ利得 0 dBi スマートフォン内蔵
ケーブル損失(送受合計) 0 dB 直結のため
壁・障害物損失 15 dB オフィス内、壁 2〜3 枚
変調方式 64-QAM 高速モード
受信感度 -70 dBm 64-QAM, MCS7 程度

Wi-Fi では $E_b/N_0$ で設計するよりも、受信感度(チップセットのデータシートに記載)を直接使うのが一般的です。

計算

受信感度 $P_{\text{sens}} = -70\,\text{dBm}$ を満たすための最大自由空間損失を求めます。

$$ P_r = P_t + G_t + G_r – L_{\text{FSPL}} – L_{\text{wall}} $$

$P_r = P_{\text{sens}}$ として $L_{\text{FSPL}}$ について解くと、

$$ L_{\text{FSPL,max}} = P_t + G_t + G_r – L_{\text{wall}} – P_{\text{sens}} $$

各値を代入すると、次のようになります。

$$ L_{\text{FSPL,max}} = 20 + 3 + 0 – 15 – (-70) = 78\,\text{dB} $$

この $L_{\text{FSPL}}$ に対応する距離を求めます。$L_{\text{FSPL}} = 20\log_{10}(d_{\text{km}}) + 20\log_{10}(f_{\text{GHz}}) + 92.45$ より、

$$ 20\log_{10}(d_{\text{km}}) = L_{\text{FSPL}} – 20\log_{10}(f_{\text{GHz}}) – 92.45 $$

$f = 5\,\text{GHz}$ を代入すると、$20\log_{10}(5) = 13.98$ より、

$$ 20\log_{10}(d_{\text{km}}) = 78 – 13.98 – 92.45 = -28.43 $$

$$ d_{\text{km}} = 10^{-28.43/20} = 10^{-1.4215} \approx 0.0379\,\text{km} \approx 38\,\text{m} $$

結果の考察

壁を 2〜3 枚通過する条件で、64-QAM の高速モードの到達距離は約 38 m と見積もれました。これはオフィスビルの半フロア程度に相当し、直感的にも妥当な値です。

変調方式を QPSK に下げると受信感度は $-82\,\text{dBm}$ 程度まで改善されるため、$L_{\text{FSPL,max}} = 90\,\text{dB}$ となり、到達距離は約 120 m まで伸びます(ただし通信速度は低下します)。これが Wi-Fi で「電波は弱いけどつながる」状態に対応しています。

ここまでの計算を手作業で行ってきましたが、パラメータを変えて何度も計算するのは面倒です。Python で自動化しましょう。

Python によるリンクバジェット計算

リンクバジェット計算クラス

まず、リンクバジェットの各項目を管理し、結果を一覧表示できる計算ツールを作成します。

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

class LinkBudget:
    """リンクバジェット計算クラス"""

    def __init__(self, name="Link Budget"):
        self.name = name
        self.items = []

    def add_item(self, label, value_dB, unit="dB"):
        """項目を追加(利得は正、損失は負で指定)"""
        self.items.append({"label": label, "value": value_dB, "unit": unit})

    def fspl(self, d_km, f_ghz):
        """自由空間損失 [dB](正の値で返す)"""
        return 20 * np.log10(d_km) + 20 * np.log10(f_ghz) + 92.45

    def noise_power_dBm(self, T_sys_K, B_Hz):
        """雑音電力 [dBm]"""
        return -198.6 + 10 * np.log10(T_sys_K) + 10 * np.log10(B_Hz)

    def sensitivity_dBm(self, T_sys_K, Rb_bps, EbN0_req_dB):
        """受信感度 [dBm](Eb/N0ベース)"""
        return -198.6 + 10 * np.log10(T_sys_K) + 10 * np.log10(Rb_bps) + EbN0_req_dB

    def total_dB(self):
        """全項目の合計 [dB]"""
        return sum(item["value"] for item in self.items)

    def print_table(self, sensitivity_dBm=None):
        """リンクバジェット表を表示"""
        print(f"\n{'='*60}")
        print(f"  {self.name}")
        print(f"{'='*60}")
        print(f"  {'項目':<30s} {'値':>10s}  {'単位'}")
        print(f"  {'-'*50}")
        running = 0
        for item in self.items:
            running += item["value"]
            sign = "+" if item["value"] >= 0 else ""
            print(f"  {item['label']:<30s} {sign}{item['value']:>9.2f}  {item['unit']}")
        print(f"  {'-'*50}")
        print(f"  {'受信電力 Pr':<30s} {running:>+10.2f}  dBm")
        if sensitivity_dBm is not None:
            margin = running - sensitivity_dBm
            print(f"  {'受信感度 Psens':<30s} {sensitivity_dBm:>10.2f}  dBm")
            print(f"  {'回線マージン M':<30s} {margin:>+10.2f}  dB")
            print(f"  {'判定':<30s} {'OK' if margin > 0 else 'NG':>10s}")
        print(f"{'='*60}\n")
        return running

このクラスを使って、先ほどの地上マイクロ波回線を計算してみます。

# 地上マイクロ波回線のリンクバジェット
lb = LinkBudget("地上マイクロ波回線 (30 km, 15 GHz)")

# 送信系
lb.add_item("送信電力 Pt", 30.0, "dBm")
lb.add_item("送信ケーブル損失", -1.5, "dB")
lb.add_item("送信アンテナ利得 Gt", 40.0, "dBi")

# 伝搬損失
fspl = lb.fspl(d_km=30, f_ghz=15)
lb.add_item("自由空間損失 FSPL", -fspl, "dB")
lb.add_item("大気損失", -0.5, "dB")
lb.add_item("降雨減衰", -8.0, "dB")

# 受信系
lb.add_item("受信アンテナ利得 Gr", 40.0, "dBi")
lb.add_item("受信ケーブル損失", -1.5, "dB")

# 受信感度の計算
sens = lb.sensitivity_dBm(T_sys_K=800, Rb_bps=155e6, EbN0_req_dB=10.5)
Pr = lb.print_table(sensitivity_dBm=sens)

上のコードを実行すると、リンクバジェット表が出力されます。送信電力 30 dBm からスタートして各項目を足し引きし、最終的な受信電力と回線マージンが一目でわかります。手計算の結果(マージン約 30 dB)と一致することが確認できるはずです。

BER 曲線の描画

次に、各変調方式の BER 曲線を描画して、要求 $E_b/N_0$ がどのように変わるかを可視化します。

# BER曲線の描画
EbN0_dB = np.linspace(0, 16, 500)
EbN0_lin = 10**(EbN0_dB / 10)

# 各変調方式のBER
ber_bpsk = 0.5 * erfc(np.sqrt(EbN0_lin))
ber_16qam = (3/8) * erfc(np.sqrt(2/5 * EbN0_lin))
ber_64qam = (7/24) * erfc(np.sqrt(1/7 * EbN0_lin))

plt.figure(figsize=(9, 6))
plt.semilogy(EbN0_dB, ber_bpsk, 'b-', linewidth=2, label='BPSK / QPSK')
plt.semilogy(EbN0_dB, ber_16qam, 'r--', linewidth=2, label='16-QAM')
plt.semilogy(EbN0_dB, ber_64qam, 'g-.', linewidth=2, label='64-QAM')

# BER = 10^-6 の水平線
plt.axhline(y=1e-6, color='gray', linestyle=':', alpha=0.7, label=r'BER = $10^{-6}$')

plt.xlabel(r'$E_b/N_0$ [dB]', fontsize=13)
plt.ylabel('BER', fontsize=13)
plt.title('BER vs $E_b/N_0$ for Various Modulation Schemes', fontsize=14)
plt.legend(fontsize=11)
plt.grid(True, which='both', alpha=0.3)
plt.ylim(1e-8, 1)
plt.xlim(0, 16)
plt.tight_layout()
plt.show()

このグラフからは 3 つの重要なことが読み取れます。

  1. BPSK/QPSK は最も雑音に強い — 同じ BER を実現するのに必要な $E_b/N_0$ が最も小さい(BER $= 10^{-6}$ で約 10.5 dB)。ただし帯域効率は低い(BPSK は 1 bit/s/Hz)。
  2. 高次変調ほど要求 $E_b/N_0$ が大きくなる — 64-QAM で BER $= 10^{-6}$ を実現するには約 15 dB 必要で、BPSK より約 4.5 dB 余分にエネルギーが要ります。その代わり、帯域効率は 6 bit/s/Hz と高い。
  3. BER は $E_b/N_0$ に対して急峻に変化する — たった 1〜2 dB の $E_b/N_0$ の変化で BER が数桁変わります。これがリンクバジェットにおけるマージンの重要性を物語っています。

距離 vs 回線マージンのグラフ

リンクバジェットをパラメトリックに計算して、距離に対する回線マージンの変化を可視化します。

# 距離 vs 回線マージン
distances_km = np.linspace(1, 100, 500)

# パラメータ設定
Pt_dBm = 30.0          # 送信電力 [dBm]
Gt_dBi = 40.0          # 送信アンテナ利得 [dBi]
Gr_dBi = 40.0          # 受信アンテナ利得 [dBi]
L_cable_tx = 1.5       # 送信ケーブル損失 [dB]
L_cable_rx = 1.5       # 受信ケーブル損失 [dB]
L_atm = 0.5            # 大気損失 [dB]
L_rain = 8.0           # 降雨減衰 [dB]
f_ghz = 15.0           # 周波数 [GHz]
T_sys = 800            # システム雑音温度 [K]
Rb = 155e6             # ビットレート [bps]
EbN0_req = 10.5        # 要求Eb/N0 [dB]

# EIRP
EIRP = Pt_dBm + Gt_dBi - L_cable_tx

# 自由空間損失(距離の関数)
FSPL = 20 * np.log10(distances_km) + 20 * np.log10(f_ghz) + 92.45

# 受信電力
Pr = EIRP - FSPL - L_atm - L_rain + Gr_dBi - L_cable_rx

# 受信感度
Psens = -198.6 + 10 * np.log10(T_sys) + 10 * np.log10(Rb) + EbN0_req

# 回線マージン
margin = Pr - Psens

plt.figure(figsize=(10, 6))
plt.plot(distances_km, margin, 'b-', linewidth=2)
plt.axhline(y=0, color='r', linestyle='--', linewidth=1.5, label='マージン = 0 dB (限界)')
plt.axhline(y=10, color='orange', linestyle=':', linewidth=1.5, label='マージン = 10 dB (推奨)')
plt.fill_between(distances_km, margin, 0, where=(margin > 0),
                 alpha=0.15, color='green', label='通信可能領域')
plt.fill_between(distances_km, margin, 0, where=(margin <= 0),
                 alpha=0.15, color='red', label='通信不可領域')

# 最大距離の表示
d_max_idx = np.argmin(np.abs(margin))
d_max = distances_km[d_max_idx]
plt.annotate(f'最大距離 ≈ {d_max:.1f} km',
            xy=(d_max, 0), xytext=(d_max + 5, 10),
            fontsize=11, arrowprops=dict(arrowstyle='->', color='black'),
            bbox=dict(boxstyle='round,pad=0.3', facecolor='yellow', alpha=0.8))

plt.xlabel('距離 [km]', fontsize=13)
plt.ylabel('回線マージン [dB]', fontsize=13)
plt.title('距離 vs 回線マージン (地上マイクロ波, 15 GHz, 降雨減衰込み)', fontsize=14)
plt.legend(fontsize=11, loc='upper right')
plt.grid(True, alpha=0.3)
plt.xlim(1, 100)
plt.tight_layout()
plt.show()

print(f"最大通信距離(マージン0 dB): {d_max:.1f} km")
print(f"推奨距離(マージン10 dB以上): ", end="")
d_rec_idx = np.argmin(np.abs(margin - 10))
print(f"{distances_km[d_rec_idx]:.1f} km")

このグラフからは以下のことが読み取れます。

  1. 回線マージンは距離に対して単調に減少する — 距離が 2 倍になるとマージンは約 6 dB($20\log_{10}(2) \approx 6$)低下します。これは自由空間損失が距離の 2 乗に比例することの直接的な反映です。
  2. マージン 0 dB の限界距離はおよそ数十 km — この設計条件(降雨減衰 8 dB 込み)では、通信が成立する最大距離が明確に示されます。実用上は 10 dB 以上のマージンを確保する距離が推奨距離です。
  3. 近距離ではマージンが過剰になる — 5 km 程度では 40 dB 以上のマージンがあり、送信電力やアンテナサイズを小さくしてコストを下げる余地があることを示唆しています。

Wi-Fi 到達距離の計算と可視化

Wi-Fi の到達距離を変調方式ごとに計算し、可視化します。

# Wi-Fi 到達距離の計算
f_ghz_wifi = 5.0      # 周波数 [GHz]
Pt_wifi = 20.0         # 送信電力 [dBm]
Gt_wifi = 3.0          # APアンテナ利得 [dBi]
Gr_wifi = 0.0          # 端末アンテナ利得 [dBi]

# 壁損失のシナリオ
wall_scenarios = {
    '見通し (0 dB)': 0,
    '壁1枚 (5 dB)': 5,
    '壁2枚 (10 dB)': 10,
    '壁3枚 (15 dB)': 15,
}

# 変調方式ごとの受信感度(典型値)
modulations = {
    'BPSK (1 Mbps)': -90,
    'QPSK (12 Mbps)': -82,
    '16-QAM (36 Mbps)': -76,
    '64-QAM (54 Mbps)': -70,
    '256-QAM (150 Mbps)': -62,
}

def max_distance_km(Pt, Gt, Gr, L_wall, P_sens, f_ghz):
    """最大到達距離 [km] を計算"""
    L_fspl_max = Pt + Gt + Gr - L_wall - P_sens
    d_km = 10**((L_fspl_max - 20 * np.log10(f_ghz) - 92.45) / 20)
    return d_km

# 壁損失ごとの到達距離を計算
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 6))

# 左: 変調方式ごとの到達距離(壁損失別)
colors = plt.cm.viridis(np.linspace(0.2, 0.9, len(wall_scenarios)))
x_pos = np.arange(len(modulations))
width = 0.18

for i, (wall_label, L_wall) in enumerate(wall_scenarios.items()):
    distances_m = []
    for mod_label, sens in modulations.items():
        d = max_distance_km(Pt_wifi, Gt_wifi, Gr_wifi, L_wall, sens, f_ghz_wifi)
        distances_m.append(d * 1000)  # mに変換
    ax1.bar(x_pos + i * width, distances_m, width, label=wall_label, color=colors[i])

ax1.set_xlabel('変調方式', fontsize=12)
ax1.set_ylabel('到達距離 [m]', fontsize=12)
ax1.set_title('Wi-Fi (5 GHz) 到達距離 vs 変調方式', fontsize=13)
ax1.set_xticks(x_pos + 1.5 * width)
ax1.set_xticklabels([m.split('(')[0].strip() for m in modulations.keys()],
                     fontsize=10)
ax1.legend(fontsize=10)
ax1.grid(True, axis='y', alpha=0.3)

# 右: 距離 vs 受信電力(変調方式の感度ラインを重ねる)
distances_m_arr = np.linspace(1, 200, 500)
distances_km_arr = distances_m_arr / 1000

FSPL_wifi = 20 * np.log10(distances_km_arr) + 20 * np.log10(f_ghz_wifi) + 92.45
Pr_wifi_los = Pt_wifi + Gt_wifi + Gr_wifi - FSPL_wifi  # 見通し
Pr_wifi_wall = Pt_wifi + Gt_wifi + Gr_wifi - FSPL_wifi - 15  # 壁3枚

ax2.plot(distances_m_arr, Pr_wifi_los, 'b-', linewidth=2, label='見通し')
ax2.plot(distances_m_arr, Pr_wifi_wall, 'b--', linewidth=2, label='壁3枚 (15 dB)')

# 受信感度ライン
sens_colors = ['green', 'orange', 'red', 'purple', 'brown']
for (mod_label, sens), c in zip(modulations.items(), sens_colors):
    ax2.axhline(y=sens, color=c, linestyle=':', alpha=0.7,
                label=f'{mod_label}: {sens} dBm')

ax2.set_xlabel('距離 [m]', fontsize=12)
ax2.set_ylabel('受信電力 [dBm]', fontsize=12)
ax2.set_title('距離 vs 受信電力 (Wi-Fi 5 GHz)', fontsize=13)
ax2.legend(fontsize=8, loc='upper right')
ax2.grid(True, alpha=0.3)
ax2.set_xlim(1, 200)
ax2.set_ylim(-100, -20)

plt.tight_layout()
plt.show()

左のグラフ(棒グラフ)からは、壁の枚数と変調方式が到達距離にどう影響するかが一目でわかります。見通し環境では BPSK なら 500 m 以上届きますが、壁を 3 枚通すと 64-QAM で 40 m 弱に縮まります。右のグラフ(受信電力の距離依存性)は、各変調方式の受信感度ラインとの交点が到達距離の限界を示しています。見通しと壁 3 枚の 2 本のカーブが各感度ラインと交差する点を比べると、障害物がいかに大きな影響を与えるかが視覚的に理解できます。

汎用リンクバジェット計算ツール

最後に、パラメータを辞書で渡すだけで計算できる汎用関数を作ります。

def calculate_link_budget(params):
    """
    汎用リンクバジェット計算

    Parameters
    ----------
    params : dict
        Pt_dBm       : 送信電力 [dBm]
        Gt_dBi       : 送信アンテナ利得 [dBi]
        Gr_dBi       : 受信アンテナ利得 [dBi]
        L_cable_tx_dB: 送信ケーブル損失 [dB]
        L_cable_rx_dB: 受信ケーブル損失 [dB]
        d_km         : 距離 [km]
        f_ghz        : 周波数 [GHz]
        L_atm_dB     : 大気損失 [dB]
        L_misc_dB    : その他損失 [dB]
        P_sens_dBm   : 受信感度 [dBm](直接指定する場合)
        T_sys_K      : システム雑音温度 [K](Eb/N0で計算する場合)
        Rb_bps       : ビットレート [bps](同上)
        EbN0_req_dB  : 要求Eb/N0 [dB](同上)

    Returns
    -------
    result : dict
    """
    result = {}

    # EIRP
    EIRP = (params['Pt_dBm'] + params['Gt_dBi']
            - params.get('L_cable_tx_dB', 0))
    result['EIRP_dBm'] = EIRP

    # 自由空間損失
    FSPL = (20 * np.log10(params['d_km'])
            + 20 * np.log10(params['f_ghz']) + 92.45)
    result['FSPL_dB'] = FSPL

    # 受信電力
    Pr = (EIRP - FSPL
          - params.get('L_atm_dB', 0)
          - params.get('L_misc_dB', 0)
          + params['Gr_dBi']
          - params.get('L_cable_rx_dB', 0))
    result['Pr_dBm'] = Pr

    # 受信感度
    if 'P_sens_dBm' in params:
        Psens = params['P_sens_dBm']
    else:
        Psens = (-198.6
                 + 10 * np.log10(params['T_sys_K'])
                 + 10 * np.log10(params['Rb_bps'])
                 + params['EbN0_req_dB'])
    result['P_sens_dBm'] = Psens

    # 回線マージン
    result['margin_dB'] = Pr - Psens
    result['link_ok'] = result['margin_dB'] > 0

    return result

# 使用例: 先ほどの地上マイクロ波回線
params_microwave = {
    'Pt_dBm': 30.0,
    'Gt_dBi': 40.0,
    'Gr_dBi': 40.0,
    'L_cable_tx_dB': 1.5,
    'L_cable_rx_dB': 1.5,
    'd_km': 30,
    'f_ghz': 15.0,
    'L_atm_dB': 0.5,
    'L_misc_dB': 8.0,   # 降雨減衰を含む
    'T_sys_K': 800,
    'Rb_bps': 155e6,
    'EbN0_req_dB': 10.5,
}

result = calculate_link_budget(params_microwave)
print("=== 地上マイクロ波回線 ===")
for key, val in result.items():
    if isinstance(val, float):
        print(f"  {key}: {val:.2f}")
    else:
        print(f"  {key}: {val}")

この汎用関数の出力から、手計算やクラス版と同じ結果が得られることを確認できます。EIRP_dBm = 68.50FSPL_dB ≈ 145.51、回線マージン約 30 dB という結果は、3 つの方法すべてで一致しています。関数化しておけば、パラメータを変えたトレードオフ分析や感度分析に容易に活用できます。

リンクバジェット設計のポイント

ここまでの内容を踏まえ、実際の回線設計で意識すべきポイントを整理します。

設計マージンの確保

リンクバジェットはあくまで定常状態の計算です。実際の運用では以下の変動要因があるため、十分なマージンを確保する必要があります。

  • 気象変動: 降雨、霧、湿度変化による減衰の増加
  • 経年劣化: アンテナの汚れ、ケーブルの劣化、送信機の出力低下
  • 指向ずれ: 風によるアンテナの揺れ、追尾誤差
  • 干渉: 他のシステムからの干渉電波

一般的な設計マージンの目安は以下の通りです。

用途 推奨マージン
固定地上回線 10〜15 dB
衛星通信 3〜6 dB
移動体通信 10〜20 dB

衛星通信のマージンが比較的小さいのは、宇宙空間には大気がなく、固定軌道上の衛星への指向ずれも追尾系で管理されるためです。一方、移動体通信ではマルチパスフェージングの影響が大きく、大きめのマージンが求められます。

トレードオフ

回線マージンが不足する場合、複数の対策が考えられますが、それぞれコストや制約があります。

対策 効果 トレードオフ
送信電力の増加 EIRP 向上 消費電力、法規制、干渉
アンテナ大型化 利得向上 サイズ、重量、コスト
低い周波数帯の使用 FSPL 低減 帯域幅の制限、法規制
符号化率を下げる $E_b/N_0$ 低減 スループット低下
低次変調への切替 受信感度改善 スループット低下
ダイバーシティ フェージング軽減 受信系の複雑化

実際の設計では、これらのパラメータ間のトレードオフを見ながら、コスト、性能、法規制のバランスを取ります。リンクバジェットは、このトレードオフ分析のための定量的な土台を提供するツールなのです。

実用上の注意点

リンクバジェットを計算する際に見落としがちな点をいくつか挙げます。

単位の統一: dBm と dBW の混在は計算ミスの原因になります。リンクバジェット内ではどちらかに統一しましょう。

自由空間損失の適用範囲: FSPL は見通し(Line of Sight)環境での理論値です。屋内やビル間など遮蔽物がある環境では、別の伝搬モデル(Okumura-Hata、COST231 など)を使う必要があります。

アンテナ利得の方向依存性: アンテナ利得はビーム中心の値(ピーク利得)です。受信点がビーム中心からずれている場合は、放射パターンに基づいて指向ずれ損失を加算する必要があります。

雑音温度の見積もり: $T_{\text{sys}}$ はアンテナ雑音温度と受信機雑音温度の和です。アンテナが地面を向いている場合と天頂を向いている場合では、アンテナ雑音温度が大きく異なります。衛星通信のように低雑音が求められるシステムでは、この見積もりが回線設計の精度を左右します。

まとめ

本記事では、回線設計(リンクバジェット)の基礎を体系的に解説しました。

  • リンクバジェットは電力の収支表 — 送信電力(収入)から各種損失(支出)を引き、受信電力が受信感度を上回るかを確認する
  • dB の世界では掛け算が足し算に変わる — 利得は加算、損失は減算で、シンプルに受信電力を見積もれる
  • EIRP = 送信電力 + アンテナ利得 – ケーブル損失 — 送信側の総合能力を表す
  • 自由空間損失は最大の損失要因 — 距離が 10 倍で 20 dB、周波数が 10 倍で 20 dB 増加する
  • 回線マージン = 受信電力 – 受信感度 — 正であれば通信可能、余裕が大きいほど信頼性が高い
  • $E_b/N_0$ はデジタル通信の統一的な品質指標 — 変調方式やビットレートによらず、回線品質を公平に比較できる
  • 設計マージンは変動要因に応じて確保する — 気象、劣化、干渉など、静的な計算では捉えられない要因に備える

リンクバジェットの考え方は、衛星通信やレーダーなど、さらに高度な通信システムの設計にもそのまま適用できます。

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