変調・符号化#11

Costasループ — 抑圧搬送波信号から位相を再生する

現代の高効率リンクは残留搬送波を持たず全電力をデータに注ぎ込む。搬送波が存在しないBPSK/QPSK信号から、I/Q位相検波器の積によって位相誤差のS字カーブを再生するCostasループの仕組みを、pllの線形モデルとの等価性、そして180°/90°の位相アンビギュイティの解消方法とともに数式で理解する。

前提知識: pllpcm-psk-pm

Costasループ抑圧搬送波位相アンビギュイティBPSK/QPSKCCSDS

この回で学ぶこと

PCM/PSK/PMの回で見たように、この伝統的な変調方式は変調指数 Δ\Delta を調整することで、データ側波帯とは別に残留搬送波(データの乗っていない純粋なトーン)をスペクトル中に残していました。そしてPLLの回では、この残留搬送波を地上局が位相同期ループで追尾し続けることで、微弱な信号でも安定に受信でき、ドップラーシフトから探査機の速度まで測定できることを見ました。

しかし、この残留搬送波にはコストがあります。PCM/PSK/PMの電力配分の式 Pcarrier=PTcos2(Δ)P_{\text{carrier}} = P_T\cos^2(\Delta)Pdata=PTsin2(Δ)P_{\text{data}} = P_T\sin^2(\Delta) を思い出してください。搬送波トラッキングのために電力の一部を「純粋なトーン」に割り当てる以上、その分だけデータに使える電力は必ず目減りします。深宇宙のように受信電力が極めて弱く、確実な搬送波トラッキングそのものが生命線であるミッションでは、この犠牲は合理的でした。しかし、近地球軌道の高速データリンクや、リンクマージンに余裕があるミッションでは話が変わります。送信電力をすべてデータに注ぎ込み、搬送波成分をゼロにしてしまう方が、同じ電力でより高いデータレートを達成できるのです。この設計思想を**サプレスドキャリア方式(抑圧搬送波方式)**と呼びます。

ところが、ここで新しい問題が生まれます。搬送波が存在しないなら、地上局のPLLは一体「何に」ロックすればよいのでしょうか。PLLの回で扱った通常のPLLは、受信信号の中に純粋なトーン(残留搬送波)が存在することを前提に、位相検波器がそのトーンの位相を検出する仕組みでした。サプレスドキャリア信号にはそもそもロックすべきトーンが存在しません。この回では、この問題を解決するCostasループを扱います。I(In-phase)とQ(Quadrature)という2つの位相検波器を組み合わせ、データが乗ったままの信号から搬送波位相を「掘り起こす」仕組みを数式で導出し、その代償として生じる**位相アンビギュイティ(位相不確定性)**という新しい問題と、その解決方法までを見ていきます。

直感的な導入: 搬送波を消すと何が起きるか

BPSK変調されたサプレスドキャリア信号を考えます。データビット列 d(t){1,+1}d(t) \in \{-1, +1\} が、直接RF搬送波の位相に乗っている状態です。

r(t)=Ad(t)cos(ω0t+θ)r(t) = A\, d(t) \cos(\omega_0 t + \theta)

PCM/PSK/PMの回s(t)=Acos(2πfct+θ(t))s(t) = A\cos(2\pi f_c t + \theta(t)) と見比べると、これは変調指数 Δ=π/2\Delta = \pi/2 の極限に相当します。そのときの電力配分の式を思い出すと Pcarrier=PTcos2(π/2)=0P_{\text{carrier}} = P_T\cos^2(\pi/2) = 0Pdata=PTsin2(π/2)=PTP_{\text{data}} = P_T\sin^2(\pi/2) = P_T となり、まさに「搬送波電力ゼロ、全電力データ」という状態です。

この信号のスペクトルを観察すると、中心周波数 f0f_0 にPCM/PSK/PMで見られたような鋭いスパイク(残留搬送波)はもう立っていません。d(t)d(t)±1\pm 1 を頻繁に切り替えるため、スペクトルはデータの側波帯だけがなだらかに広がった、中心に谷のある形になります(実際 d(t)=±1d(t)=\pm1 の二乗平均は瞬間的に打ち消し合うため、位相反転のたびに搬送波成分は理論上完全にキャンセルされます)。地上局のPLLがロックしようにも、ロックすべき安定したトーンがスペクトル上に存在しないのです。

