変調・符号化#69

FHSS — 周波数ホッピング拡散スペクトラムとジャミング耐性

搬送波周波数そのものをPN系列で高速に切り替えるFHSSの仕組みを、Slow/Fast FHの分類・dehop同期・部分帯域ジャマーに対する最悪ケース性能劣化の数式とともに理解し、DSSSとの違い、深宇宙通信でほぼ使われない理由を見る。

前提知識: 直接拡散スペクトラム拡散(DSSS) — 帯域を犠牲にして頑健性を買う

FHSS周波数ホッピング耐妨害性PN系列Bluetooth

この回で学ぶこと

前回学んだ**DSSS(Direct Sequence Spread Spectrum、直接拡散)**は、高速なチップ列を掛け合わせることで信号帯域そのものを広げ、受信側の相関処理によって帯域内に紛れ込んだ狭帯域妨害波や干渉波を薄めて弾く、というアプローチでした。搬送波の周波数自体は一貫して同じ場所に留まり続け、「広い帯域の中に信号を薄く塗り広げる」のがDSSSの発想です。

これに対して今回扱う FHSS (Frequency Hopping Spread Spectrum、周波数ホッピング拡散スペクトラム) は、まったく異なる発想を取ります。搬送波の周波数そのものを、あらかじめ決めた広い帯域の中で、疑似ランダムなパターンに従って高速に切り替え続けるのです。ある瞬間には f1f_1、次の瞬間には f37f_{37}、その次は f5f_5……というように、送信機と受信機だけが知っている順序で周波数を飛び回ります。傍受者やジャマー(妨害者)から見れば、信号は「今どこにいるか分からない、絶えず動き回るターゲット」になります。

この回では、FHSSの心臓部であるホッピングパターンの生成方法、ホップレートによる分類(Slow FHとFast FH)、送受信機間でホップのタイミングを合わせる同期の問題、そして「部分帯域ジャマー」という現実的な妨害モデルに対する最悪ケースの性能劣化を数式で追います。最後にDSSSとの本質的な違いを整理し、なぜ深宇宙通信ではFHSSがほとんど使われないのかという実務上の理由も見ていきます。

直感的な全体像

DSSSとFHSSの違いを一言でたとえるなら、DSSSは「声を潜めて広い部屋全体にささやき続ける」戦略、FHSSは「決まった順番で部屋の中の椅子を高速に飛び移りながら話す」戦略です。

具体的には、利用可能な帯域幅 WssW_{ss} をあらかじめ MM 個の狭いチャネル(周波数スロット)に分割しておきます。送信機は、ThT_h 秒ごとに、MM個の中から1つのチャネルを疑似ランダムに選び、その周波数でごく短時間( ドウェル(dwell) と呼びます)だけデータを送ります。受信機は送信機とまったく同じ疑似ランダム系列をあらかじめ共有しているため、送信機がどのチャネルに移動するかを事前に知っており、自分の受信周波数(局部発振器)も同じタイミングで同じ順序に切り替えていきます。これを dehop(デホップ) と呼びます。dehopが正しく行われれば、受信機からは信号がずっと1つの固定中間周波数にいるように見え、通常の狭帯域復調がそのまま適用できます。

一方、この系列を知らない第三者から見ると、信号は MM個のチャネルの間を絶えず飛び回るため、どこか1つのチャネルだけをずっと聞いていても、ほとんどの時間は何も受からず、たまにしか信号を捉えられません。これがFHSSの秘匿性・耐妨害性の直感的な源泉です。

ホッピングパターンの生成: PN系列と周波数テーブル

ホッピングパターンは、DSSSのチップ列と同様に、PN系列(擬似雑音系列、たとえば最大長線形帰還シフトレジスタ、LFSR) によって生成されます。ただしDSSSでは1チップごとに ±1\pm1 の値を出力してベースバンド信号に掛けていたのに対し、FHSSではPN生成器が kk ビットずつの単語(ワード)を吐き出し、その単語を周波数テーブルの索引として使う、という点が異なります。

cn{0,1,,M1},M=2kc_n \in \{0, 1, \dots, M-1\}, \qquad M = 2^k

cnc_nnn 番目のホップで選ばれるチャネル番号で、PN生成器の出力を kkビットごとに区切って得られる擬似ランダムな整数列です。この cnc_n を使って、送信周波数は

