変調・符号化#79

SNR推定とリンク適応 — ACMを動かす「今の回線品質」の測り方

適応符号化変調(ACM)がMODCODを正しく選ぶには、受信機が瞬時SNRを正確に知っている必要がある。パイロット支援型とブラインド型(M2M4法)のSNR推定を数式で比較し、推定精度とサンプル数のトレードオフ、ピンポン現象を防ぐヒステリシス設計までを追う。

前提知識: ACM (適応符号化変調) — チャネル状態に応じてMODCODを動かし続ける

ACMSNR推定リンク適応MODCODヒステリシス

この回で学ぶこと

前回学んだACM(Adaptive Coding and Modulation、適応符号化変調)は、回線のSNR(信号対雑音電力比)が良いときには高次変調・高符号化率のMODCOD(変調方式と符号化率の組)を選んで大容量のデータを送り、SNRが悪化すればより頑健なMODCODに切り替えることで、リンクマージンを無駄にせずスループットを最大化する仕組みでした。この議論には、実は暗黙の前提が1つ隠れていました。「受信機は現在のSNRを知っている」という前提です。

考えてみれば当然ですが、ACMの意思決定ロジックは「今のSNRがいくつか」という数値をインプットとして初めて動きます。この数値が不正確であれば、話は一気に崩れます。実際のSNRより高い値を誤って報告すれば、受信機の能力を超えたMODCODが選ばれて誤り訂正が破綻し、フレームが丸ごと失われます。逆に低く見積もりすぎれば、本来使えるはずの高効率なMODCODを使わずに帯域を無駄にします。つまり ACMの性能は、根底にあるSNR推定の精度によって上限が決まるのです。

この回では、受信機が実際にどうやって瞬時SNRを推定するのかを、データ支援型(Data-Aided, DA)と非データ支援型(Non-Data-Aided, NDA、いわゆるブラインド推定)の2つのアプローチに分けて数式で追います。さらに、推定に使うサンプル数と推定精度のトレードオフ、そして推定したSNRから実際にMODCODを切り替える段になって現れる「ピンポン現象」とそれを防ぐヒステリシス設計まで扱います。地味に聞こえるかもしれませんが、この推定と意思決定のロジックこそが、ACMというアイデアを絵に描いた餅で終わらせず、実際の受信機で動くシステムにしている縁の下の力持ちです。

直感的な全体像

SNRを推定するとはどういうことか、直感的に考えてみましょう。受信機が観測できるのは、雑音にまみれた複素ベースバンド信号のサンプル列 rkr_k だけです。

rk=sk+nkr_k = s_k + n_k

ここで sks_k は送信されたシンボル(に対応する受信信号成分)、nkn_k は加法性白色ガウス雑音(AWGN)です。SNRを求めるということは、この1本の観測列 {rk}\{r_k\} から、信号成分の電力 Ps=E[sk2]P_s = E[|s_k|^2] と雑音成分の電力 Pn=E[nk2]P_n = E[|n_k|^2] を、別々に切り分けて推定するということです。

しかし受信機には sks_knkn_k を直接見分ける手段がありません。見えているのは両方が混ざった rkr_k だけです。ここで2つの戦略が考えられます。

  1. データ支援型 (DA): 送信側があらかじめ受信側と「答え合わせ」ができる既知のシンボル列(パイロット信号・プリアンブル・ユニークワードなど)を混ぜて送る。受信機はその既知シンボルが「本来どうあるべきか」を知っているので、実際の受信値との差分から雑音成分だけを直接抜き出せる。
  2. 非データ支援型 (NDA): 既知シンボルを一切使わず、受信信号 rkr_k そのものの統計的な性質(モーメント)だけから、信号成分と雑音成分の電力を数学的に分離する。

DAは精度が高い代わりに、パイロットシンボルの分だけ実データを送る帯域を消費します。NDAは帯域を消費しない代わりに、統計的な仮定(変調方式の特性など)に依存し、一般に同じサンプル数ではDAより精度が劣ります。実際のACMシステムでは、この2つを状況に応じて使い分ける、あるいは組み合わせることになります。

データ支援型(DA)SNR推定

まず送信側がパイロットシンボル(値が既知のシンボル)aka_kNN 個、周期的にフレーム中に挿入しているとします。ak=1|a_k|=1 に正規化されているとしましょう。受信側での対応する観測値は