ここで単純なアイデアが浮かびます。「r(t)r(t) を2乗すればどうか」。r(t)2=A2d(t)2cos2(ω0t+θ)=A2cos2(ω0t+θ)r(t)^2 = A^2 d(t)^2 \cos^2(\omega_0 t + \theta) = A^2 \cos^2(\omega_0 t+\theta) となり、d(t)2=1d(t)^2=1 なのでデータ成分が消え、2ω02\omega_0 の位置に純粋なトーンが現れます(2逓倍ループ、squaring loopと呼ばれる方式の原理です)。これは動作しますが、非線形演算による雑音の増大や、2ω02\omega_0 から ω0\omega_0 に戻す際に 180°180° の不確定性が原理的に残るといった課題があります。Costasループは、この2乗演算と数学的に等価な効果を、I/Q2つの線形な位相検波器のという、よりノイズ特性に優れた形で実現する回路です。

Costasループの構成: I/Q位相検波器

Costasループは、VCOが生成する位相基準を2つ用意します。1つは受信搬送波の推定位相 θ^\hat\theta に同期させた I(In-phase, 同相)基準 cos(ω0t+θ^)\cos(\omega_0 t + \hat\theta)、もう1つはそれと直交する Q(Quadrature, 直交)基準 sin(ω0t+θ^)\sin(\omega_0 t + \hat\theta) です。受信信号 r(t)=Ad(t)cos(ω0t+θ)r(t) = A\,d(t)\cos(\omega_0 t + \theta) をそれぞれに掛け合わせ、ローパスフィルタ(LPF)で高周波成分 2ω02\omega_0 を除去します。

位相誤差を PLLの回と同じ記法で ϕθθ^\phi \equiv \theta - \hat\theta とおきます。

Iブランチ:

r(t)cos(ω0t+θ^)=Ad(t)cos(ω0t+θ)cos(ω0t+θ^)=Ad(t)2[cosϕ+cos(2ω0t+θ+θ^)]r(t)\cos(\omega_0 t + \hat\theta) = A\,d(t)\cos(\omega_0 t+\theta)\cos(\omega_0 t+\hat\theta) = \frac{A\,d(t)}{2}\big[\cos\phi + \cos(2\omega_0 t + \theta+\hat\theta)\big]

LPFで 2ω02\omega_0 成分を落とすと、

I(t)=A2d(t)cosϕI(t) = \frac{A}{2}\, d(t)\cos\phi

Qブランチ:

r(t)sin(ω0t+θ^)=Ad(t)cos(ω0t+θ)sin(ω0t+θ^)=Ad(t)2[sin(2ω0t+θ+θ^)sinϕ]r(t)\sin(\omega_0 t + \hat\theta) = A\,d(t)\cos(\omega_0 t+\theta)\sin(\omega_0 t+\hat\theta) = \frac{A\,d(t)}{2}\big[\sin(2\omega_0 t+\theta+\hat\theta) - \sin\phi\big]

同様にLPF後、

Q(t)=A2d(t)sinϕQ(t) = -\frac{A}{2}\, d(t)\sin\phi

直感的には、I(t)I(t) は「復調しようとしているデータそのもの」(ϕ=0\phi=0 に近ければ I(t)(A/2)d(t)I(t)\approx (A/2)d(t) となり、これがそのままビット判定に使えます)、Q(t)Q(t) は「位相がどれだけズレているかを教えてくれる漏れ成分」です。ϕ=0\phi=0 で完全にロックしていれば Q(t)=0Q(t)=0 となり、ϕ\phi がズレるとその分だけ Q(t)Q(t) にエネルギーが漏れ出します。Costasループの核心は、この I(t)I(t)Q(t)Q(t) を掛け合わせることで、データの符号 d(t)d(t) に依存しない、ϕ\phi だけの関数を作り出せるという点にあります。

誤差信号の導出: S字カーブの再生

I・Qブランチの出力を掛け合わせて、位相検波器の誤差信号 e(t)e(t) を作ります。

