DVB-S2X 適応符号化変調(ACM)を理解する — 雨減衰に強い衛星リンク

東京で晴れた昼間、衛星アンテナはBSやCSの放送を綺麗に受信できています。ところが集中豪雨が降り始めた途端、画面にブロックノイズが走り、やがて画面が真っ暗になる — Ku帯やKa帯の衛星放送を見ていれば誰もが一度は経験する現象です。電波が雨粒に吸収・散乱されて受信レベルが急激に下がるためですが、ではこの「雨で切れる」問題を、放送ではなく双方向の衛星インターネットでどうやって解決しているのでしょうか。

答えの中核にあるのが、本記事で扱う適応符号化変調(ACM: Adaptive Coding and Modulation)です。ACMは、地上局からの受信品質報告に応じて、衛星が変調方式と符号化レートをリアルタイムに切り替える仕組みであり、欧州の衛星デジタル放送規格であるDVB-S2/S2Xの中核機能として規格化されています。晴天時には高効率の32APSKでフルレートのデータを送り、豪雨でリンクが劣化したらQPSKに落として「とにかく繋がり続ける」 — このダイナミックな切替によって、HTS(High Throughput Satellite)やVSATネットワークは年間平均で99.5%以上の稼働率を実現しています。

ACMを理解すると、現代の衛星インターネット・放送・ペイロード設計の多くが見通せるようになります。

  • HTS/VSATネットワーク: 数万局の地上端末を抱える大規模VSATネットワークで、ACMは平均スループットを倍増させる基本機能です
  • LEO/MEOコンステレーション: Starlink、OneWeb、O3bといった非静止衛星システムでは、仰角変化に伴う伝搬損失変動もACMで吸収しています
  • Ka帯ペイロード設計: 雨減衰が10〜30 dBに達するKa帯では、ACMマージン設計が衛星容量設計のキードライバーになります
  • 深宇宙通信のVCM: CCSDS規格の深宇宙通信では、リターンチャネルが取れない代わりに事前計画した変調・符号化を時間で切り替えるVCMが使われ、これはACMの兄弟概念です

本記事の内容

  • ACMがなぜ必要か — 雨減衰問題の直感的理解
  • DVB-S/S2/S2X規格の系譜と技術的進化
  • MODCODの構成 — 変調方式とLDPC符号化レートの組み合わせ
  • CCM/VCM/ACMの3つの動作モードの違い
  • ES/N0と所要MODCODのマッピング表
  • ACM制御ループ — リターンチャネル測定からMODCOD切替まで
  • Ka帯雨減衰モデル(ITU-R P.618)とACMマージン設計
  • ACM導入による年間平均スループット改善の定量評価

前提知識

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

なぜACMが必要か — 雨減衰問題の直感

静的な衛星リンクの限界

衛星通信の伝統的な設計思想は「最悪条件で繋がるように設計する」というものでした。たとえば年間99.9%の可用性を要求する放送リンクでは、年間のうち約8.76時間しか起きないような豪雨イベントでも繋がり続けるよう、晴天時の受信レベルから雨減衰の最悪値(Ka帯では20〜30 dB)分の余裕、すなわち降雨マージンを確保します。

これを単純な水道のアナロジーで言えば、年に数回しか来ない来客のために常に最大流量で水を流し続けるようなものです。普段の使用では明らかに過剰であり、無駄が大きい設計です。

具体的に何が無駄なのか、数値で見てみましょう。Ka帯ダウンリンクで降雨マージン20 dBを取るということは、晴天時の受信ES/N0が「所要ES/N0 + 20 dB」まで膨らんでいるということです。シャノン限界に近いLDPC符号系の所要ES/N0は変調・符号化レートによって変わりますが、晴天時に20 dBの余剰があれば、本来なら32APSK 9/10(スペクトル効率 $\eta \approx 4.45$ bit/s/Hz)相当の高速通信が可能なはずです。ところが「雨で切れないよう」QPSK 1/2($\eta \approx 1.0$ bit/s/Hz)固定で設計してしまうと、晴天時にも約4.5倍のスループットを捨て続けることになります。

ACMの基本アイデア

ここで自然な発想が生まれます — 「雨が降っているときだけ強い変調・符号化を使い、晴れているときは効率の良い変調・符号化を使えばいいのでは?」これがACMの基本アイデアです。

雨が降ってリンクが劣化したらQPSKに落として情報レートを下げ、晴れたら32APSKに上げてスループットを取り戻す。地上の携帯電話のリンクアダプテーション(LTEのAMC: Adaptive Modulation and Coding)と本質的に同じ考え方を、衛星リンクに適用したのがACMです。

イメージとしては、高速道路のレーン数を交通量に応じて動的に切り替えるシステムに似ています。普段は8車線で大量の車を捌き、悪天候で一部レーンが使えなくなったら4車線に絞って「とにかく流す」。固定レーンよりも年間平均の交通量が増えるのは直感的に明らかです。

衛星通信におけるACMの効果は、年間平均スループットで2〜3倍、Ka帯のような降雨減衰が大きい帯域ではさらに大きくなることが知られています。この潜在的な利得を引き出すための規格として標準化されたのが、次に見るDVB-S2/S2Xです。