f(t)=f0+cnΔf,nTht<(n+1)Thf(t) = f_0 + c_n \cdot \Delta f, \qquad nT_h \le t < (n+1)T_h

と、ホップ周期 ThT_h ごとに切り替わります。ここで f0f_0 は帯域の下端、Δf\Delta f はチャネル間隔(隣接チャネルへの漏れ込みを避けるため、1チャネルあたりのシンボルレートに見合った帯域幅以上に取る必要があります)です。全体で使用する拡散帯域幅は

Wss=MΔfW_{ss} = M \, \Delta f

となり、これがDSSSにおける拡散後の帯域幅に対応する量です。この周波数の切り替えを実現するハードウェアが周波数シンセサイザ(あるいは高速に周波数を切り替えられる局部発振器)で、cnc_n が変わるたびに、シンセサイザは指定された周波数へマイクロ秒オーダーで安定して飛び移る必要があります。この切り替えに要する時間(セトリングタイム)はホップ周期 ThT_h に対して十分小さくなければならず、実際のFHSSシステム設計ではシンセサイザの性能がホップレートの上限を事実上決めています。

Slow FHとFast FH

ホップレート Rh=1/ThR_h = 1/T_h とデータのシンボルレート Rs=1/TsR_s = 1/T_s の大小関係によって、FHSSは大きく2種類に分類されます。

低速ホッピング(Slow FH)。 ホップ周期がシンボル周期よりずっと長く(ThTsT_h \gg T_s、すなわち RhRsR_h \le R_s)、1回のホップの間に複数のシンボルが送られる方式です。

Slow FH:ThTs=Ns1  (1ホップあたり Ns シンボル)\text{Slow FH:} \qquad \frac{T_h}{T_s} = N_s \ge 1 \ \ (\text{1ホップあたり } N_s \text{ シンボル})

回路が単純で、シンセサイザに要求される切り替え速度も緩やかですが、1回のホップが妨害されると、そのホップに含まれる NsN_s 個のシンボルすべてが失われるリスクを持ちます。

高速ホッピング(Fast FH)。 逆にホップ周期がシンボル周期より短く(ThTsT_h \ll T_s、すなわち RhRsR_h \ge R_s)、1シンボルの送信中に複数回ホップする方式です。

Fast FH:TsTh=L1  (1シンボルあたり L ホップ)\text{Fast FH:} \qquad \frac{T_s}{T_h} = L \ge 1 \ \ (\text{1シンボルあたり } L \text{ ホップ})

Fast FHでは、1つのシンボルの情報が LL個の独立したホップ(周波数)に分散して繰り返し送られるため、受信機は LL個のドウェルからの観測値を**非コヒーレント合成(たとえばエネルギー加算や多数決)**して1つのシンボル判定を下します。これは次節で見るように、部分帯域ジャマーに対する周波数ダイバーシチ(多様性)を生み、LL次のダイバーシチ利得を得られるという利点があります。ただしシンセサイザには非常に高速な切り替え性能が要求され、実装コストは大きく跳ね上がります。

dehop同期: ホップエポックを追跡する

FHSSが機能するためには、受信機のdehop用局部発振器が、送信機のホッピングパターンと時刻・系列位相の両方で一致していなければなりません。これはDSSSにおけるPN符号の位相同期(チップタイミング同期)と本質的に同じ種類の問題ですが、FHSSでは連続的なチップ位相ではなく、離散的なホップエポック(ホップの切り替わり時刻)の整合が問題になります。

同期は通常2段階で行われます。

  1. 獲得(Acquisition): 受信機がまだホップエポックの位置を知らない状態から、既知のプリアンブル(同期用のホッピングパターンの一部)を使って粗い時刻・系列位相を探索し、大まかな整合を得る段階。DSSSのチップ位相探索と同様、これは基本的にサーチ(探索)問題であり、系列長やホップレートに応じて獲得に要する時間が決まります。
  2. 追尾(Tracking): いったん粗く合ったあと、送受信機のクロックのわずかなずれ(ドリフト)によって生じる細かいタイミング誤差を、前回学んだPLLと同じ発想のフィードバックループで追い続ける段階。ここでは連続的な位相ではなく離散的なホップ切り替え時刻の誤差 δ\delta(送信側の実際のホップ切り替わりタイミングと、受信機のdehopローカル発振器の切り替わりタイミングの差)を誤差信号として、受信機側のホップクロックを微調整し続けます。