rk=Psakejθ+nk,k=1,,Nr_k = \sqrt{P_s}\, a_k \, e^{j\theta} + n_k, \qquad k = 1, \dots, N

です(θ\theta はキャリア位相オフセット、nkn_k は複素円対称ガウス雑音、nkCN(0,Pn)n_k \sim \mathcal{CN}(0, P_n))。位相同期(前々回までに扱ったPLLやCostasループ)がすでに確立しており θ0\theta \approx 0 とみなせる場合、モーメント法による素直な推定量は次のように組み立てられます。

まず信号振幅の推定は、既知シンボルとの相関(整合フィルタ的な平均)を取ります。

A^=1Nk=1NRe{rkak}\hat{A} = \frac{1}{N}\sum_{k=1}^{N} \mathrm{Re}\{r_k a_k^{*}\}

これは受信サンプルを既知のパイロット値でデコリレートしてから平均する操作で、雑音は平均化によって 1/N1/\sqrt{N} のオーダーに縮小されるのに対し、信号成分は akak=1a_k a_k^* = 1 でコヒーレントに積み上がるため、NN が大きいほど A^Ps\hat A \to \sqrt{P_s} に収束します。信号電力の推定値は

P^s=A^2\hat{P}_s = \hat{A}^2

雑音電力は、推定した信号成分を受信値から差し引いた残差の電力として求めます。

P^n=1Nk=1NrkA^ak2\hat{P}_n = \frac{1}{N}\sum_{k=1}^{N} \left| r_k - \hat{A}\, a_k \right|^2

以上から、データ支援型SNR推定量は

SNR^DA=P^sP^n\widehat{SNR}_{DA} = \frac{\hat{P}_s}{\hat{P}_n}

として得られます。この推定量の強みは、sks_knkn_k を統計的な仮定なしに直接切り分けられる点にあります。既知シンボルという「正解」を握っているので、原理的には非常に低いSNR(それこそ0 dBを大きく下回るような深宇宙リンクの領域)でも動作します。弱点は、パイロットシンボルの分だけ実データのスループットを削ることと、パイロット密度が低いと NN が稼げず精度が落ちることです。

非データ支援型(NDA)SNR推定 — M2M4法

パイロットを一切使わず、受信信号そのものの統計量だけからSNRを求める代表的な手法が M2M4法(2次・4次モーメント法) です。名前の通り、受信信号の2次モーメント(平均電力)と4次モーメントの2つを使います。

受信サンプルの2次モーメント(全電力)は

M2E[rk2]=Ps+PnM_2 \equiv E\big[|r_k|^2\big] = P_s + P_n

信号成分と雑音成分が統計的に独立でそれぞれ平均ゼロであることから、これは単純に両者の電力の和になります。次に4次モーメントを考えます。

M4E[rk4]=E[sk+nk4]M_4 \equiv E\big[|r_k|^4\big] = E\big[|s_k+n_k|^4\big]

sks_knkn_k が独立かつ円対称であることを使ってこれを展開すると、交差項の奇数次モーメントが消え、

M4=κsPs2+4PsPn+κnPn2M_4 = \kappa_s P_s^2 + 4 P_s P_n + \kappa_n P_n^2

という形になります。ここで κs=E[sk4]/Ps2\kappa_s = E[|s_k|^4]/P_s^2κn=E[nk4]/Pn2\kappa_n = E[|n_k|^4]/P_n^2 はそれぞれ信号・雑音の尖度(クルトシス)です。円対称複素ガウス雑音の4次モーメントは既知の値 κn=2\kappa_n = 2 を持ちます。信号側は変調方式によって決まり、たとえばBPSK/QPSKのような定包絡線(constant modulus)変調では sk2|s_k|^2 が常に一定値 PsP_s を取るため

κs=1(定包絡線PSK系変調の場合)\kappa_s = 1 \quad (\text{定包絡線PSK系変調の場合})

となります。この条件下で M4M_4 の式は

M4=Ps2+4PsPn+2Pn2M_4 = P_s^2 + 4P_sP_n + 2P_n^2

一方、M22=(Ps+Pn)2=Ps2+2PsPn+Pn2M_2^2 = (P_s+P_n)^2 = P_s^2 + 2P_sP_n + P_n^2 なので、2M222M_2^2 を作ると