DVB-S/S2/S2X 規格の系譜

DVB-S(1994) — 第1世代

DVB(Digital Video Broadcasting)プロジェクトは、欧州を中心とした衛星デジタル放送の標準化団体です。1994年にETSI EN 300 421として標準化されたDVB-Sは、世界初の衛星デジタル放送規格として、日本のBSデジタル以前から各国の衛星放送に採用されました。

DVB-Sの構成は今から見ると素朴で、変調はQPSK固定、誤り訂正はリードソロモン符号と畳み込み符号の連接(R-S(204,188)外符号 + 内側に符号化レート1/2, 2/3, 3/4, 5/6, 7/8のいずれかの畳み込み符号)でした。固定の変調・符号化を1本のキャリアで流す「単一のパイプ」というシンプルな放送モデルです。

しかしDVB-Sは2000年代に入り、いくつかの限界が見えてきました。HDTVや双方向衛星インターネットの需要が高まるにつれて、(1) スペクトル効率が低い(QPSK最大で約1.5 bit/s/Hz)、(2) 雨減衰に対するマージンを静的に確保する必要があり効率が悪い、(3) 衛星インターネット向けのIPトラフィックを柔軟に乗せる仕組みがない、といった課題です。

DVB-S2(2005) — 第2世代

これらの課題を解決するために2005年に標準化されたのがDVB-S2(ETSI EN 302 307-1)です。DVB-S2は3つの大きな技術革新を導入しました。

高次変調の追加: QPSKに加えて、8PSK、16APSK、32APSKという3つの高次変調が追加されました。APSK(Amplitude Phase Shift Keying)は同心円上に位相点を配置する変調で、衛星トランスポンダの非線形特性に強く、PSKや矩形QAMよりも非線形歪みを受けにくいという特徴があります。これにより最大スペクトル効率は約4.5 bit/s/Hzまで上昇しました。

LDPC + BCH連接符号: 内符号としてシャノン限界に近いLDPC符号、外符号としてBCH符号を組み合わせる連接構造を採用しました。LDPC符号の符号長は短いノーマルフレームで16,200ビット、長いノーマルフレームで64,800ビットです。符号化レートは1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10の11種類が用意され、変調との組み合わせで多数の動作点が選べます。

ACM/VCM/CCMの3モード対応: 放送用途のCCM(Constant Coding and Modulation)に加えて、各端末ごとに変調・符号化を変えるACM、時間ごとに切り替えるVCM(Variable Coding and Modulation)が規格化されました。これがDVB-S2が衛星インターネットの基盤として爆発的に普及した最大の理由です。

DVB-S2X(2014) — 拡張規格

DVB-S2が普及した後、より細粒度の動作点と高次変調を求める声が高まり、2014年にDVB-S2X(ETSI EN 302 307-2)が策定されました。S2Xは「Extensions」の意で、S2を破壊することなく上位互換に拡張した規格です。主な拡張点は以下の3つです。

より高次の変調: 64APSK、128APSK、256APSKが追加され、CNR(Carrier-to-Noise Ratio)が高い動作点(衛星間リンク、プロフェッショナル放送など)で最大約5.9 bit/s/Hzまでスペクトル効率を引き上げました。256APSKの所要ES/N0は約20 dB前後と要求が厳しい一方で、ペイバック(容量増加)も大きい動作点です。

より細かいMODCODステップ: S2の28個のMODCODに加えて、特に低CNR領域(VL-SNR: Very Low SNR)と中CNR領域に多数のMODCODが追加され、合計100以上のMODCODが選択可能になりました。ステップが細かいということは、リンク状況の変化にきめ細かく追従できるということであり、ACMの効率が向上します。

ロールオフファクタの拡張: パルス整形フィルタのロールオフ $\alpha$ が、S2の {0.20, 0.25, 0.35} に加えて、S2Xでは {0.05, 0.10, 0.15} が追加されました。狭いロールオフは隣接キャリア間隔を詰められるため、トランスポンダ内のスペクトル密度を向上できます。

ここまでで規格の歴史を駆け足で見ました。次に、ACMの心臓部とも言える「MODCOD」が具体的にどのように構成されているかを掘り下げていきましょう。

MODCODの構成 — 変調 × LDPC符号化レート

MODCODとは

MODCODMODulation and CODing の略で、「変調方式」と「符号化レート」の組み合わせを一意に指定する識別子です。DVB-S2Xでは、各フレームのヘッダ(PLSコード: Physical Layer Signalling)にMODCOD番号が記載されており、受信機はこれを見て該当フレームの変調と符号化レートを切り替えます。

つまり、DVB-S2Xのフレームは「自分がどのMODCODで送られたか」を最初に名乗ってから本体のデータを送る構造です。これにより、フレームごとに変調・符号化を切り替えても受信機が追従できる仕組みになっています。

スペクトル効率の定義

MODCODのスペクトル効率(理論的な情報レートの帯域効率)は次の式で表されます。

$$ \eta = R \cdot m \cdot \frac{1}{1 + \alpha} \quad [\text{bit/s/Hz}] $$