e(t)I(t)Q(t)=(A2d(t)cosϕ)(A2d(t)sinϕ)=A24d(t)2sinϕcosϕe(t) \equiv I(t)\cdot Q(t) = \left(\frac{A}{2}d(t)\cos\phi\right)\left(-\frac{A}{2}d(t)\sin\phi\right) = -\frac{A^2}{4}\, d(t)^2 \sin\phi\cos\phi

ここで d(t){1,+1}d(t) \in \{-1,+1\} なので d(t)2=1d(t)^2 = 1 が常に成り立ちます。データ変調そのものが消えてしまうのがこの積演算の本質です。積和公式 sinϕcosϕ=12sin2ϕ\sin\phi\cos\phi = \frac{1}{2}\sin2\phi を使うと、

e(t)=A28sin(2ϕ)e(t) = -\frac{A^2}{8}\sin(2\phi)

符号は基準信号の取り方(cos\cos/sin\sinのどちらをI・Qに割り当てるか、ループ内で反転を入れるかどうか)に依存する慣習の問題なので、以降は負帰還が安定に働くように整えられているものとして、大きさに着目した

e(t)=Kdsin(2ϕ),KdA28e(t) = K_d'\sin(2\phi), \qquad K_d' \equiv \frac{A^2}{8}

という形で扱います。これが Costas ループのS字カーブ(S-curve)、すなわち位相検波特性です。PLLの回で扱った通常の位相検波器の特性 vd(t)=Kdsinϕv_d(t) = K_d\sin\phi と見比べると、決定的な違いが1つあります。引数が ϕ\phi ではなく 2ϕ2\phi になっていることです。この「2倍」が、この回のもう1つの主題である位相アンビギュイティの直接の原因になります(後述)。

線形モデルとpllとの等価性

ロックが確立し位相誤差が小さい範囲では、sin(2ϕ)2ϕ\sin(2\phi)\approx 2\phi と近似できます。したがって ϕ=0\phi=0 の近傍で、

e(t)Kd2ϕ=Kdϕ,Kd2Kd=A24e(t) \approx K_d' \cdot 2\phi = K_d\,\phi, \qquad K_d \equiv 2K_d' = \frac{A^2}{4}

これはPLLの回で導入した線形位相検波器モデル vd(t)Kdϕ(t)v_d(t) \approx K_d\phi(t) と全く同じ形です。つまり、一度ロックしてしまえば、Costasループの閉ループ挙動は通常のPLLと数学的に区別がつきません。ループフィルタ F(s)F(s) とVCOゲイン KoK_o を組み合わせれば、開ループ伝達関数、閉ループ伝達関数、誤差伝達関数はすべてPLLの回で導出した形をそのまま流用できます。

G(s)=KdKoF(s)s,H(s)=G(s)1+G(s),He(s)=1H(s)G(s) = \frac{K_d K_o F(s)}{s}, \qquad H(s) = \frac{G(s)}{1+G(s)}, \qquad H_e(s) = 1-H(s)

2次Type-IIループ(PIフィルタ F(s)=(1+sτ2)/(sτ1)F(s)=(1+s\tau_2)/(s\tau_1))を使えば、自然角周波数 ωn\omega_n、ダンピング係数 ζ\zeta、ループ雑音帯域幅

BL=ωn2(ζ+14ζ)B_L = \frac{\omega_n}{2}\left(\zeta + \frac{1}{4\zeta}\right)

もすべて同じ設計式で扱えます。一定のドップラーシフトに対して定常位相誤差がゼロになること、一定のドップラーレートに対しても誤差が有限値 2πf˙/ωn22\pi\dot f/\omega_n^2 に収まることといった、PLLの回で終値定理を使って導いた結論も、この等価線形モデルの上でそのまま成立します。Costasループを設計するエンジニアは、実質的には「等価ゲイン Kd=A2/4K_d = A^2/4 を持つPLL」として BLB_Lζ\zeta を選定していると言えます。

位相アンビギュイティ: なぜ180°180°回転してロックしうるのか

S字カーブが sin(2ϕ)\sin(2\phi) であることの意味を、もう一度考えてみましょう。sin(2ϕ)\sin(2\phi)ϕ\phi について周期 π\pi の関数です。ゼロ点(ループが安定にロックしうる点)は、

2ϕ=nπϕ=0, π, 2π, 2\phi = n\pi \quad \Longrightarrow \quad \phi = 0,\ \pi,\ 2\pi,\ \dots