2M22M4=(2Ps2+4PsPn+2Pn2)(Ps2+4PsPn+2Pn2)=Ps22M_2^2 - M_4 = \left(2P_s^2+4P_sP_n+2P_n^2\right) - \left(P_s^2+4P_sP_n+2P_n^2\right) = P_s^2

きれいに交差項が消え、PsP_s だけが残ります。したがって

Ps=2M22M4,Pn=M2PsP_s = \sqrt{2M_2^2 - M_4}, \qquad P_n = M_2 - P_s

実際には M2,M4M_2, M_4 は母集団のモーメントであり、受信機は有限サンプル NN から標本モーメント M^2=1Nrk2\hat M_2 = \frac{1}{N}\sum |r_k|^2M^4=1Nrk4\hat M_4 = \frac{1}{N}\sum |r_k|^4 を計算してこれに代入します。

SNR^M2M4=P^sP^n=2M^22M^4M^22M^22M^4\widehat{SNR}_{M2M4} = \frac{\hat{P}_s}{\hat{P}_n} = \frac{\sqrt{2\hat{M}_2^2 - \hat{M}_4}}{\hat{M}_2 - \sqrt{2\hat{M}_2^2 - \hat{M}_4}}

これがM2M4法によるブラインドSNR推定量です。既知シンボルを1つも使わず、受信信号の統計的な「形」(モーメント比)だけから信号と雑音を分離しているのがポイントです。ただし、この導出は変調方式の尖度 κs\kappa_s を既知の定数として使っている点に注意してください。QAMのように定包絡線でない変調では κs1\kappa_s \neq 1 となるため、変調方式ごとに異なる係数を使った式に修正する必要があります。またM2M4法は低SNR領域(おおむね0 dB以下)では平方根の中身が負に近づいて推定が不安定になりやすく、DA法に比べて実用上のSNR下限が高いことも知っておくべき制約です。

推定精度とサンプル数のトレードオフ

DA・NDAいずれの推定量も、共通してある性質を持っています。推定に使うサンプル数 NN を増やすほど、推定値のばらつき(分散)が小さくなるという性質です。

直感的な理由はシンプルです。P^s\hat P_sM^2,M^4\hat M_2, \hat M_4 はいずれも「NN個の独立な確率変数の標本平均」という形をしています。一般に、分散 σ2\sigma^2 を持つ独立同分布な確率変数 X1,,XNX_1,\dots,X_N の標本平均 Xˉ=1NXk\bar X = \frac{1}{N}\sum X_k の分散は

Var(Xˉ)=σ2N\mathrm{Var}(\bar{X}) = \frac{\sigma^2}{N}

というよく知られた関係に従います。P^s\hat P_sP^n\hat P_n(あるいは M^2\hat M_2M^4\hat M_4)はいずれもこの形の標本平均なので、それぞれの分散も 1/N1/N に比例して縮小します。

Var(P^s)1N,Var(P^n)1N\mathrm{Var}(\hat{P}_s) \propto \frac{1}{N}, \qquad \mathrm{Var}(\hat{P}_n) \propto \frac{1}{N}

SNR^=P^s/P^n\widehat{SNR} = \hat P_s / \hat P_nP^s,P^n\hat P_s, \hat P_n の非線形な関数(比)ですが、NN が十分大きいときは**デルタ法(1次のテイラー展開による誤差伝播)**を使って分散を近似できます。f(Ps,Pn)=Ps/Pnf(P_s, P_n) = P_s/P_n として、

Var(SNR^)(fPs)2Var(P^s)+(fPn)2Var(P^n)=1Pn2Var(P^s)+Ps2Pn4Var(P^n)\mathrm{Var}(\widehat{SNR}) \approx \left(\frac{\partial f}{\partial P_s}\right)^2 \mathrm{Var}(\hat{P}_s) + \left(\frac{\partial f}{\partial P_n}\right)^2 \mathrm{Var}(\hat{P}_n) = \frac{1}{P_n^2}\mathrm{Var}(\hat{P}_s) + \frac{P_s^2}{P_n^4}\mathrm{Var}(\hat{P}_n)

右辺の Var(P^s)\mathrm{Var}(\hat P_s)Var(P^n)\mathrm{Var}(\hat P_n) がそれぞれ 1/N1/N に比例するため、結局

Var(SNR^)C(SNR)N\mathrm{Var}\big(\widehat{SNR}\big) \approx \frac{C(SNR)}{N}