ここで、$R$ は符号化レート(例: 1/2, 9/10)、$m$ は1シンボルあたりのビット数(QPSKなら2、8PSKなら3、16APSKなら4、32APSKなら5、64APSKなら6)、$\alpha$ はロールオフファクタです。最後の $1/(1+\alpha)$ は、シンボルレート $R_s$ に対して実効帯域幅が $(1+\alpha) R_s$ になることに由来する補正項です。

ただし、規格表で示されるスペクトル効率は通常「ロールオフ0」のときの理想値、すなわち $\eta_0 = R \cdot m$ を用います。実際のスループット計算では、ロールオフによる帯域膨張を別途考慮する必要があります。

具体的に、QPSK 1/2($R = 1/2$, $m = 2$)であれば $\eta_0 = 1.0$ bit/s/Hz、8PSK 3/4 であれば $\eta_0 = 2.25$ bit/s/Hz、32APSK 9/10 であれば $\eta_0 = 4.5$ bit/s/Hz となります。

変調コンステレーションの配置

DVB-S2/S2Xで採用されている変調方式と、それぞれの幾何学的な特徴を見ていきましょう。

QPSK: 4点を単位円上に等間隔配置。位相は $\pi/4, 3\pi/4, 5\pi/4, 7\pi/4$。実装が簡単で、低CNR領域の主力です。

8PSK: 8点を単位円上に等間隔配置。位相は $k\pi/4$ ($k=0,1,\ldots,7$)。中CNR領域で使われます。

16APSK: 2重の同心円上に4 + 12点を配置。内側の円半径 $r_1$ と外側の円半径 $r_2$ の比 $\gamma = r_2 / r_1$ は符号化レートごとに最適化されており、$\gamma \approx 2.57$〜$3.15$ の範囲が標準値です。

32APSK: 3重の同心円上に4 + 12 + 16点を配置。$\gamma_1 = r_2/r_1$, $\gamma_2 = r_3/r_1$ が定義され、典型値は $\gamma_1 \approx 2.5$, $\gamma_2 \approx 4.3$ あたりです。

64APSK / 128APSK / 256APSK(S2X追加): より複雑な多重同心円配置で、高CNR領域での効率向上を狙います。

矩形QAM(16-QAM, 64-QAMなど)ではなくAPSKを採用しているのは、衛星トランスポンダのSSPA(固体電力増幅器)やTWTA(進行波管増幅器)が非線形な振幅特性を持つためです。矩形QAMは振幅レベルの種類が多い(16-QAMで3レベル、64-QAMで5レベル)一方、APSKは多重同心円構造のためレベル数が少なく、非線形歪みに対して頑健です。たとえば32APSKは振幅レベルが3種類ですが、64-QAMは5種類です。

ここまでで個々のMODCODの構成要素が見えてきました。次は、ACMが時々刻々と動作するために必要な「動作モード」の概念を整理しておきましょう。

CCM / VCM / ACMの違い

DVB-S2/S2Xには3つの動作モードがあり、それぞれが異なるユースケースを想定しています。直感的な違いを把握すると、システム設計の選択肢が見通しやすくなります。

CCM — Constant Coding and Modulation

CCMは、フレームによらず常に同じMODCODを使う伝統的な放送モードです。送信側は「QPSK 3/4で送り続ける」と決め打ちし、受信側もそれを前提に動作します。

CCMの利点はシンプルさにあります。放送のように1対多(マルチキャスト)で全受信機に同じコンテンツを届ける用途では、最も受信状態が悪い端末でも復号できるよう最悪ケースMODCODを選びます。BS/CS放送、衛星ラジオ、軍用衛星の指揮統制リンクなど、サービス品質を均一に保つことが至上命令の場面ではCCMが選ばれます。

ただし「最悪ケースに合わせる」ということは「平均ケースを犠牲にする」ことでもあり、晴天時の余剰CNRをスループットに変換できないという根本的な非効率を抱えています。

VCM — Variable Coding and Modulation

VCMは、時間ごと・フレームごとに事前計画されたMODCODに切り替える動作モードです。リターンチャネル(受信機から送信側への情報経路)が取れない、あるいは取りたくない場合に使われます。

イメージとしては、列車のダイヤグラムに似ています。各時刻に何のMODCODを使うかが時刻表のように決められており、送信側も受信側もそのスケジュールを共有しています。受信側からのフィードバックは不要で、時計が合っていればよい。

VCMの代表例が深宇宙通信です。月や火星、外惑星の探査機との通信では、片道で数分〜数時間の伝搬遅延があるため、リアルタイムのフィードバック制御は実質的に不可能です。代わりに、探査機の軌道予測から将来の距離・仰角・大気減衰を予測し、「この期間はBPSK 1/2、距離が縮まったらQPSK 3/4に上げる」といったプリスケジューリングを行います。CCSDSのDVB-S2系規格(CCSDS 131.2, 131.3)はこの考え方を継承しています。

ACM — Adaptive Coding and Modulation

ACMは、リターンチャネル経由でリアルタイムに測定されたリンク状態に応じてMODCODを切り替える、本記事の主役です。