のすべてに存在し、しかも ϕ=0\phi=0ϕ=π\phi=\pi のどちらの点でも、e(t)e(t) の傾きの符号(負帰還が安定に働く方向)は同じです。実際、ϕ=π\phi=\pi の近傍で ϕ=π+δ\phi = \pi + \delta とおくと sin(2ϕ)=sin(2π+2δ)=sin(2δ)2δ\sin(2\phi) = \sin(2\pi+2\delta) = \sin(2\delta) \approx 2\delta となり、ϕ=0\phi=0 の近傍と全く同じ線形挙動を示します。

つまり Costasループにとって、ϕ=0\phi=0(正しい位相)と ϕ=π\phi=\pi(180°180°ズレた位相)は完全に区別のつかない、等価に安定な2つのロック点なのです。ループ自身には「今どちらにロックしているか」を知る術がありません。これが**位相アンビギュイティ(位相不確定性)**です。

ϕ=π\phi=\pi にロックしてしまうと何が起きるでしょうか。I(t)=A2d(t)cosπ=A2d(t)I(t) = \frac{A}{2}d(t)\cos\pi = -\frac{A}{2}d(t) となり、復調されたビット列の符号がすべて反転してしまいます。つまりCostasループの出力だけを見ていては、受信したビット列全体が反転しているのか、正しいのかを判定できません。BPSKでは 180°180°(π\pi)、QPSKでは後述するように 90°90°(π/2\pi/2)刻みの複数の点で同じ現象が起こります。

位相アンビギュイティの解消

このアンビギュイティはCostasループ自体では解決できないため、その上位のレイヤー(データ処理側)で解消する必要があります。実務上は主に2つの方法が使われます。

方法1: 差動符号化 (differential encoding)。 データを絶対的な位相(0か1か)ではなく、シンボル間の位相遷移として符号化します。たとえば送信側で

ck=ck1bkc_k = c_{k-1} \oplus b_k

のように、送信ビット bkb_k を1つ前の符号化ビット ck1c_{k-1} とのXORで符号化し(NRZ-M符号や差動BPSK/DBPSKと呼ばれる系列)、受信側では逆に

b^k=c^kc^k1\hat b_k = \hat c_k \oplus \hat c_{k-1}

と、連続する2つの復調ビットの差分だけからデータを復元します。ループが ϕ=0\phi=0 にロックしていようと ϕ=π\phi=\pi にロックしていようと、c^k\hat c_k は全ビット一様に反転するだけなので、その差分(XOR)を取れば反転の影響は消えます。代償として、1つのシンボル誤りが出力の2ビットに影響するため、ビット誤り率がおよそ2倍に悪化する(Pb,diff2PbP_{b,\text{diff}} \approx 2P_b、高SNR極限で)というトレードオフがあります。

方法2: 既知シンボル(ユニークワード/アタッチド同期マーカー)による解消。 CCSDSのテレメトリフレーム構造では、各フレームの先頭に受信機が事前に知っている既知のビットパターン(ASM: Attached Sync Marker、ユニークワードとも呼ばれる)が付加されています。受信機はロック後、0°/180°0°/180°(BPSKなら2通り、QPSKなら 0°/90°/180°/270°0°/90°/180°/270° の4通り)のすべての可能な位相回転について復調結果とASMパターンとの相関を取り、最もよく一致する回転を選んでその後のデータ全体に適用します。この方法は差動符号化のようなビット誤り率の劣化を伴わない代わりに、フレーム同期の仕組みと一体で設計する必要があります。実運用では、差動符号化とASMによる補助検出を併用することも一般的です。

QPSK Costasループへの拡張

QPSKでは、独立な2つのビット系列 Id(t),Qd(t){1,+1}I_d(t), Q_d(t) \in \{-1,+1\} を同時に、直交する2つの搬送波成分に乗せます。

r(t)=A[Id(t)cos(ω0t+θ)Qd(t)sin(ω0t+θ)]r(t) = A\big[I_d(t)\cos(\omega_0 t+\theta) - Q_d(t)\sin(\omega_0 t+\theta)\big]

BPSKのときと同様にI/Qブランチを復調すると(位相誤差 ϕ=θθ^\phi=\theta-\hat\theta)、