タイミング誤差 δ\delta がホップ間のガードタイム(意図的に設けられた不使用区間)を超えると、dehopミキサーの出力に隣接する2つのホップの成分が混入する「ホップ遷移またぎ(straddle)」損失が生じ、そのシンボルのSNRが劣化します。したがって実務上のホップ設計では、シンセサイザのセトリングタイムに、クロックドリフトに対する追尾余裕を上乗せしたガードタイムを確保することが不可欠です。

ジャミング耐性: 部分帯域ジャマーに対する最悪ケース性能

FHSSの真骨頂は、部分帯域ジャマー (partial-band jammer) という現実的な妨害モデルに対する性能評価に現れます。ジャマーは総送信電力 JJ を持っていますが、MM個すべてのチャネルを常時妨害する電力はなく、そのうち割合 ρ\rho (0<ρ10 < \rho \le 1)のチャネル(帯域幅で言えば ρWss\rho W_{ss})だけに電力を集中させる、という賢い戦略を取るとします。ジャマーがどの ρ\rho を選ぶかは受信機からは分からず、逆にジャマーも送信機がどのホップにいつ来るかを知らないため、平均すると受信機の各ホップは確率 ρ\rho でジャミングを受けます。

ジャミングを受けたチャネルでの実効雑音電力密度は、ジャマーの電力 JJ を妨害対象帯域 ρWss\rho W_{ss} に均等に広げたものなので、

NJ=JρWssN_J = \frac{J}{\rho\, W_{ss}}

となります。ここで非コヒーレント2値FSK(周波数偏移変調)による復調を仮定し、熱雑音を無視してジャミングだけを考える最悪ケースを考えます。非コヒーレントBFSKのビット誤り率は一般に Pb=12eEb/(2N0)P_b = \tfrac12 e^{-E_b/(2N_0)} という形を取るので、ジャミングを受けたホップでのビット誤り率は N0N_0NJN_J に置き換えて、

Pb(jammed)=12exp ⁣(Eb2NJ)=12exp ⁣(ρEbWss2J)P_b(\text{jammed}) = \frac{1}{2}\exp\!\left(-\frac{E_b}{2N_J}\right) = \frac12\exp\!\left(-\frac{\rho E_b W_{ss}}{2J}\right)

平均送信電力に対するジャミング電力の比を ΓEbWss/J\Gamma \equiv E_b W_{ss}/J(ジャマーが全帯域に電力を均等分散した場合の実効的な Eb/N0E_b/N_0 に相当する量)と定義すると、ジャミングを受けなかったホップの誤りは無視できるとして、平均ビット誤り率は

Pˉb(ρ)=ρ12eρΓ/2\bar P_b(\rho) = \rho \cdot \frac12\, e^{-\rho\Gamma/2}

と書けます。ジャマーはこの Pˉb(ρ)\bar P_b(\rho)最大化するように ρ\rho を選ぶと考えるのが、最悪ケース解析の立場です。ρ\rho について微分してゼロと置くと、

ddρ(ρeρΓ/2)=eρΓ/2(1ρΓ2)=0ρ=2Γ\frac{d}{d\rho}\Big(\rho\, e^{-\rho\Gamma/2}\Big) = e^{-\rho\Gamma/2}\left(1 - \frac{\rho\Gamma}{2}\right) = 0 \quad \Longrightarrow \quad \rho^\star = \frac{2}{\Gamma}

(Γ2\Gamma \ge 2 のとき。Γ<2\Gamma < 2 なら ρ=1\rho^\star=1、すなわちジャマーは全帯域を妨害するのが最適になります。)Γ2\Gamma \ge 2 の場合にこの最悪の ρ\rho^\star を代入すると、

Pˉb(ρ)=2Γ12e1=e1Γ0.368Γ\bar P_b(\rho^\star) = \frac{2}{\Gamma}\cdot\frac12\, e^{-1} = \frac{e^{-1}}{\Gamma} \approx \frac{0.368}{\Gamma}