イメージとしては、自動車のクルーズコントロールに似ています。上り坂で速度が落ちそうになったらアクセルを踏み増し、下り坂では緩める。リンクが劣化したら符号化を強くし、回復したら効率を上げる、というフィードバック制御を秒〜数百ミリ秒オーダーで行います。

ACMが活躍する典型シーンはHTS/VSATネットワークです。中央のハブから数千〜数万局のVSAT端末に対して個別のMODCODを使えるため、晴れている地域には高効率MODCOD、雨が降っている地域だけ強いMODCODを割り当てる、という「局所最適」が可能になります。

3モードの関係を整理すると、CCM ⊂ VCM ⊂ ACM という包含関係に近い構造になっています。CCMはMODCODが時間方向にも端末方向にも一定、VCMは時間方向に変化するが端末方向には共通、ACMは時間・端末の両方向に独立に変化、というふうに自由度が拡張されていく階層です。

次節では、ACMがMODCODを選ぶときの判断基準である「ES/N0と所要MODCODのマッピング」を具体的な数値で見ていきます。

ES/N0と所要MODCODのマッピング

ESN0の定義

ACMの議論で頻繁に登場する ES/N0 は、「1シンボルあたりのエネルギーと雑音電力密度の比」を表す量です。

$$ \frac{E_s}{N_0} = \frac{P_r}{N_0 R_s} = \frac{P_r}{k T R_s} \quad [\text{dB}] $$

ここで $P_r$ は受信電力、$N_0 = k T$ は雑音電力密度($k$: ボルツマン定数、$T$: 等価雑音温度)、$R_s$ はシンボルレートです。ES/N0は搬送波対雑音比CNRと密接に関連しており、ロールオフを無視すれば $\text{CNR} = E_s/N_0$ となります。

ES/N0が1シンボルあたりで定義されているのは、変調方式によって1シンボルが運ぶビット数が異なるためです。1ビットあたりの量である EB/N0 を使うと変調方式間の比較が直接できる一方、ES/N0を使うとシンボル時間軸での議論(コンステレーション図上の距離など)と整合します。両者は次の関係にあります。

$$ \frac{E_b}{N_0} = \frac{E_s}{N_0} – 10 \log_{10}(m \cdot R) \quad [\text{dB}] $$

ここで $m$ は1シンボルあたりのビット数、$R$ は符号化レートです。たとえばQPSK 1/2では右辺は $10 \log_{10}(2 \times 0.5) = 0$ dBとなり、$E_b/N_0 = E_s/N_0$ ですが、32APSK 9/10では $10 \log_{10}(5 \times 0.9) = 6.5$ dBの差があります。

所要ES/N0の典型値

DVB-S2/S2Xの主要MODCODについて、AWGN通信路での所要ES/N0(PER = $10^{-5}$ の閾値)の代表値を以下にまとめます。これらは規格書(ETSI EN 302 307-1/-2)のシミュレーション結果に基づきます。

MODCOD 変調 符号化レート スペクトル効率 $\eta_0$ [bit/s/Hz] 所要ES/N0 [dB]
MODCOD 1 QPSK 1/4 0.50 $-2.35$
MODCOD 2 QPSK 1/3 0.67 $-1.24$
MODCOD 4 QPSK 1/2 1.00 1.00
MODCOD 7 QPSK 3/4 1.50 4.03
MODCOD 11 QPSK 9/10 1.80 6.42
MODCOD 13 8PSK 3/5 1.80 5.50
MODCOD 15 8PSK 3/4 2.25 7.91
MODCOD 18 8PSK 9/10 2.70 10.98
MODCOD 19 16APSK 2/3 2.67 8.97
MODCOD 22 16APSK 4/5 3.20 11.10
MODCOD 24 16APSK 9/10 3.60 12.89
MODCOD 25 32APSK 3/4 3.75 12.73
MODCOD 27 32APSK 5/6 4.17 13.85
MODCOD 28 32APSK 9/10 4.50 16.05

(DVB-S2X拡張ではさらに低い動作点(VL-SNR領域でQPSK 13/45、$\eta_0 \approx 0.58$、ES/N0 $\approx -2.85$ dB)から高い動作点(256APSK 3/4、$\eta_0 \approx 6.0$、ES/N0 $\approx 21.5$ dB)までが追加されます)

この表から重要なパターンが見えてきます。所要ES/N0が1 dB上がるごとに、概ね 0.3〜0.5 bit/s/Hz のスペクトル効率向上が得られるということです。これはシャノン限界の傾きにある程度沿っており、LDPC符号がシャノン限界に近い性能を発揮していることの表れでもあります。

シャノン限界との比較

DVB-S2X のMODCODは、シャノン限界からどのくらい離れているのでしょうか。AWGN通信路のシャノン容量は

$$ C = B \log_2 (1 + \text{SNR}) \quad [\text{bit/s}] $$

であり、スペクトル効率に直すと

$$ \eta_{\text{shannon}} = \log_2\left(1 + \frac{E_s}{N_0}\right) \quad [\text{bit/s/Hz}] $$

となります。ここで $E_s/N_0$ は真値(dB値ではなく線形値)です。