という関係が成り立ちます。ここで C(SNR)C(SNR) は真のSNR値(と使う推定量の種類)に依存する係数で、NN には依存しません。この関係は「標準偏差は 1/N1/\sqrt{N} で縮小する」ことを意味し、たとえば推定のばらつきを半分にしたければサンプル数を4倍にする必要がある、という平方根則がここから出てきます。

この関係は、ACMシステムの設計に直接効いてくる重要なトレードオフを生みます。

  • NN を大きくする(パイロット数を増やす、あるいはNDA推定の観測窓を長く取る)と、SNR推定の分散が下がり、MODCOD選択の判断がより正確になります。しかし平均化には時間がかかるため、SNRが実際に変動する速さ(フェージングの時定数)に対して推定の更新が追いつかなくなる恐れがあります。またDA法の場合、NN を増やすことはパイロットシンボルの増加、すなわち実データに使えるスループットの低下に直結します。
  • NN を小さくすると、SNRの急な変化に素早く追従できますが、推定値そのものが雑音でばたつき、次に述べるMODCOD切り替えの誤判断(ピンポン現象)を招きやすくなります。

つまりPLLのループ帯域幅 BLB_L が「静けさ」と「俊敏さ」のトレードオフを支配していたのと構造的によく似た形で、SNR推定における観測窓の長さ NN もまた「精度」と「追従性」のトレードオフを支配しているのです。

MODCOD切り替えとヒステリシス設計 — ピンポン現象を防ぐ

推定したSNRが手に入ったら、次はそれをもとに実際に使うMODCODを決める段階です。単純には、あらかじめ各MODCOD mm に対して「これ以上のSNRがあれば使ってよい」という閾値 γm\gamma_m を、γ1<γ2<<γM\gamma_1 < \gamma_2 < \cdots < \gamma_M の順に並べておき、

MODCODを m に選ぶ    γmSNR^<γm+1\text{MODCODを } m \text{ に選ぶ} \iff \gamma_m \le \widehat{SNR} < \gamma_{m+1}

というルールで機械的に選ぶことが考えられます。しかし、これをそのまま実装すると深刻な問題が起きます。前節で見た通り SNR^\widehat{SNR} には常に有限の分散によるばらつきが乗っているため、真のSNRがちょうど境界値 γm\gamma_m 付近に留まっていると、推定値は閾値をまたいで上下に揺れ続けます。その結果、MODCODが mmm+1m+1 の間を短時間に何度も切り替わってしまう現象が起きます。これをピンポン現象と呼びます。

ピンポン現象は単なる非効率ではなく実害を伴います。MODCODが切り替わるたびに、送受信機は変調器・復調器・符号器・復号器の再同期(場合によってはフレーム同期のやり直し)が必要になり、その間データ転送が一時的に途切れます。切り替えが頻発すれば、この同期オーバーヘッドがスループットを蝕み、ACMを導入した意味そのものが薄れてしまいます。

この問題を防ぐ標準的な設計手法がヒステリシス(履歴依存性)の導入です。上りと下りで異なる閾値を使い、切り替えに「デッドゾーン」を設けます。具体的には、MODCOD mm から m+1m+1格上げする条件と、m+1m+1 から mm格下げする条件を別々のマージン付き閾値で定義します。

格上げ(mm+1):SNR^>γm+1+δup\text{格上げ}(m \to m+1): \quad \widehat{SNR} > \gamma_{m+1} + \delta_{\text{up}} 格下げ(m+1m):SNR^<γm+1δdown\text{格下げ}(m+1 \to m): \quad \widehat{SNR} < \gamma_{m+1} - \delta_{\text{down}}

この2つの閾値 γm+1δdown\gamma_{m+1}-\delta_{\text{down}}γm+1+δup\gamma_{m+1}+\delta_{\text{up}} の間に幅 δup+δdown\delta_{\text{up}}+\delta_{\text{down}} のデッドゾーンができ、SNR^\widehat{SNR} がこの範囲内でばらついている限り、MODCODは切り替わらずに現状を維持します。

マージン δ\delta をどう決めるかは、前節で導いた推定量の標準偏差 σSNR^=Var(SNR^)\sigma_{\widehat{SNR}} = \sqrt{\mathrm{Var}(\widehat{SNR})} と直接結びつきます。SNR^\widehat{SNR} の推定誤差がおおむねガウス分布に従うと仮定すれば、マージンを標準偏差の何倍に取るかで、意図しない誤切り替えの確率を制御できます。