という結果が得られます。この式は、FHSSの耐ジャミング性を語る上で最も有名な結果の1つです。注目すべきは、通常のAWGNチャネルであればビット誤り率は Γ\Gamma(実効SNRに相当)に対して指数関数的に減少する(eΓ/2e^{-\Gamma/2} のように)のに対し、賢い部分帯域ジャマーを相手にすると、誤り率はわずか 1/Γ1/\Gamma にしか減少しないという点です。これは劇的な性能劣化であり、「拡散すれば安全」という単純な理解が通用しないことを示しています。

この弱点を緩和する実務上の対策が2つあります。

  • 符号化とインターリーブ: 部分帯域ジャミングによる誤りは特定のホップに集中する(バースト的な)誤りなので、誤り訂正符号(畳み込み符号やRS符号)と、誤りを時間的に分散させるインターリーブを組み合わせることで、ジャムされたホップの誤りをジャムされなかったホップの正しいビットで薄めて訂正できます。これにより実効的な性能は指数関数的減少に近づけることができます。
  • Fast FHによるダイバーシチ: 前節のFast FHのように1シンボルを LL個の独立したホップに分散して送れば、ジャマーは同じシンボルを潰すために LL個のホップのうち過半数を同時に妨害する必要が生じ、部分帯域ジャマーが最悪ケース戦略を取りにくくなります。

DSSSとの比較

同じ「スペクトラム拡散」という枠組みに属しながら、DSSSとFHSSは処理利得の得方も実装の性質もかなり異なります。

  • 処理利得の起源: DSSSの処理利得はチップレートと情報レートの比 Wss/RbW_{ss}/R_b から連続的な相関処理によって得られますが、FHSSの「処理利得」は本質的にチャネル数 M=Wss/ΔfM = W_{ss}/\Delta f という組み合わせ的な広さ、すなわちジャマーが取り得る狙い所の多さから得られます。前節の結果が示す通り、FHSS単体の耐ジャミング性は 1/Γ1/\Gamma という緩やかな減少にとどまり、DSSSの相関利得のような滑らかな指数的改善ではありません。
  • 実装の複雑さ: DSSSの受信機は、拡散帯域全体をカバーする広帯域A/D変換と、チップレートで動作する相関器(あるいは整合フィルタ)を必要とし、コード位相の探索は連続的なチップオフセット空間で行われます。一方FHSSの受信機は、各ドウェル区間では狭帯域処理で済み、瞬時的な回路の帯域幅はDSSSよりずっと狭くて済みますが、その代わり高速かつ正確な周波数シンセサイザが必須になります。
  • 周波数捕捉の速さ: DSSSのコード獲得は連続的なチップ位相(通常はチップレート RcR_c に応じた非常に細かい粒度)を探索するのに対し、FHSSの獲得はホップエポック(ホップレート RhR_h に応じた、通常はずっと粗い粒度)を探索すればよいため、一般に初期同期の獲得はFHSSの方が高速に行えることが多いという実務上の利点があります。

実務での使われ方

FHSSは軍事通信の分野で古くから使われてきました。米軍の戦術無線 SINCGARS (Single Channel Ground and Airborne Radio System) は約30MHz帯でホッピングを行い、HAVE QUICKはUHF帯の軍用機通信でジャミング耐性を確保するために設計されたFHSS方式です。いずれも、本節で見た部分帯域ジャマーのような能動的な電子妨害(ECM)を相手にすることを前提とした設計であり、FHSSが元々持つ「相手にどこにいるか悟らせない」という秘匿性・耐妨害性の恩恵を強く受ける用途です。

民生分野では Bluetooth (Bluetooth Classic) が代表例です。2.4GHz帯を1MHz間隔で79チャネルに分割し、最大1600ホップ/秒という高速なホッピングを行います。近年のBluetoothは AFH (Adaptive Frequency Hopping) という機能を備えており、Wi-Fiなど周囲の他システムが使用しているチャネルを検出してホッピングパターンから動的に除外することで、限られた2.4GHz帯を複数のシステムで共存させています。これは元々のジャミング耐性という発想とは少し違う、周波数帯共存(coexistence)のための周波数敏捷性という応用です。