たとえばES/N0 = 7 dB(線形値で約5.01)であれば、シャノン限界は $\log_2(1 + 5.01) \approx 2.59$ bit/s/Hz です。一方、上の表でES/N0 = 7 dB前後で実用可能なMODCODはQPSK 3/4($\eta_0 = 1.5$, 所要4.03 dB)や8PSK 3/5($\eta_0 = 1.8$, 所要5.50 dB)あたりで、シャノン限界の60〜70%程度が達成できています。DVB-S2Xはシャノン限界の0.7〜0.8倍に近い実用効率を持つ規格であり、その大きな貢献が長符号LDPC + BCHの連接符号構造にあります。

ここまでで「どんなES/N0のときにどのMODCODを使うべきか」のマッピングができました。次に、このマッピングを実際にリアルタイムで動かすACM制御ループの仕組みを見ていきましょう。

ACM動作 — リターンチャネル測定からMODCOD切替まで

制御ループの全体像

ACMは典型的なフィードバック制御系として動作します。制御対象は「衛星リンク」、制御量は「受信品質(ES/N0またはCNR)」、操作量は「使用MODCOD」です。ループの構成要素を順に見ていきましょう。

  1. 受信品質測定(UE側): ユーザー端末(UE: User Equipment、ここではVSAT端末を指します)は、ハブ→UE方向のフォワードリンクで受信したフレームから現在のES/N0を推定します。推定はパイロットシンボル(既知のシンボル系列)に対する受信複素振幅と理想値の差から計算するのが一般的で、推定値は数百ミリ秒〜数秒の時定数で平均化されます。
  2. CN0報告(UE → ハブ): 推定したES/N0をリターンチャネル(UE→ハブ方向)経由でハブに報告します。報告周期は典型的に100 ms〜1 sオーダーで、報告には少数のビット(多くて十数ビット)しか必要としません。
  3. MODCOD決定(ハブ側): ハブは受信したCN0報告に基づき、次に当該UEへ送るフレームのMODCODを決定します。決定ロジックは「報告ES/N0 – マージン > 所要ES/N0」を満たす最も効率の高いMODCODを選ぶ、というのが基本です。
  4. MODCOD適用と通知: 決定したMODCODは、次のフレームのPLSコードに記載して送信されます。受信機はPLSコードを最初に復号して、本体のデータをそのMODCODで復号します。

ループの一巡時間は、リターンチャネルの伝搬遅延+処理遅延の合計で決まります。GEO衛星のハブ↔UE片道遅延が約250 msなので、最速でも往復500 msオーダー、現実的には1〜2秒程度のレイテンシが生じます。これがACM応答の限界であり、急激な減衰変動(例: スコールの開始直後)には追従できないため、後述するマージン設計が必要になります。

量子化されたCN0報告

無限の精度でCN0を報告するのはリターンチャネル帯域の浪費なので、実際には量子化して報告します。DVB-RCS2(DVB-S2のリターンチャネル規格)では、ES/N0報告は通常 $-3$ dB から $+22$ dB の範囲を 0.5 dB ステップで量子化し、約50段階(6ビット)で表現します。

量子化ステップ0.5 dBは、MODCODのES/N0ステップとほぼ同等の精度であり、これより細かくしてもMODCODは変わらないため意味がありません。逆に粗すぎると最適MODCODより1段低いMODCODを選ぶことになり、効率が落ちます。0.5 dBという数値は、報告のオーバーヘッドと効率のバランスをとった工学的選択です。

ヒステリシスとガード時間

MODCODの切替が頻繁すぎるとフレームヘッダのオーバーヘッドや復号器の再同期コストが増えるため、実装では切替にヒステリシスを入れます。たとえば「現MODCODより1段上に上げるには報告ES/N0が所要+2 dB以上で5秒以上連続」「1段下に下げるには所要-0.5 dBで1秒以上連続」といった非対称なルールを設けるのが一般的です。

このヒステリシスにより、瞬間的なフェージングでMODCODを下げてしまったり、雨が止みかけたところで早すぎる切替をしたりすることが防げます。下方切替を早く、上方切替を遅くする非対称設計は、「安全側(強い符号側)に倒れやすく、効率側(弱い符号側)に倒れにくい」という保守的な姿勢の現れです。

ACMの制御ループの仕組みが見えてきたところで、次はこのループが対峙する最大の外乱「降雨減衰」を定量的にモデル化しましょう。

Ka帯雨減衰モデルとACMマージン

降雨減衰の物理

電波が雨を通過するときに減衰する物理は、雨粒による電波の吸収散乱です。雨粒の大きさが波長と同程度かそれより大きくなると、ミー散乱の領域に入り、散乱断面積が急激に大きくなります。Ka帯(30 GHz、波長約10 mm)では、雨粒の典型サイズ(直径1〜5 mm)が波長と同オーダーになるため、降雨減衰が顕著になります。

降雨減衰量の単位距離あたりの値(比減衰)$\gamma_R$ [dB/km] は、降雨強度 $R$ [mm/h] と次のべき乗則で関係づけられます。

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