δkσSNR^,k=23 程度\delta \approx k \cdot \sigma_{\widehat{SNR}}, \qquad k = 2\text{–}3 \text{ 程度}

kk を大きく取るほど誤切り替えの確率は下がりますが(たとえば k=3k=3 ならガウス近似で誤判定確率はおよそ0.1%程度)、一方でデッドゾーンが広がるということは、真のSNRが実際に改善しても、より高効率なMODCODへの格上げが遅れる(リンクマージンを過剰に残したまま非効率なMODCODを使い続ける)ことも意味します。したがってヒステリシスマージン δ\delta の設計もまた、「切り替えの安定性」と「リンク効率への追従性」のトレードオフそのものであり、これは推定に使うサンプル数 NN の選び方(前節)と表裏一体の設計問題です。NN を増やして σSNR^\sigma_{\widehat{SNR}} を下げられれば、同じ誤切り替え確率をより小さな δ\delta で達成でき、デッドゾーンを狭めて効率よくMODCODを追従させられます。

実際のシステムでは、これに加えて時間方向のヒステリシス(閾値を一瞬でもまたいだだけでは切り替えず、一定時間 TholdT_{\text{hold}} 以上その状態が継続することを要求する、いわゆるデバウンス処理)や、瞬時推定値ではなく指数移動平均などで平滑化した SNR\overline{SNR} を切り替え判断に使う方式もよく組み合わされます。

SNR[n]=αSNR^[n]+(1α)SNR[n1],0<α<1\overline{SNR}[n] = \alpha \, \widehat{SNR}[n] + (1-\alpha)\,\overline{SNR}[n-1], \qquad 0 < \alpha < 1

平滑化係数 α\alpha を小さくするほど平滑化(低域通過)の効果が強まり、これもまた推定窓 NN やヒステリシスマージン δ\delta と同じ「安定性 vs 追従性」の設計軸に連なるパラメータです。

実務での使われ方

商用・準商用の衛星通信システムでは、パイロットシンボルベースのSNR推定が広く実装されています。代表例がDVB-S2/DVB-S2X規格で、物理層フレーム(PLFRAME)の先頭に付くPLヘッダーに加えて、フレーム中に一定間隔でパイロットブロック(既知のシンボル列)が挿入されており、復調器はこれを使ってキャリア位相・周波数オフセットの補正だけでなく、SNR推定にも利用します。とりわけACMが本来力を発揮する低SNR領域(強い符号化利得を要する変調・符号の組み合わせが使われる領域)では、NDA推定の精度低下が問題になりやすいため、パイロットに基づくDA推定が重視されます。

CCSDSにおいても、CCSDS 131.2-B (Flexible Advanced Coding and Modulation Scheme for High Rate Telemetry Applications) が、高能率符号化変調方式とともに、フレーム内へのパイロットシンボル挿入を規定しており、近地球(near-Earth)リンクにおけるACM運用の物理層基盤を与えています。

ACMシステム全体を俯瞰すると、SNR推定はフィードバックループの中の1つの構成要素として位置づけられます。典型的な流れは次のようになります。

  1. 受信機がRFフロントエンド・復調・シンボル同期を経て、パイロットシンボル(またはブラインド統計量)からSNRを推定する。
  2. 推定値を(必要に応じて平滑化した上で)ヒステリシス付きの閾値ロジックに通し、次に要求すべきMODCODを決定する。
  3. 決定したMODCOD要求を、リターンチャネル(上り回線、あるいは制御チャネル)を使って送信側に通知する。
  4. 送信側は通知されたMODCODに従って、以降のフレームの変調方式・符号化率を切り替える。