一方、深宇宙探査機との通信では、FHSSはほとんど使われません。理由は複数あります。

  • 周波数割り当ての制約: 深宇宙通信用の周波数帯はITU(国際電気通信連合)によって狭い帯域(たとえばXバンド下り約8400〜8450MHzなど)に厳格に割り当てられており、各国宇宙機関間の相互運用(IOAGなどの国際調整)のもとで固定的なチャネルプランが運用されています。FHSSが前提とする「広い帯域の中を自由に飛び回る」という発想自体が、そもそも深宇宙用に確保された帯域幅とは相容れません。
  • コヒーレントドップラー追尾との非両立: 前回のPLLの回で見た通り、深宇宙リンクの精密な軌道決定は、地上局PLLが探査機の残留搬送波を連続的・位相コヒーレントに追尾し続けることに支えられています。搬送波周波数を離散的に飛び回らせるFHSSは、この連続的な位相追尾の前提を根本的に壊してしまい、精密なドップラー計測・レンジング(測距)に不可欠なコヒーレンス(位相の連続性)を維持できません。
  • 脅威モデルの違い: FHSSが対抗しようとしている脅威は「積極的に妨害してくる敵」ですが、深宇宙通信が戦っている相手は基本的に熱雑音であり、悪意あるジャマーではありません。したがって深宇宙リンクの設計投資は、周波数敏捷性ではなく、大型アンテナ・低雑音増幅器・強力な誤り訂正符号(LDPC・ターボ符号)による符号化利得の追求に向けられます。

演習問題

  1. 拡散帯域幅 Wss=80W_{ss} = 80 MHz、チャネル間隔 Δf=1\Delta f = 1 MHz のFHSSシステムがある。利用可能なチャネル数 MM を求め、PN生成器に必要な最小ビット数 kk(M2kM \le 2^k を満たす最小の kk)を求めてください。
  2. あるFHSSシステムで、シンボルレート Rs=1000R_s = 1000 シンボル/秒、ホップレート Rh=4000R_h = 4000 ホップ/秒であるとき、これはSlow FHとFast FHのどちらに分類されるか、また1シンボルあたりのホップ数 LL を求めてください。
  3. 部分帯域ジャマーに対する非コヒーレントBFSKの最悪ケース平均ビット誤り率について、Γ=EbWss/J=20\Gamma = E_b W_{ss}/J = 20 dB(真数に直して計算)のときの最悪ケースの妨害割合 ρ\rho^\star と、そのときの Pˉb(ρ)\bar P_b(\rho^\star) を求めてください。また、同じ Γ\Gamma を通常のAWGNのみ(ジャミングなしで Γ\GammaEb/N0E_b/N_0 とみなす)の非コヒーレントBFSK誤り率 12eΓ/2\tfrac12 e^{-\Gamma/2} と比較し、桁の違いを議論してください。
  4. なぜ深宇宙探査機との通信リンクでは、FHSSではなく固定周波数の変調方式(PCM/PSK/PMやサプレスドキャリア方式)が標準的に使われるのか、周波数割り当ての制約とコヒーレントドップラー追尾の両方の観点から、この回で学んだ内容をもとに説明してください。

まとめと次回予告

FHSSは、搬送波周波数そのものを疑似ランダムなパターンで高速に切り替えることで拡散を実現する方式であり、DSSSとは処理利得の得方も実装の勘所も異なります。ホップレートとシンボルレートの関係でSlow FHとFast FHに分かれ、送受信機間のホップエポック同期(dehop同期)が正しく機能して初めて通常の狭帯域復調に帰着できること、そして部分帯域ジャマーという賢い妨害者を相手にすると誤り率が 1/Γ1/\Gamma にしか改善しないという厳しい最悪ケース結果があることを見ました。深宇宙通信でFHSSがほとんど使われないのは、狭い周波数割り当てと、精密な軌道決定を支えるコヒーレントな位相追尾という、これまで学んできた内容と直接つながる理由によるものでした。

次回は、変調・符号化パートの締めくくりとして、シャノン限界に迫る現代的な誤り訂正符号である 極符号 (Polar Codes) に軽く触れます。LDPCやターボ符号とはまた異なる構成原理で符号化容量を達成する仕組みを見ていきます。

参考文献

  • M. K. Simon, J. K. Omura, R. A. Scholtz, B. K. Levitt, Spread Spectrum Communications Handbook, McGraw-Hill
  • D. Torrieri, Principles of Spread-Spectrum Communication Systems, Springer
  • J. G. Proakis, M. Salehi, Digital Communications, 5th ed., McGraw-Hill
  • Bluetooth SIG, Bluetooth Core Specification(Adaptive Frequency Hopping関連章)