ここで $k, \alpha$ は周波数・偏波・温度に依存する係数で、ITU-R勧告 P.838 に表として与えられています。たとえば30 GHz・垂直偏波・20℃では $k \approx 0.187, \alpha \approx 1.021$ 程度で、降雨強度 $R = 50$ mm/h(強い豪雨)に対して $\gamma_R \approx 10.4$ dB/km となります。

ITU-R P.618 — スラント路径の総減衰

実際の衛星リンクでは、電波は地表から雨域の上端までのスラント路径を通過します。雨域の高さ(融解層高度)$h_R$ [km] と地上局高度 $h_S$ [km]、仰角 $\theta$ から、スラント路上の実効雨域長 $L_R$ は次のように与えられます。

$$ L_R = \frac{h_R – h_S}{\sin \theta} \quad (\theta \geq 5°) $$

ただし、雨域は一様ではなく空間的に変動するため、ITU-R P.618 では水平方向の減少係数 $r$ を導入して実効路径長 $L_E = r \cdot L_R$ を求めます。$r$ は降雨強度 $R_{0.01}$(年間0.01%超過の降雨強度)と仰角の関数として与えられ、$r < 1$ となります。

最終的な年間0.01%超過の降雨減衰量は

$$ A_{0.01} = \gamma_R \cdot L_E \quad [\text{dB}] $$

として計算されます。さらに任意の超過確率 $p$ [%]($0.001 \leq p \leq 5$)の減衰量は、$A_{0.01}$ にスケーリング係数 $\nu(p)$ を掛けて求めます。

Ka帯における降雨減衰の例

具体的な数値で感覚をつかんでみましょう。東京(北緯35.7度)にあるVSAT局がGEO衛星(東経110度、仰角約47度)からのKa帯ダウンリンク(20 GHz)を受信する場合、ITU-R P.618に基づく年間超過減衰の典型値は次のようなオーダーになります。

  • 1%超過(年間約88時間): 約2 dB
  • 0.1%超過(年間約8.8時間): 約8 dB
  • 0.01%超過(年間約53分): 約18 dB
  • 0.001%超過(年間約5分): 約30 dB

つまり、年間99.99%の可用性を要求すれば18 dBのマージンが必要であり、CCM設計ではこのマージン全体を晴天時のCNR余剰として捨てていることになります。

ACMマージンの考え方

ACMでは、CCMのような「最悪ケース固定マージン」ではなく、ループ応答遅延と推定誤差を吸収する小さなマージンだけを取ります。

ループ応答遅延マージン: GEO衛星のACMループ遅延約1秒の間に、降雨が「ふけ上がる」最大速度は典型的に 1〜2 dB/s 程度です(ITU-Rの動的減衰モデル)。したがってループ遅延中の減衰増加は最大で1〜2 dBとなり、これをマージンとして加算します。

推定誤差マージン: ES/N0推定の誤差は、パイロットシンボルの数や平均化時間にもよりますが、典型的に標準偏差0.3〜0.5 dB程度です。1σではなく2σ程度を見込むと0.6〜1.0 dBが必要です。

MODCOD粒度マージン: MODCOD間のES/N0ステップが約0.5〜1 dBあるため、量子化的に切り上げ・切り下げを行う際の余裕として0.5 dB程度を持たせます。

これらを合計すると、ACMの実用マージンは概ね 2〜3 dB に収まります。CCM設計の18〜20 dBに対し、ACMでは2〜3 dBで済むということは、平均的にはその差分(15〜17 dB)を効率向上に振り向けられるということです。

雨減衰の正体とACMマージンの考え方が見えました。次は、このACMが実際に年間平均スループットをどれだけ改善するのかを定量的に評価してみましょう。

システム容量への効果 — 年間平均スループット

モデル化

ACMの効果を年間平均スループットで定量化するには、以下のステップを踏みます。

  1. 降雨減衰の年間累積分布: ITU-R P.618等から、超過確率 $p(A > a)$ を計算する
  2. 減衰量とES/N0の対応: 晴天時ES/N0から減衰量を引いて、各時点のES/N0を求める
  3. ES/N0と最適MODCODのマッピング: 各ES/N0で最も効率の高いMODCODを選ぶ
  4. 時間平均: 選ばれたMODCODのスペクトル効率を、時間で平均する

数式で書くと、年間平均スペクトル効率は

$$ \bar{\eta}_{\text{ACM}} = \int_0^{\infty} \eta\bigl( (E_s/N_0)_{\text{clear}} – a \bigr) \cdot f(a) \, da $$

ここで $f(a)$ は減衰量 $a$ の確率密度、$\eta(\cdot)$ はES/N0から最適MODCODのスペクトル効率を返す関数です。

CCMの場合は、年間超過確率 $p_{\text{req}}$(要求可用性、たとえば0.01%)以上で繋がるMODCODを固定で使うので

$$ \bar{\eta}_{\text{CCM}} = \eta\bigl( (E_s/N_0)_{\text{clear}} – A_{p_{\text{req}}} \bigr) $$

となり、$A_{p_{\text{req}}}$ は最大の減衰想定値です。

数値例 — 東京GEO Ka帯リンク