I(t)=A2[Idcosϕ+Qdsinϕ],Q(t)=A2[QdcosϕIdsinϕ]I(t) = \frac{A}{2}\big[I_d\cos\phi + Q_d\sin\phi\big], \qquad Q(t) = \frac{A}{2}\big[Q_d\cos\phi - I_d\sin\phi\big]

という、(Id,Qd)(I_d, Q_d) を角度 ϕ\phi だけ回転させた形が現れます。QPSK用のCostas誤差検出器は、BPSKの単純な積の代わりに、判定値の符号を使う次の形が標準的に使われます。

e(t)=sgn(I(t))Q(t)sgn(Q(t))I(t)e(t) = \operatorname{sgn}\big(I(t)\big)\,Q(t) - \operatorname{sgn}\big(Q(t)\big)\,I(t)

ϕ=0\phi=0 を代入すると I(t)=A2IdI(t)=\frac{A}{2}I_dQ(t)=A2QdQ(t)=\frac{A}{2}Q_d なので、sgn(I(t))=Id\operatorname{sgn}(I(t))=I_dsgn(Q(t))=Qd\operatorname{sgn}(Q(t))=Q_d(Id,Qd=±1I_d,Q_d=\pm1 なので符号関数はそのまま元の値を返します)。したがって

e(t)ϕ=0=IdA2QdQdA2Id=0e(t)\Big|_{\phi=0} = I_d\cdot\frac{A}{2}Q_d - Q_d\cdot\frac{A}{2}I_d = 0

たしかにゼロ点です。同じ計算を ϕ=π/2\phi=\pi/2 で行うと I(t)=A2QdI(t)=\frac{A}{2}Q_dQ(t)=A2IdQ(t)=-\frac{A}{2}I_d となり、

e(t)ϕ=π/2=sgn(Qd)(A2Id)sgn(Id)(A2Qd)=A2IdQd+A2IdQd=0e(t)\Big|_{\phi=\pi/2} = \operatorname{sgn}(Q_d)\left(-\frac{A}{2}I_d\right) - \operatorname{sgn}(-I_d)\left(\frac{A}{2}Q_d\right) = -\frac{A}{2}I_dQ_d + \frac{A}{2}I_dQ_d = 0

こちらもゼロ点です。同様に ϕ=π\phi=\piϕ=3π/2\phi=3\pi/2 でもゼロ点になることが確認できます(演習問題で確認してください)。つまりQPSK Costasループの誤差信号は ϕ\phi に対して周期 π/2\pi/2 の構造を持ち、90°90°刻みの4通りの位相(0°,90°,180°,270°0°,90°,180°,270°)がすべて等価に安定なロック点になります。これがQPSKにおける位相アンビギュイティが180°180°ではなく90°90°刻みの4通りになる理由です。BPSKと同様、差動符号化(この場合は差動QPSK/DQPSK)やASMによる相関検出で解消します。

実務での使われ方

サプレスドキャリア方式とCostasループの組み合わせは、リンクマージンに比較的余裕があり、かつ高いデータレートが求められる現代の宇宙通信リンクで広く標準になっています。

  • CCSDS勧告では、CCSDS 401.0-B (Radio Frequency and Modulation Systems) にBPSK/QPSK/OQPSKの抑圧搬送波変調が規定され、CCSDS 131.0-B (TM Synchronization and Channel Coding) には差動符号化とASM(アタッチド同期マーカー)によるフレーム同期・位相アンビギュイティ解消の手順が定められています。
  • 近地球・高データレートミッションでは、たとえばNASAのTDRSS(Tracking and Data Relay Satellite System)経由の高速科学データダウンリンクや、地球観測衛星のXバンド/Kaバンド高速リンク(数百Mbps〜Gbpsクラス)で、抑圧搬送波QPSK/8PSKとLDPC・ターボ符号などの強力な誤り訂正符号を組み合わせた方式が標準的に使われています。残留搬送波を持たないぶん、同じ送信電力でより高いシンボルレートを確保でき、地上局のダウンリンク回線容量を最大化できます。
  • 一方でPCM/PSK/PMの回で触れた通り、極めて微弱な信号を扱う深宇宙ミッションの一部(特にクリティカルフェーズや超遠方天体探査)では、独立してロック状態を確認できる残留搬送波の運用上の価値が今なお大きく、両方式は目的に応じて使い分けられています。実際、多くの最新ミッションでも、コマンドアップリンクや初期取得(アクイジション)フェーズには残留搬送波方式、確立後の高速サイエンスデータダウンリンクには抑圧搬送波+Costasループ方式、というハイブリッド運用が取られることがあります。