このループには往復伝搬遅延(RTT)が必ず入り込みます。静止衛星(GEO)を介した地上の衛星ブロードバンド回線であればRTTはおよそ0.5秒程度で、フィードバックはほぼリアルタイムに機能します。しかし深宇宙探査機との通信では話が大きく変わります。地球から探査機までの片道光伝搬時間が数分から数時間に達するミッションでは、「今この瞬間のSNRを地上局に伝えて、探査機側のMODCODを変えてもらう」というクローズドループの応答時間そのものが、SNRの変動時間スケール(たとえば大気シンチレーションや降雨減衰による数秒〜数十秒のフェード)よりずっと長くなってしまいます。そのため深宇宙リンクでは、瞬時のフィードバックに頼るACMではなく、リンクバジェット計算や気象予報・仰角プロファイルに基づいた予測的なMODCOD選択、あるいは変化の遅い実効SNR(降雨減衰のように分〜時間オーダーで変動する成分)にのみ反応する、より緩やかなACMが用いられる傾向があります。SNR推定とヒステリシス設計の考え方そのものは共通ですが、ループの応答速度をリンクの伝搬遅延という物理的な制約に合わせて設計しなければならない点は、深宇宙通信ならではの事情だと言えるでしょう。

演習問題

  1. データ支援型SNR推定において、パイロットシンボル数を N=100N=100 から N=400N=400 に増やした。推定量の標準偏差 σSNR^\sigma_{\widehat{SNR}} はおおよそ何倍になるか、Var(SNR^)1/N\mathrm{Var}(\widehat{SNR}) \propto 1/N の関係を使って答えてください。
  2. あるNDA(M2M4法)推定で、受信信号の標本モーメントが M^2=3.0\hat M_2 = 3.0M^4=14.0\hat M_4 = 14.0 と測定された(定包絡線PSK変調を仮定)。P^s=2M^22M^4\hat P_s = \sqrt{2\hat M_2^2 - \hat M_4}P^n=M^2P^s\hat P_n = \hat M_2 - \hat P_s の式を使って SNR^M2M4\widehat{SNR}_{M2M4} を計算してください。
  3. あるACMシステムのSNR推定量の標準偏差が σSNR^=0.3\sigma_{\widehat{SNR}} = 0.3 dBだった。ピンポン現象を抑えるために k=3k=3(誤切り替え確率を十分小さくする)でヒステリシスマージンを設計する場合、格上げ閾値と格下げ閾値の間のデッドゾーンの幅(dB)はいくらになるか求めてください。
  4. なぜ深宇宙探査機とのリンクでは、地上の衛星ブロードバンド回線のような瞬時フィードバックベースのACMがそのままでは機能しにくいのか。この回で学んだSNR推定・ヒステリシス設計の内容と、RTT(往復伝搬遅延)の観点を踏まえて自分の言葉で説明してください。

まとめと次回予告

ACMは「今のSNRを知っている」ことを前提に成り立つ仕組みであり、その前提を支えているのが本回で見たSNR推定です。データ支援型はパイロットシンボルとの相関から信号・雑音電力を直接切り分け、非データ支援型(M2M4法)は受信信号の2次・4次モーメントの組み合わせから統計的に同じ分離を行います。どちらの手法でも、推定に使うサンプル数 NN を増やせば分散は 1/N1/N で縮小しますが、それは同時に応答速度の低下やスループット損失とのトレードオフを意味します。そして推定したSNRを実際のMODCOD切り替え判断に使う段になると、推定誤差そのものに起因するピンポン現象を防ぐために、ヒステリシスマージンという形でもう1段のトレードオフ設計が必要になることも見ました。

次回は少し話題を変え、測距・追跡カテゴリの新しいトピックとして、探査機が自分自身の位置と速度をどう知るかというGNSS(全球測位衛星システム)搭載航法を扱う予定です。地球近傍を飛行する探査機やGNSS衛星自身がどのように測位を行っているかという視点は、これまで扱ってきた地上局主導の測距・追尾とはまた違った角度から、探査機の「自分の居場所を知る」問題に光を当ててくれるはずです。

参考文献

  • D. R. Pauluzzi, N. C. Beaulieu, “A Comparison of SNR Estimation Techniques for the AWGN Channel,” IEEE Transactions on Communications, vol. 48, no. 10, 2000
  • ETSI EN 302 307-1/-2, Digital Video Broadcasting (DVB); Second Generation framing structure, channel coding and modulation systems for Broadcasting, Interactive Services, News Gathering and other broadband satellite applications (DVB-S2/S2X)
  • CCSDS 131.2-B, Flexible Advanced Coding and Modulation Scheme for High Rate Telemetry Applications
  • J. G. Proakis, M. Salehi, Digital Communications, 5th ed., McGraw-Hill
  • DSN Telecommunications Link Design Handbook, DSN No. 810-005