具体的な数値感覚を得るために、東京・GEO・Ka帯ダウンリンク・晴天時ES/N0 = 18 dBという条件を想定してみます。

  • CCM設計(年間99.99%可用性): 0.01%超過の減衰 $A_{0.01} \approx 18$ dB を吸収するために、所要ES/N0が0 dB前後のMODCODを選ぶ。これはQPSK 1/2($\eta_0 = 1.0$)あたり。年間平均スペクトル効率: 1.0 bit/s/Hz
  • ACM設計: 晴天時は32APSK 9/10($\eta_0 = 4.5$、所要16 dB)、軽い雨では16APSK 3/4、雨が強まればQPSK系へと段階的に切り替える。降雨確率分布で重みづけて平均すると、年間平均スペクトル効率: 約3.5〜4.0 bit/s/Hz

つまり、ACM導入により年間平均スループットは3.5〜4倍に向上する計算になります。Ku帯(雨減衰が小さい)でも2倍程度、Ka帯やV帯ではさらに大きな効果が得られます。これがACMがHTSや衛星インターネットで必須機能とされている数値的根拠です。

Pythonによる定量評価

降雨減衰の確率分布から、CCMとACMの年間平均スペクトル効率を比較するシンプルなコードを示します。

import numpy as np
import matplotlib.pyplot as plt

# DVB-S2X 主要MODCODの (所要ES/N0 [dB], スペクトル効率 [bit/s/Hz])
modcods = [
    (-2.35, 0.50),   # QPSK 1/4
    (-1.24, 0.67),   # QPSK 1/3
    (1.00, 1.00),    # QPSK 1/2
    (4.03, 1.50),    # QPSK 3/4
    (5.50, 1.80),    # 8PSK 3/5
    (7.91, 2.25),    # 8PSK 3/4
    (8.97, 2.67),    # 16APSK 2/3
    (11.10, 3.20),   # 16APSK 4/5
    (12.89, 3.60),   # 16APSK 9/10
    (12.73, 3.75),   # 32APSK 3/4
    (13.85, 4.17),   # 32APSK 5/6
    (16.05, 4.50),   # 32APSK 9/10
]
modcods = sorted(modcods, key=lambda x: x[0])

def best_modcod_eta(esn0_db, margin_db=2.0):
    """指定ES/N0 [dB]で使える最も効率の良いMODCODのスペクトル効率を返す"""
    eta = 0.0
    for req, e in modcods:
        if esn0_db - margin_db >= req:
            eta = e
    return eta

# 東京GEO Ka帯ダウンリンクの降雨減衰分布(ITU-R P.618の簡略化近似)
# 超過確率 p [%] と減衰 A [dB] のペア
p_arr = np.array([0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1.0, 3.0, 10.0, 30.0, 100.0])
A_arr = np.array([30.0, 23.0, 18.0, 13.0, 8.0, 4.5, 2.0, 0.8, 0.2, 0.05, 0.0])

# 減衰量を等間隔サンプリングし、CDFから時間重みを計算
A_grid = np.linspace(0.0, 35.0, 351)
# 補間で「減衰 >= A となる確率 [%]」を求める
p_exceed = np.interp(A_grid, A_arr[::-1], p_arr[::-1])
p_exceed = np.clip(p_exceed, 0.0, 100.0)
# CDF(その減衰量以下になる確率)= 1 - p_exceed/100
cdf = 1.0 - p_exceed / 100.0
# 差分で各ビンの時間重み
weights = np.diff(cdf, prepend=0.0)
weights = np.clip(weights, 0.0, None)
weights /= weights.sum()  # 正規化

# 晴天時ES/N0 = 18 dB(Ka帯HTSの典型値)
esn0_clear = 18.0

# 各減衰量でのACMスペクトル効率
eta_acm = np.array([best_modcod_eta(esn0_clear - a) for a in A_grid])

# CCMは年間99.99%可用性のMODCOD固定(A_{0.01%} = 18 dB を吸収)
eta_ccm_fixed = best_modcod_eta(esn0_clear - 18.0, margin_db=0.0)
eta_ccm = np.full_like(eta_acm, eta_ccm_fixed)

# 年間平均
mean_eta_acm = np.sum(eta_acm * weights)
mean_eta_ccm = np.sum(eta_ccm * weights)

print(f"晴天時 ES/N0 = {esn0_clear:.1f} dB")
print(f"年間平均スペクトル効率 (CCM, QPSK 1/2固定): {mean_eta_ccm:.2f} bit/s/Hz")
print(f"年間平均スペクトル効率 (ACM): {mean_eta_acm:.2f} bit/s/Hz")
print(f"ACMによる向上倍率: {mean_eta_acm / mean_eta_ccm:.2f}x")

# 可視化
fig, axes = plt.subplots(1, 2, figsize=(13, 5))

# 左: ES/N0と最適MODCODのスペクトル効率
esn0_grid = np.linspace(-5, 20, 251)
eta_grid = np.array([best_modcod_eta(e) for e in esn0_grid])
axes[0].step(esn0_grid, eta_grid, where='post', linewidth=2, color='#2196F3')
for req, e in modcods:
    axes[0].plot(req, e, 'o', color='#F44336', markersize=6)