演習問題

  1. BPSK Costasループの誤差信号 e(t)=I(t)Q(t)e(t) = I(t)Q(t) を、I(t)=A2d(t)cosϕI(t)=\frac{A}{2}d(t)\cos\phiQ(t)=A2d(t)sinϕQ(t)=-\frac{A}{2}d(t)\sin\phi から出発して、積和公式 sinϕcosϕ=12sin2ϕ\sin\phi\cos\phi=\frac12\sin2\phi を使い自分の手で導出してください。d(t)2=1d(t)^2=1 がどこで効いているかを明示すること。
  2. QPSK Costas誤差検出器 e(t)=sgn(I(t))Q(t)sgn(Q(t))I(t)e(t)=\operatorname{sgn}(I(t))Q(t)-\operatorname{sgn}(Q(t))I(t) について、ϕ=π\phi=\piϕ=3π/2\phi=3\pi/2 の場合に本文と同様の計算を行い、どちらもゼロ点になることを確認してください。
  3. BPSKリンクにおいて差動符号化を使わずCostasループが ϕ=π\phi=\pi(180°)にロックしてしまった場合、復調ビット列に何が起きるか説明し、差動符号化(NRZ-M符号)がなぜこの問題を解決できるのかを、ck=ck1bkc_k=c_{k-1}\oplus b_k の符号化規則を踏まえて数式で示してください。
  4. Costasループの等価線形ゲイン Kd=A2/4K_d=A^2/4 を用い、PLLの回で導いた2次Type-IIループのループ雑音帯域幅の式 BL=ωn2(ζ+14ζ)B_L=\frac{\omega_n}{2}(\zeta+\frac{1}{4\zeta}) を踏まえて、受信信号振幅 AA が半分になった(受信電力が1/4になった)とき、同じ BLB_L を維持するためにはループフィルタのパラメータ(τ1,τ2\tau_1,\tau_2、あるいはVCOゲイン)をどう調整すればよいか、方針を議論してください。

まとめと次回予告

Costasループは、I/Qという2つの線形な位相検波器の出力を掛け合わせるという簡潔な仕組みだけで、搬送波成分を持たないサプレスドキャリア信号からでも位相誤差のS字カーブ Kdsin(2ϕ)K_d'\sin(2\phi) を再生し、PLLの回で確立した線形モデルにそのまま接続できることを見ました。その代償として、sin(2ϕ)\sin(2\phi) の周期性に起因する180°180°(BPSK)/90°90°刻み(QPSK)の位相アンビギュイティが生じますが、これは差動符号化やアタッチド同期マーカー(ASM)といったデータ処理層の工夫によって解消できることも確認しました。これでPCM/PSK/PMの残留搬送波方式と、サプレスドキャリア+Costasループ方式という、深宇宙・近地球通信における2つの代表的な搬送波再生アプローチの両方を数式付きで理解したことになります。

次回は、ここまで扱ってきた「搬送波の位相をどう追いかけるか」という問題から一歩進んで、**パルス整形(ナイキストフィルタ)を扱う予定です。シンボルレートを上げていくと、隣り合うシンボル同士の波形が重なり合って干渉するシンボル間干渉(ISI)**が問題になります。これを理論上ゼロにできる送信波形の条件(ナイキストの基準)と、実際のリンクで使われるロールオフフィルタの設計を見ていきます。

参考文献

  • J. H. Yuen (ed.), Deep Space Telecommunications Systems Engineering, JPL Publication 82-76
  • F. M. Gardner, Phaselock Techniques, 3rd ed., Wiley
  • A. J. Viterbi, Principles of Coherent Communication, McGraw-Hill
  • CCSDS 401.0-B, Radio Frequency and Modulation Systems, Part 1: Earth Stations and Spacecraft
  • CCSDS 131.0-B, TM Synchronization and Channel Coding
  • J. G. Proakis, M. Salehi, Digital Communications, 5th ed., McGraw-Hill