axes[0].axvline(x=esn0_clear, color='gray', linestyle=':', alpha=0.7)
axes[0].text(esn0_clear + 0.3, 0.3, 'Clear Sky\nES/N0', fontsize=9)
axes[0].set_xlabel('ES/N0 [dB]', fontsize=12)
axes[0].set_ylabel('Spectral Efficiency [bit/s/Hz]', fontsize=12)
axes[0].set_title('Best MODCOD Spectral Efficiency vs ES/N0', fontsize=13)
axes[0].grid(True, alpha=0.3)

# 右: 減衰量分布と各点でのMODCOD選択
ax2 = axes[1]
ax2.plot(A_grid, eta_acm, linewidth=2, color='#4CAF50', label='ACM')
ax2.plot(A_grid, eta_ccm, linewidth=2, color='#F44336', linestyle='--',
         label=f'CCM (QPSK 1/2, fixed)')
ax2.set_xlabel('Rain Attenuation [dB]', fontsize=12)
ax2.set_ylabel('Spectral Efficiency [bit/s/Hz]', fontsize=12)
ax2.set_title('Spectral Efficiency vs Rain Attenuation\n(Clear-sky ES/N0 = 18 dB)',
              fontsize=13)
ax2.legend(fontsize=11)
ax2.grid(True, alpha=0.3)

# 二次軸で時間重み
ax2b = ax2.twinx()
ax2b.fill_between(A_grid, 0, weights * 100, alpha=0.2, color='gray',
                   label='Time fraction')
ax2b.set_ylabel('Time Fraction per dB bin [%]', fontsize=11, color='gray')
ax2b.set_ylim(0, weights.max() * 100 * 1.2)

plt.tight_layout()
plt.savefig('dvb_s2x_acm_capacity.png', dpi=150, bbox_inches='tight')
plt.show()

この計算結果から、ACMの容量改善効果が定量的に確認できます。

  1. CCM設計の保守性: 晴天時ES/N0が18 dBあるにもかかわらず、年間99.99%可用性のためにQPSK 1/2($\eta_0 = 1.0$)固定で運用すると、年間平均スペクトル効率は1.0 bit/s/Hzに張り付きます。実際には大半の時間で多くの余剰CNRを使い切れていません。
  2. ACMの効率向上: ACMでは年間平均スペクトル効率が3.5〜4.0 bit/s/Hz程度まで上がり、CCMの3〜4倍に達します。これは降雨イベントが年間の数%以下の時間でしか起きず、残り95%以上の時間で高効率MODCODを使えるためです。
  3. MODCOD粒度の重要性: 左図のステップ状曲線が滑らかであるほど、ACMはCNR余剰をスループットに効率良く変換できます。DVB-S2Xが多数のMODCODを追加した動機もここにあります。

ここまでで、ACMがDVB-S2X規格の中でどのような役割を担い、どんな技術要素から成り、どれだけの効果をもたらすかが見通せました。最後に全体を整理してまとめます。

まとめ

本記事では、DVB-S2/S2X規格の中核機能である適応符号化変調(ACM)を、雨減衰問題の直感から年間スループット改善の定量評価まで体系的に解説しました。

  • ACMの本質: 晴天時に高効率MODCOD、雨天時に強いMODCODへ動的に切り替えることで、CCM設計の「最悪ケース固定マージン」の無駄を解消する仕組み
  • DVB-S/S2/S2Xの系譜: S(1994、QPSK固定)→ S2(2005、QPSK/8PSK/16APSK/32APSK + LDPC + BCH + ACM)→ S2X(2014、64〜256APSK追加、細粒度MODCOD、狭ロールオフ)
  • MODCODの設計: 変調方式とLDPC符号化レートの組み合わせ。スペクトル効率 $\eta_0 = R \cdot m$ で、シャノン限界の70%程度を実用達成
  • 動作モード: CCM(固定)⊂ VCM(時間変化、深宇宙)⊂ ACM(フィードバック制御、HTS/VSAT)
  • ESN0と所要MODCOD: QPSK 1/4($-2.35$ dB)から32APSK 9/10(16 dB)まで約20 dBの動作レンジ
  • ACM制御ループ: UE側CN0推定 → 量子化報告 → ハブ側MODCOD決定 → PLSコード経由でフレーム単位適用。GEOで1〜2秒の応答時間
  • Ka帯雨減衰: ITU-R P.618ベースで年間99.99%可用性に18 dB前後のマージンが必要。ACMでは2〜3 dBのループマージンで済む
  • 容量効果: 年間平均スペクトル効率がCCM比3〜4倍に向上。これがHTS/VSAT/LEOブロードバンドでACMが標準装備となった根拠

ACMを土台として、現代の衛星通信はさらにビームホッピング(時間方向のビーム切替)、SDN(Software Defined Networking)による動的帯域割当、5G NTN(Non-Terrestrial Networks)との統合といった方向へ進んでいます。これらはいずれも「衛星リソースを動的に最適配分する」という同じ系譜の思想であり、ACMはその出発点と位置づけられます。

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