GPS信号

**GPS信号**は衛星測位のためにグローバル・ポジショニング・システム（GPS）衛星から送信されている。地表面上の受信機はGPS信号を使って受信機の位置、時間、速度（PVT）を決定できる。GPS衛星コンステレーションはアメリカ宇宙軍 、第8宇宙部隊、第2宇宙作戦隊（2SOPS）によって運用されている。

GPS信号は衛星までの距離を測定するための測距信号および航法メッセージを持つ。航法メッセージは、三点測位における軌道上の衛星位置を計算するために用いられ、アルマナックと呼ばれる時刻と衛星コンステレーション全体の状態に関する情報を提供するためのエフェメリスデータを含む。

民間利用向けには4種類のGPS信号が存在する。導入時期の順に、L1 C/A、L2C、L5、L1Cである。 L1&nbsp;C/Aは*レガシー信号*とも呼ばれ、現在運用中のすべての衛星から送信されている。L2C、L5、L1Cは*近代化された信号*で比較的新しい衛星のみから送信されている（あるいは送信されていない）。また、2021年1月現在、これらの3つの信号はまだ民間向けに完全に運用を開始されていない。これらの4つの信号に加えて、公開された周波数とチップレートではあるものの暗号化コードを用いていて、許可されたユーザーだけが使用できる、*制限のある信号*が存在する。制限信号は解読せず限定的な用途で使用できる。これはコードレスアクセス、セミコードレスアクセスと呼ばれ、公式にサポートされている。

ユーザーセグメント（GPS受信機）とのインタフェースは Interface Control Documents (ICD)に記載されている。民間用信号のフォーマットはICDのサブセットである Interface Specification (IS) に記載されている。

## 共通の特徴
GPS衛星（GPS IS内では *space vehicles* と呼ばれる）は複数の測距コードと航法データを二位相偏移変調 (BPSK)を用いて同時に送信している。限られた数の中心周波数が使われている。同じ周波数を用いる衛星同士はそれぞれ異なる測距コードを用いることで識別する。言い換えると、GPSは符号分割多元接続を用いている。測距コードは*チッピングコード*（CDMA/DSSSに関連）、*擬似ランダムノイズ*、*擬似ランダムバイナリシーケンス*（シーケンスは予測可能であるが統計的にノイズのように見えるという事実に関連）とも呼ばれる。

いくつかの衛星は複数のBPSKストリームを直交した同じ周波数で直角位相振幅変調 により送信している。しかし、単一のビットストリームを半分のシンボルレートによる2つのビットストリームに分割することでスペクトル効率を上げる通常のQAMとは異なり、GPS信号の同相成分と直交成分は（機能的には関連するが）別々のストリームで変調される。

衛星は *space vehicle number*（SVN）と呼ばれる、衛星の運用期間中は変更されないシリアル番号で識別される。さらに、すべての運用中の衛星は *space vehicle identifier*（SV ID）と衛星が使用する測距コードを識別する*擬似ランダムノイズ番号*（PRN番号）で番号付けされる。SV IDとPRN番号は固定された1対1の対応であることがISに記載されている。 SVNと異なり、衛星のSV ID/PRN番号は変更されうる（使用する測距コードの変更による）。つまり、2機の運用中の衛星が一つの有効なSV ID/PRN番号を共有することはない。現在のGPS衛星システムのSVNとPRN番号は NAVCENが発行している。

## レガシーGPS信号
当初のGPSの設計には、誰でも利用が可能な *coarse/acquisition*（C/A）コードと、制限があり通常は軍用である *precision*（P)コードの2種類の測距コードが含まれている。

### 周波数情報

測距コードと航法メッセージは衛星から受信機まで伝播するために搬送波上で変調されなければならない。当初のGPSの設計では、L1と呼ばれる 1575.42&nbsp;MHz (10.23&nbsp;MHz × 154) とL2と呼ばれる 1227.60&nbsp;MHz (10.23&nbsp;MHz × 120) の2つの周波数が使われた。

C/AコードはL1周波数で二位相偏移変調（BPSK）を用いて1.023 MHzの信号として送信される。P(Y)コードはL1とL2周波数でBPSK変調を用いて10.23 MHzの信号として送信される。ただし、P(Y)コードの搬送波はC/Aコードの搬送波に直交する（つまり位相が90°ずれている）。

1つの衛星から2つの周波数を送信することの利点として、冗長性とジャミング耐性の増加に加えて、直接測定を行って電離層による電波遅延で生じる誤差を除去できることが重要である。そのような測定ができない場合、GPS受信機は標準的なモデルを使うか、（広域増強システム（WAAS）のような）別のソースから電離層補正情報を受け取らなければならない。GPS衛星と受信機双方に使用される技術の進歩により、電離層遅延がGPS信号における最大の誤差要因として残されている。この測定ができる受信機は大幅に精度を高めることが可能で、通常、*二周波受信機*と呼ばれる。

### 変調コード

#### Coarse/acquisitionコード
C/A PRNコードはゴールドコードと呼ばれ、1023チップの長さのコードを1.023 Mチップ/秒で送信、つまり1ミリ秒ごとにコードが繰り返されている。このコードは50ビット/秒の航法メッセージと排他的論理和演算され、その結果により前述した位相偏移変調が行われる。このコードはほぼ完全に一致している場合に、一致または強く自己相関する。各衛星は他のどの衛星のPRNコードとも相関しないユニークなPRNコードを使用する。つまり、PRNコードは互いに直交している。1ミリ秒のC/Aコードの長さは299.8 kmの距離になり、各チップの長さは293 mである。受信機はこのコードを1チップ以内の精度で追尾するため、測定誤差は293 m未満である。

C/Aコードは2つの異なる最大周期10段の線形帰還シフトレジスタ（LFSR）によって生成される2つのビットストリームを（排他的論理和を使って）合成して生成される。片方のビットストリームを選択的に遅延させることによって異なるコードが生成される。したがって、

: C/A*i*(*t*) = *A*(*t*) ⊕ *B*(*t*-*D<sub>i</sub>*)

ここで、

: C/A*i* はPRN番号 *i* のコードである。
: *A* は生成多項式が *x* → *x*10 + *x*3 + 1 で初期状態が 11111111112 である1つ目のLFSRの出力である。
: *B* は生成多項式が *x* → *x*10 + *x*9 + *x*8 + *x*6 + *x*3 + *x*2 + 1 で初期状態が11111111112である2つめのLFSRの出力である。
: *D<sub>i</sub>* は各PRN番号*i* ごとに定められた遅延（ 周期の整数倍）*で*GPS interface specification に示されている。
: ⊕ は排他的論理和である。

関数の引数はエポックを0としてそこからの*ビット数*または*チップ数*である。LFSRのエポックとはLFSRが初期状態にある時点のことであり、C/Aコード全体のエポックは任意のUTC秒の開始時刻に整数ミリ秒を加えた時点である。負の引数の時のLFSRの出力は1023チップの周期に合わせて定義される（上の式でBは負の引数をとることがあるためこの規程が必要である）。

PRN番号34と37の遅延は同じである。したがってそれらのC/Aコードも同一であるが同時には送信されない （各GPS受信機で受信される相対的な出力レベルによっては相互干渉により片方または両方の信号が使えなくなる）。

#### Precision コード
PコードはC/Aコードよりもずっと長いPRNシーケンスで6.187104&nbsp;x&nbsp;1012 チップある。Pコードのチップレート（10.23 Mチップ/秒）はC/Aコードの10倍であるが、週に一度しか繰り返されず、距離の曖昧さを解消する。Pコードは長くで速いコードであるため受信機は直接取得することができないので、最初にC/Aコードから衛星のエフェメリスを取得し、おおよその時刻と位置を得てから、Pコードを取得して高精度な測位を行う。

C/A PRNは各衛星ごとにユニークだが、各衛星は約2.35&nbsp;x&nbsp;1014チップ（235,000,000,000,000チップ）長のマスターPコードシーケンスの異なるセグメントを送信している。各衛星は割り当てられたマスターコードのセグメントを繰り返し送信し、毎週日曜日の00:00:00 GPS時間に再スタートする。GPSのエポックは1980年1月6日の00:00:00 UTCだが、GPS時刻はうるう秒を採用していないのでUTC時刻に正確には合っていない。GPS時刻はUTC時刻より整数秒だけ進んでいる。

Pコードは公開されているので、不正ユーザーが使用したり、スプーフィングによって潜在的に干渉したりすることを防ぐために、Pコードと暗号化されたシーケンスである*Wコード*とを排他的論理和演算して *Yコード*を生成する。Yコードはアンチスプーフィングモジュールが有効化されて以降、各衛星が送信しているコードである。暗号化された信号は*P(Y)コード*と呼ばれる。

Wコードの詳細は機密であるが、Pコードのチップレートより約20倍遅い約500 kHzでPコードに適用されることが知られている。 このことによりWコードを知ることなくP(Y)信号を追跡できるセミコードレスアプローチが開発された。

### 航法メッセージ

PRN測距コードに加えて、受信機は時刻と各衛星の位置を知る必要がある。GPSはこの情報を*航法メッセージ*内に符号化し、C/AおよびP(Y)測距コードに50ビット/秒で変調している。このセクションで述べる航法メッセージフォーマットはLNAVデータ（*レガシーナビゲーション*）と呼ばれる。

航法メッセージは3種類の情報を送っている。

* GPS日付と時刻、および衛星の状態
* 送信衛星の精密な軌道情報であるエフェメリス
* 各衛星の状態と低解像度な軌道情報であるアルマナック

エフェメリスは4時間のみ有効であるのに対して、アルマナックはほとんど精度が落ちずに最大2週間有効である 。受信機はアルマナックを使って時刻と場所に応じて衛星を捕捉する。受信機が衛星を捕捉すると各衛星のエフェメリスが復号されてナビゲーションに使用することができる。

航法メッセージは、30ビットのワード10個でできている6秒間の*サブフレームの*5個分からなる、30秒間、1500ビットの*フレーム*で構成される。各サブフレームは6秒ずつ増えていくGPS時刻を持つ。サブフレーム1はGPS日付（週番号）、衛星クロック補正情報、衛星状態、衛星ヘルスを持つ。サブフレーム2と3はともに送信衛星のエフェメリスデータを持つ。サブフレーム4と5は*ページ*1からページ25までの25ページからなるアルマナックを持つ。アルマナックは15,000ビット長で送信に12.5分かかる。

フレームはGPS週の開始とともに始まり、以後30秒毎に繰り返す。毎週、アルマナックのページ1の送信から始める。

航法メッセージにはLNAV-LとLNAV-Uの2種類があり、LNAV-LはPRN番号1から32（*下位PRN番号*）の衛星で用いられ、LNAV-UはPRN番号33から63（*上位PRN番号*）の衛星で用いられる。 2種類ともよく似たフォーマットを使っている。サブフレーム1から3は同一で 、サブフレーム4と5はほとんど同じである。各航法メッセージタイプはその航法メッセージを使っている全衛星のアルマナックを持っているが、異なる航法メッセージの衛星のアルマナックは持っていない。

各サブフレームは、受信機がサブフレームの開始を検出しサブフレーム開始時の受信機のクロック時間を決定するためのテレメトリーワード（TLM）で始まる。続いてハンドオーバーワード（HOW）が（次のサブフレームの最初のビットが送信される時刻として）GPS時刻を提示し、完全なフレーム中でのサブフレームの識別をする。 サブフレームの残りの8ワードはそのサブフレームに固有の実データを格納する。各ワードはハミング符号に基づくアルゴリズムにより直前のワードの最後の2ビットとそのワードのパリティビット以外の24ビットから生成された6ビットのパリティビットを持っている。

サブフレームが読まれて解釈されると、クロック補正データとHOWを使って次のサブフレームが送信された時刻が計算できる。受信機はテレメトリーワードを検出することで次のサブフレームを受信した時点の受信機クロック時刻がわかる。それによって、信号の伝播時間を計算し、擬似距離を求めることができる。

#### 時刻
GPS時刻は週番号とタイムオブウィーク（TOW）として1.5秒単位で表現される。 GPS時刻の基準点（週番号 0、TOW 0）は1980-01-06T00:00Z と定義されている。TOWは0から403,199までの値でGPS週の開始からの1.5秒単位の経過数を意味する。したがってTOWを表現するには19ビット（219&nbsp;=&nbsp;524,288）必要である。GPS時刻はうるう秒を含まないため、GPS週の開始/終了は対応するUTCとは整数秒だけずれている。

各サブフレームの各ハンドオーバーワード（HOW）は次に続くサブフレームの開始点に対応するTOWの上位17ビットを持っている。 ここで、航法メッセージ内のHOWは6秒おきに現れるが、これはTOWの下位2ビットを省略したときの分解能と等しいため、TOWの下位の2ビットは省略してもかまわない。つまり、2ビット省略されたTOWは最後のGPS週の開始/終了から次のフレームまでの時間を6秒単位で表した値と同じである。

各フレームは（サブフレーム1内に）GPS週番号の下位10ビットを持っている。 GPSのフレームはGPS週をまたぐことはないので各フレームの全体は1つのGPS週内に収まっている。 1,024GPS週（約19.6年）ごとにロールオーバーが発生するため、受信機は現在の日付を計算するためにGPS週番号の上位ビットを推測するか別のソースから取得しなければならない。1つの方法は、受信機がシャットダウンするときに現在の日付をメモリに保存しておき、電源が入ったときに新たに復号した週番号が保存した日付から始まる1,024週の期間に含まれると仮定することである。この方法は受信機が1,024週を越えて（あるいは時刻決定と測位をしないで）シャットダウンすることがなければ正しくGPS週番号を推測することができる。

#### アルマナック
*アルマナック*は各衛星の大まかな軌道、ステータス情報、電離層モデル、協定世界時（UTC）とGPS時刻との関係で構成される。各フレームは（サブフレーム4と5に）アルマナックの一部分の情報を持っていて、完全なアルマナックは各衛星から合計25フレーム（12.5分要する）かかって送信される。 アルマナックはいくつかの目的のために提供される。1つ目は、各衛星のエフェメリスがその衛星を使った測位に必要であるのに対し、受信機が保存した位置と時刻に応じた可視衛星リストを生成することで受信機の起動時の衛星の捕捉をアシストすることである。古いハードウエアでは各衛星の探索は遅いプロセスであるのでアルマナックの欠落によって測位がかなり遅延する。ハードウエアの進歩により衛星捕捉プロセスはより高速になったので、アルマナックが無いことはもはや問題ではない。2つめはGPSから導出される時刻（GPS時刻）を国際的な標準時刻であるUTCと関連付けることである。最後に、アルマナックはグローバル電離層モデルを用いることによって一周波受信機が電離層遅延を補正できるようにする。補正はWAASのようなGNSS補強システムや二周波受信機ほど高精度ではない。しかし、電離層による誤差は一周波受信機とって最大の誤差要因であるため、しばしば補正無しよりは良い。

#### サブフレーム4と5の構造

#### データ更新
衛星データは定期更新ができない場合に備えて最大60日間分のデータとともに通常24時間ごとに更新される。通常、更新データは新しいエフェメリスと低頻度でアップロードされるアルマナックである。コントロールセグメントは通常の運用中に新しいアルマナックが少なくとも6日ごとにはアップロードされることを保証している。

衛星は2時間ごとに新しいエフェメリスを送信している。エフェメリスは通常は4時間有効であるが、非公称条件下では4時間かそれ以上の間隔で更新される。エフェメリスを取得するための時間が測位に時間がかかる主要因であり、受信機の性能が向上しているため衛星信号を捕捉するまでの時間は減っているものの、送信レートが遅いためエフェメリスの取得には18秒から36秒要する。

## 近代化と追加のGPS信号
1995年7月17日にfull operational capabilityに達したことで 、GPSシステムは当初の設計目標を実現した。しかし、技術の進歩と既存システムへの新たな要求が”近代化”を促した。1998年、副大統領とホワイトハウスはこうした変更の開始を告知し、2000年にアメリカ合衆国議会は*GPS III*と呼ばれるその取り組みを再確認した。

プロジェクトは新しい地上局、および民間・軍用ユーザ向けの追加の航法信号に対応した新しい衛星が関連する。すべてのユーザー向けに精度と可用性の向上を狙ったものである。実装完了の目標は2013年とされ2011年までに完了すればインセンティブが与えられることになった。

### 一般的な特徴

近代化GPSの民間用信号は従来のものからデータレス捕捉支援と航法メッセージの前方誤り訂正（FEC）という2つの改善がなされている。

データレス捕捉支援はデータ信号とは別のパイロット搬送とも呼ばれる追加信号の送信である。このデータレス信号はデータが符号化された信号よりも捕捉が容易であるように設計され、捕捉された後はデータ信号の捕捉に使われる。この技術はGPS信号捕捉を改善し、相関器での信号強度が向上する。

2つめは航法メッセージ自身に前方誤り訂正（FEC）を使用することである。航法メッセージの送信レートが比較的遅い（通常50ビット/秒）ことから、小さな妨害が大きなインパクトをもたらす可能性がある。したがって、航法メッセージのFECは信号全体の頑健性の大きな向上となる。

### L2C
最初の発表の1つはL1周波数による coarse/acquisition（C/A）信号とは別の周波数の新しい民間用信号の追加だった。最終的にこれはL2周波数で送信されたため L2C信号となった。衛星に新しいハードウエアが必要なためブロックII R-Mと呼ばれる設計以降の衛星のみから送信される。L2C信号はナビゲーションの精度向上、容易な信号追尾、局所的な干渉時の冗長信号の役割をもたらす。L2C信号は2014年4月初めから送信されているが未だに運用前とされている。 2023年7月現在、L2Cは25機の衛星から送信されている。

C/Aコードとは異なり、L2Cは *civil-moderate*コード（CM）と*civil-long* lengthコード（CL)という2つの別々の測距情報用PRNコードを持っている。CMコードは10,230チップ長で20 ms ごとに繰り返す。CLコードは 767,250チップ長で1,500 msごとに繰り返す。各信号は毎秒511,500チップ送信されるが、これらは多重化されて 1,023,000チップ/秒の信号を形成している。

CMはCNAV航法メッセージ（下記参照）を変調するのに対し、CLはいかなる変調データも含まず*データレスシーケンス*と呼ばれる。長いデータレスシーケンスはL1 C/Aコードに比べて約24 dB強い（250倍強い）相関をもたらす。

C/A信号と比較して、L2Cは送信電力が 2.3 dB 弱いものの、 2.7 dB データ復旧に優れ、0.7 dB 搬送波追尾に優れる。

2023年7月3日現在のL2Cの状態 は以下の通りである。

* "healthy"と設定された運用前の信号
* 25機の衛星から送信（2023年7月3日現在）
* 2005年からGPSブロック II R-Mにより開始
* 2023年までに地上管制能力を備えた24機のGPS衛星が利用可能（2020年1月現在）

#### CM および CL コード
civil-moderate および civil-long 測距コードはあらかじめ決められた初期状態に定期的にリセットされるモジュラーLFSR によって生成される。CMとCLの周期はこのリセットにより決定され、（C/Aコードのように）LFSRの自然な周期によるものではない。初期状態はインターフェース仕様で指定されていて、異なるPRN番号ごとにCM/CLで異なる。フィードバック多項式/マスクはCMとCLで同じである。測距コードは以下のようになる。

: CM*i*(*t*) = *A*(*X<sub>i</sub>*,*t* mod 10 230)
: CL*i*(*t*) = *A*(*Y<sub>i</sub>*,*t* mod 767 250)

ここで、

: CM*i* と CL*i* はPRN番号 *i* の測距コードで、引数はGP週の開始/終了からの（0始まりの）累積チップ数、もしくはそれと等価的にGPS時刻スケールの起点からの経過時間である（ §時刻を参照）。
: *A*(*x*, *t*) は初期状態 x に初期化され t 回動作した後のLFSRの出力である。
: *X<sub>i</sub>* と *Y<sub>i</sub>* はPRN番号 i に対するCMとCLそれぞれの初期状態である。
: mod は剰余である。
: *t* はGPS時刻の起点からのCMとCLのチップ周期数、あるいはそれと等価的な（0から始まる）GPS秒である。

初期状態はGPSインターフェース仕様に8進数の数値として記載されていて、最下位ビットを出力ビットとし最上位ビットから新しいビットがシフトインするという2進数表記のLFSR状態解釈の規約に従う。この規約を使ってLFSRは最上位ビットから最下位ビットへ、ビッグエンディアンの場合、右方向へシフトする。ISで最終状態と呼ばれる状態は、CMでは10229サイクル後、CLでは767249サイクル後（いずれもリセットの直前）に得られる。

#### CNAV 航法メッセージ

CNAVデータは従来のNAV航法メッセージのアップグレードバージョンである。より高精密な表記と、名目上はNAVデータよりも高精度なデータを含んでいる。時刻、ステータス、エフェメリス、アルマナックといった情報は新しいCNAVフォーマットでも送信されているが、フレーム / サブフレーム構造の代わりにLNAVのフレームに類似した12秒、300ビットの*メッセージ*で構成する擬似パケットフォーマットを使っている。LNAVフレームの情報コンテンツは固定されているが、CNAVメッセージには複数の定義されたタイプがある。フレームタイプがその情報コンテンツを決めている。メッセージは、どのメッセージタイプが使われるかに関する固定されたスケジュールには従わず、コントロールセグメントによる柔軟な変更を認めている。ただし、いくつかのメッセージタイプについては送信頻度の下限が設定されている。

CNAVでは少なくとも4パケットに1つはエフェメリスデータで、クロックデータパケットについても同様である。 多様なパケットタイプが送信できるように設計されている。32機からなる衛星コンステレーションで現在の必要送信要求仕様では帯域の75%以下しか使われない。定義されているパケットタイプは利用可能なパケットタイプのほんの一部である。このことが互換性を損なわずにシステムが成長し進歩を取り入れることを可能にしている。

新しい CNAVメッセージでは以下のような多くの重要な変更がある。

* レート1/2の 畳み込み符号による前方誤り訂正（FEC）を使用し、航法メッセージは25ビット/秒だが50ビット/秒の信号を送信する。
* メッセージは24ビットのCRC値を持ち、完全性をチェックする。
* GPS週番号は13ビット、8192週で表され、157.0年ごとに繰り返すため、2137年まで0に戻らない。これはL1 NAVメッセージが10ビットの週番号を使用し 19.6年ごとに0に戻るのよりも長い。
* GPSとGNSSの時刻オフセットを保持するパケットがある。これによりGalileo、GLONASSなど他のグローバル時間転送システムとの相互運用性が向上する。
* 追加の帯域によりディファレンシャル補正パケットの保持が可能になり、衛星航法補強システムと同様の方法でL1 NAVクロックデータの補正に使うことができる。
* すべてのパケットは衛星データが信頼できないときにセットされるアラートフラグを保持する。これにより衛星がもはや使用できないときにユーザは12秒以内に知ることができる。このような迅速な通知は航空分野など生命の安全に関わるアプリケーションでは重要である。
* 最後に、L1 NAVが32機であるのに対し、システムが63機の衛星に対応できるように設計されている。

CNAVメッセージはGPS週の開始/終了に12秒の整数倍を加えた時刻に始まり、終了する 具体的には（畳み込み符号化された）最初のビットの開始が前述の同期タイミングと一致する。CNAVメッセージは受信機がメッセージの始まりを検出するための固定ビットパターンである8ビットのプリアンブルで始まる。

#### 前方誤り訂正コード
CNAVを符号化するために用いる畳み込み符号は以下の通りである。

: \begin{align}
  X_1(t) &= d(t) \oplus d(t - 2) \oplus d(t - 3) \oplus d(t - 5) \oplus d(t - 6) \\
  X_2(t) &= d(t) \oplus d(t - 1) \oplus d(t - 2) \oplus d(t - 3) \oplus d(t - 6) \\
  d'(t') &= \begin{cases}
    X_1\left(\frac{t'}{2}\right)   & \text{if } t' \equiv 0 \pmod{2} \\
    X_2\left(\frac{t'-1}{2}\right) & \text{if } t' \equiv 1 \pmod{2} \\
  \end{cases}
\end{align}

ここで、

: X_1 と X_2 は畳み込み符号器からの順不同の出力
: d は生の（FEC符号化されていない）航法データで単に300ビットのメッセージを連結したもの
: t は*FEC符号化されていない*航法データの任意の時点からの累積ビット数（0から始まる）
: d' はFEC符号化された航法データ
: t' はFEC符号化された航法データの *t* と同じエポックからの累積ビット数（同様に0から始まる）

前述のようにFEC符号化されたビットストリームはFEC符号化されていないビットの2倍の長さになるため、 t=\left\lfloor\tfrac{t'}{2}\right\rfloorである。FEC符号化はナビゲーションメッセージの境界に関係なく実行される 。このことは上の式から導かれる。

#### L2C周波数情報
2つの民間用周波数が送信されることによる直接的な効果は民間用の受信機が二周波のP(Y)コード受信機と同様の方法で電離層による誤差を直接測定できるということである。しかし、電離層の誤差により、L2C信号を単独で利用するユーザはL1信号を単独で使用するよりも測位の不確実さが65％増える。

### 軍用 (Mコード)
近代化プロセスの主要な要素は（L1MとL2M上の）新しい軍用信号である。軍用コード、またはMコードと呼ばれ、軍用GPS信号へのアンチジャミングと安全なアクセスをさらに向上させている。

この新しい、制限されたコードについてはほとんど説明が無い。5.115 MHzで送信される長さのわからないPRNコードを含んでいる。P(Y)コードと異なり、Mコードは自律的に、つまりユーザはMコードだけを使って測位ができるように設計された。P(Y)コードの当初の設計から、ユーザは初めにC/Aコードを捕捉し、それからP(Y)コードの捕捉に移行した。後に一部のユーザがP(Y)コードを自律的に運用できる direct-acquisition技術が開発された。

#### MNAV 航法メッセージ
MNAVと呼ばれる新しいナビゲーションメッセージについては少しだけ分かっている。新しいCNAVと同様に新しいMNAVもフレームではなくデータの格納がとても柔軟であるパケットを用いる。また、CNAVのように前方誤り訂正（FEC）と（CRCのような）先進的なエラー検出が使える。

#### Mコード 周波数情報
Mコードは従来の軍用コードであるP(Y)コードが用いていたのと同じL1およびL2周波数で送信される。新しい信号は（従来のP(Y)とC/Aの搬送波から離れた）端にエネルギーを配置するように整形されている。Mコードはすべての衛星で動作するわけではなく、2011年4月5日にSVN62/PRN25衛星では停止された。

従来のGPS設計に無い主要な新しい試みとして、Mコードは高利得指向性アンテナからの送信を想定している。この指向性アンテナの信号はスポットビームと呼ばれ、（直径数百キロメートルの）特定の領域を目標にし、局所的な信号強度を 20 dB、つまり約100倍強くすることを意図している。2つのアンテナを持つことの副作用として、スポットビームの範囲内では同じ位置に2つのGPS衛星があるように見えることがある。地球全体へのMコード信号がブロックII R-M衛星で利用可能であるのに対し、スポットビームアンテナは2018年12月以降のブロックIII衛星まで採用されていない。

各衛星が4種類の別々の信号を送信することの興味深い副作用は、MNAVが潜在的にデータ帯域を増大させる4種類の異なるデータチャネルを送信できるということである。

変調方式は5.115 MHzのコードに対して10.23 MHzの副搬送波を用いるバイナリオフセットキャリアである。この信号は全体で約24 MHzの帯域があり、大きく離れたサイドローブを持つ。サイドローブは信号受信を改善するために用いられる。

### L5
L5信号は、航空機の精密アプローチガイダンスなど生命に関わるアプリケーション向けの安全かつ頑健な電波航法手段を提供する。信号は国際電気通信連合によって航空電波航法用に保護された周波数帯で送信される。最初に USAｰ203（ブロックII R-M）衛星で実証され、GPS IIFとGPS III 以降のすべての衛星で利用可能である。L5信号は2014年4月に対応する衛星からの送信を開始した。

L5信号の2023年7月3日現在の状況は以下である。

* 十分なモニタリング能力が整うまでの”unhealthy"と設定されたメッセージによる運用前の信号
* 18機のGPS衛星から送信
* 概ね2027年までに24機のGPSで利用可能になる予定

L5バンドは、干渉の緩和、国際的に保護された帯域、既存帯域に対する冗長性、静止衛星による補強、地上ベースの補強という形をとって新たな頑健性を提供する。このバンドによる追加の頑健性は地上でのアプリケーションに利益をもたらす。

（I5コードと呼ばれる）同相（in-phase）コードと（Q5コードと呼ばれる）直交位相コードの2つのPRN測距コードがL5で直交して送信されている。どちらのコードも 10,230チップ長で（1 msの繰り返しで）10.23 Mチップ/秒で送信され、（初期状態のみが異なる）同じ方法で生成される。I5は（L5 CNAVと呼ばれる）航法データと（排他的論理和で）変調され、1 kHzクロックの10ビットのノイマンｰホフマンコードで変調される。同様に、Q5コードは1 kHzクロックの20ビットのノイマンｰホフマンコードを用いて変調される。

L1 C/AおよびL2と比べL5では以下が異なる。

* 性能強化のための信号構造の改善
* L1/L2信号よりも高い送信出力（3 dBもしくは2倍）
* より広い帯域は10倍の処理利得をもたらし、より鋭い自己相関（チップ時間に対する相対値ではなく絶対値）を与え、受信機はより高いサンプリングレートが求められる。
* より長い拡散コード（C/Aの10倍長い）
* 航空電波航法用帯域を使う

#### I5 および Q5 コード
I5コードとQ5コードは同じ構造を用いて生成されるがパラメータが異なる。これらのコードは、選択的にリセットされる2つの異なる線形帰還シフトレジスタ（LFSR）の出力と（排他的論理和による）合成で生成される。

: 5*i*(*t*) = *U*(*t*) ⊕ *V<sub>i</sub>*(*t*)
: *U*(*t*) = *XA*((*t* mod 10 230) mod 8 190)
: *V<sub>i</sub>*(*t*) = *XB<sub>i</sub>*(*X<sub>i</sub>*, *t* mod 10 230)

ここで、

: *i* は同相か直交位相かを表す*P* ∈ {I, Q} とPRN番号 *n* の順序対 (*P, n*) であり、1機の衛星からのL5信号は両方の位相と1つのPRNを必要とする。
: 5*i* は *i* の測距コードで、I5*n* 及び Q5*n* とも書く。
: *U* および *V<sub>i</sub>* は中間コードで、Uは位相にもPRNにも依存しない。
: クロック状態 *t*'  における2つの13段のLFSRの出力が以下のように用いられる。
:: *XA*(*x*,*t*') はフィードバック多項式 *x*13 + *x*12 + *x*10 + *x*9 + 1を持ち、初期状態は 11111111111112
:: *XB<sub>i</sub>*(*x*,*t*') はフィードバック多項式 *x*13 + *x*12 + *x*8 + *x*7 + *x*6 + *x*4 + *x*3 + *x* + 1 を持ち、初期状態は *X<sub>i</sub>*
: *X<sub>i</sub>* は*i*で与えられる位相とPRN番号で指定された初期状態（ISで指定される)。
: *t* はGPS時刻の起点から、あるいは等価的に任意のGPS秒からのチップ周期数（0から始まる）。

AとBは最長LFSRである。剰余演算はリセットに対応する。両方ともミリ秒ごとにリセットする（C/Aコードのエポックと同期）。さらに、Aの記述にある追加の剰余演算は、自然の周期（8,191）の1サイクル手前でリセットして次の周期でBに対して1サイクルずれるようにするためである （そうしないと両方のシーケンスが1 msの周期で繰り返され、I5とQ5も1 msの周期で繰り返されるため、相関特性が劣化してしまう）。

#### L5 航法メッセージ
L5 CNAVデータは、SVエフェメリス、システム時刻、SVクロックふるまいデータ、ステータスメッセージ、時刻情報などを含む。50ビット/秒のデータはレート1/2の畳み込み符号器で符号化される。その結果得られた100シンボル/秒（sps）のシンボルストリームは I5コードにのみ modulo-2加算され、ビット列はL5の同相（I5）搬送波の変調に用いられる。この合成信号はL5データ信号と呼ばれる。L5直交位相（Q5）搬送波はデータを含まず、L5パイロット信号と呼ばれる。L5 CNAVのフォーマットはL2 CNAVと非常によく似ている。1つの違いは2倍のデータレートを使うことである。各メッセージのビットフィールド 、メッセージタイプ、前方誤り訂正コードのアルゴリズムはL2 CNAVと同じである。L5 CNAVメッセージはGPS週の開始/終了に6秒の整数倍を加えた時点から始まり、終了する（L2 CNAVと同様、メッセージの情報を含む最初のビットに適用される）。

#### L5 周波数情報
航空用電波航法用帯域であるL5周波数（1176.45 MHz, 10.23 MHz × 115）で送信される。周波数は航空業界がL2よりも効率よくL5に対する干渉を管理できるように選択された。

### L1C
L1Cは民間用信号で、L1周波数（1575.42 MHz）で送信され、現在のすべてのGPS利用者が使うC/A信号を含む。L1C信号は2018年12月に初号機が打ち上げられた GPS III以降の衛星から送信される。 , L1C信号は送信されているが、送信機能を持つ衛星は4機のみである。L1Cは2020年代後半に24機のGPS衛星で利用可能になる予定である。 Mediatek のデバイスが復号に対応している。

L1Cは（L1CPと呼ばれる）パイロット成分と（L1CD と呼ばれる）データ成分で構成する。 これらの構成成分はL5のような直交する搬送波の代わりに同位相の搬送波を使う（100ミリラジアン以内の誤差マージン）。 PRNコードは10,230チップ長で1.023 Mチップ/秒で送信されるため10 msごとに繰り返す。パイロットコンポーネントはL1CO と呼ばれるオーバーレイコードによって変調される（測距コードより低いレートの第2のコードで測距コードのようにあらかじめ定義されている）。 全L1C信号の出力の25%はデータに75%はパイロットに割り当てられている。用いられている変調方式は、データ信号が BOC(1,1) でパイロットがTMBOCである。時間多重化バイナリオフセットキャリア（TMBOC）は33サイクル中4サイクルをBOC(6,1)に切り替え、その他はBOC(1,1)である。

* 後方互換性のために C/Aコードを実装する
* 最小C/Aコード出力を 1.5 dB増加させることによりノイズフロアの増加を軽減する
* データレス信号成分であるパイロット搬送波がL1 C/Aに比べてトラッキングを改善する
* Galileo L1と民間レベルの強い相互運用性を有効化する

L1C信号の2023年7月3日現在のステータスは以下である 。

* "unhealthy"と設定されたメッセージによる開発中の信号で航法データを含まない
* 6機のGPS生成から送信中（2023年7月3日現在）
* 2018年に GPS IIIにて利用開始した
* 2020年代後半に24機のGPS衛星で利用できる

#### L1C 測距コード
L1Cパイロットおよびデータ測距コードは（Weilコードと呼ばれる）中間コードの生成に用いられる長さ10223のルジャンドル記号に基づいている。中間コードは固定7ビットのシーケンスで拡張されることで求める10,230ビットになる。この10,230ビットのシーケンスは測距コードでPRN番号間、パイロットおよびデータ成分間で変化する。測距コードは以下のようになる。

: \begin{align}
    \text{L1C}_i(t) &= \text{L1C}'(t \bmod{10\,230}) \\
  \text{L1C}'_i(t') &= \begin{cases}
    W_i(t')    & \text{ if } t' 

: \text{L1C}_i はPRN番号および成分 i の測距コード
: \text{L1C}'_i は \text{L1C}_iの1周期を表す。表記を明確にするためだけに導入されている。 \text{L1C} の直接的な式を求めるには \text{L1C}'の右側の式から始めて t' を t \bmod{10\,230} に置き換える。
: t はGPS時刻の起点から、もしくは等価的に任意のGPS秒からのL1Cチップ周期（ &nbsp;μs）数である（0から始まる）。
: i はPRN番号と（L1CPかL1CDか）のコードを識別する順序対で、 (\text{P}, n) か (\text{D}, n) の形をとる。ここで、 n は衛星のPRN番号で、\text{P, D} はL1CｐとL1CDコードをそれぞれ表す（変数ではなく）シンボルである。
: L は中間コードで、 0 \le n \le 10\,222 である整数 n を入力とするルジャンドリ記号である。
: W_i はWeilコードと呼ばれる Lと同じ定義域の中間コードである。
: S は0から6のインデックスが付けられた 7ビット長のシーケンスである。
: p'_i は S を測距コードに挿入する位置の 0から始まるインデックス（PRN番号とコード *i* に固有）である。インタフェース仕様（IS）で1から始まるインデックス *p* として定義されているので、 p'_i = p_i-1である
: w_i はPRN番号とコード *i* のWeilインデックスで ISで指定される。
: \operatorname{mod} は剰余演算で、この記事でも使われている合同式の記法とは異なる。

上の式およびGPS ISによれば \text{L1C}'_i と \text{L1C}の最初の w_i ビット（S の挿入点までと同じ）は、対応するWeilコードの最初のビットと同じであり、次の7ビットがS となり、残りのビットがWeilコードの残りのビットになる。

ISでは 0 \le p'_i \le 10\,222と規定されている。  \text{L1C}'_i の式は p'_i > 10\,222 となるような仮定的なケースを考慮していない。この場合、 \text{L1C}'_i に挿入される  S のインスタンスは10 229 から 0 にラップアラウンドする。

#### L1C オーバーレイコード
オーバーレイコードは1,800ビット長で 100ビット/秒で送信され、L1CD に符号化された航法メッセージと同期する。

PRN番号1から63については、初期状態とフィードバック多項式が異なる最長LFSRの出力を切り詰めたものである。

PRN番号64から210については、初期状態が異なる2つのLFSR（(\text{S1}_i と \text{S2}_i、 i はPRN番号）の出力を合成して作られ、切り詰められたゴールドコードである。\text{S1}_i は全体（PRN番号64から210）で使われる 4種類のフィードバック多項式のうちの1つを持つ。\text{S2}_i は64から210のすべてのPRN番号について同じフィードバック多項式を持つ。

#### CNAV-2 航法メッセージ

（CNAV-2と呼ばれる）L1C航法データは（FECを含めて）1,800ビット長のフレームで、100ビット/秒で送信される。

L1CのフレームはL2CとL5メッセージに類似している。L2 CNAVとL5 CNAVがエフェメリス専用のメッセージタイプを使うのに対して、CNAVｰ2はフレーム内に情報を持っている。

表にあるように、すべてのメッセージは3フレームで構成される。サブフレーム3の内容はL2CNAVやL5 CNAVメッセージタイプに似たページ番号によって変わる。ページは任意の順に送信される。

メッセージの時刻（時刻補正パラメータと混同しないこと）は従来の民間用信号のフォーマットとは異なるフォーマットで表され、3つの要素からなる。

# 他の民間用信号と同じ意味の**週番号。**各メッセージは週番号の8,192の剰余、等価的に週番号の下位13ビットを持ち、157年周期内で直接的に日付を指定できる。
# **interval time of week (ITOW):** 最後の週の開始/終了からの2時間単位の経過数である。0から83の範囲で 7ビット必要である。
# **time of interval (TOI):** ITOWが表す時刻から次のメッセージの開始までの18秒単位の経過数。0から399の範囲で9ビット必要である。

TOIはサブフレーム1の唯一のコンテンツである。週番号とITOWはサブフレーム2 に他の情報とともに含まれる。

サブフレーム1は修正BCH符号を用いて符号化される。下位8ビットをBCH符号化して得られた51ビットのデータと最上位ビットとの排他的論理和をとり、その結果に対して元のデータの最上位ビットを最上位ビットとして付加することにより 52ビットのデータを得る。 サブフレーム2と3はそれぞれ 24ビットのCRCを付加し、それぞれを低密度パリティ検査符号を用いて符号化し、ブロックインターリーバーを用いてインターリーブする。

## 周波数の概要

すべての衛星は 1.57542&nbsp;GHz (L1 信号) と 1.2276&nbsp;GHz (L2 信号)という同じ2つの周波数を送信している。衛星ネットワークは低ビットレートのメッセージデータと衛星ごとに異なる高レートの疑似ランダムノイズ（PRN）とをCDMAスペクトラム拡散技術を使って符号化している。受信機は実際のメッセージデータを再構築するために各衛星のPRNコードを認識しなければならない。民間用のC/Aコードはデータを1.023 Mチップ/秒で送信し、アメリカ軍用のPコードは10.23 Mチップ/秒で送信する。L1搬送波はC/AとPコード両方を変調するが、L2搬送波はPコードのみを変調する。 PコードはP(Y)コードと呼ばれる、正しい復号キーを持った軍用装備でのみ利用できるコードとして暗号化される。C/AとP(Y)コードの両方とも利用者に正確な時刻を与えている。

（同相および直交位相の）それぞれの合成信号は以下のようになる。

: 
  S(t) =
    \sqrt{P_\operatorname{I}} X_\operatorname{I}(t) \cos\left(\omega t + \phi_0\right) -
    \sqrt{P_\operatorname{Q}} X_\operatorname{Q}(t) \underbrace{\sin\left(\omega t + \phi_0\right)}_{-\cos\left(\omega t + \phi_0 + \frac{\pi}{2}\right)} ,


ここで \scriptstyle P_\operatorname{I} と \scriptstyle P_\operatorname{Q} は信号出力を表し、\scriptstyle X_\operatorname{I}(t) と \scriptstyle X_\operatorname{Q}(t) はデータの有無を問わずコードを表す\scriptstyle (= \;\pm 1)。これは（現実にはありえない）理想的な場合の式で、タイミング誤差、ノイズ、コンポーネント間の振幅誤差、直交誤差（コンポーネントが完全に直交していない場合）をモデル化していない。

## 復調と復号化

GPS受信機はアンテナで受信したGPS信号を測位、速度計測、時刻決定のために処理する。アンテナで受信した信号は増幅され、ベースバンドあるいは中間周波数にダウンコンバートされ、（エイリアシング防止のため必要な周波数帯域以外の周波数を除去する）フィルター処理を行ってからデジタル変換する。これらのステップは異なる順序で行われる場合もある。（特にアンダーサンプリングを用いる場合に）意図的にエイリアシングを起こす場合もあるが、それでもフィルタリングはデジタル変換後に意図しない周波数成分が混入するのを防ぐために必要である。

受信機によって利用される各衛星について、受信機は初めに信号を**捕捉し**、その後、衛星を使用している限り**追尾する**。両者とも（全部ではなくとも）ほとんどの受信機ではデジタル領域で実行される。

信号の捕捉は不明であった周波数とコード位相を（いずれも受信機の時刻を基準として）決定するプロセスである。コード位相は受信機の設計（とりわけ追尾ループ）に依存した精度で決定されなければならない。コードチップ長の0.5倍（約 0.489 µs）が代表的な値である。

追尾は見積もり周波数と位相が受信した信号とできるだけ合致するように継続的に調整するプロセスであり、ゆえに位相同期回路となる。捕捉は特定の衛星の利用を開始するために実行されるが、追尾は衛星を使用中は継続して実行される。

このセクションでは、L1 C/Aの捕捉と追尾についての手順の1つを記述するが、プロセスは他の信号についてもほぼ同様である。記述する手順はローカルに生成した測距コードのレプリカと受信した信号の相関の計算と、ピーク値または谷値の検出に基づいている。ピーク値または谷値のオフセットは受信機時刻に対するコード位相情報を持っている。ローカルなレプリカの長さは受信機の設計によるが、通常は航法データビットの 20 ms より短い。

### 捕捉
与えられたPRN番号の捕捉は、（1）コード位相と（2）周波数の2軸による2次元探索平面上での信号の探索として概念化できる。さらに、受信機はどのPRN番号を探索すればよいかわからない場合もあり、その場合は（3）PRN番号を加えた3次元空間の探索になる。

; 周波数空間
: 探索する周波数範囲は受信機が信号を捕捉できる既知の周波数帯になる。受信機が静止している場合、搬送波周波数はドップラー効果によっておよそ 5 kHz変化する。受信機が移動している場合、変化の幅はさらに大きくなる。L1の場合、コード周波数は搬送波周波数の1/1,540なのでコード周波数の偏差は搬送波周波数の1/1,540である。ダウンコンバートは周波数の偏差に影響せず、単にすべての信号の周波数成分を落とすだけである。周波数は受信機時刻を基準としているため、受信機の発振器周波数の不確実性が探索空間の周波数範囲に加わる。
; コード位相空間
: 測距コードは1,023チップの周期で各チップの長さはおよそ 0.977&nbsp;μs である。コードはオフセットが1以下のときのみ強い自己相関を示す。コード位相次元での探索空間の広さは、相関を計算するオフセットの粒度に依存する。コード位相は0.5チップかそれ以上の粒度で探索するのが普通である。その場合、2,046個のオフセットが考えられる。コード位相の探索空間サイズを増加させる要因は他にもある。例えば、受信機はデジタル変換された信号の連続する2つのウィンドウを調べることがある。これは2つのウィンドウの少なくとも片方に、（相関ピークを悪化させる）航法ビットの遷移が含まれないようにするためで、そのためには信号ウインドウは10 ms より短くなければならない。
; PRN番号空間
: 1から32の低位のPRN番号について受信機が探索範囲を狭める情報を持たない場合は32個のPRN番号を探索する必要がある。33から66の高位のPRN番号については航法メッセージを参照。

もしアルマナック情報がすでに取得されている場合、受信機はどのPRN番号の衛星を探せばよいかわかる。もしアルマナック情報がメモリ上にない場合、受信機は探索モードに入り、衛星の1つをロックするまでPRN番号を繰り返し探索する。衛星をロックするには受信機から衛星まで直接見通せることが必要である。受信機はアルマナックを復号し、受信する衛星を決定することができる。各衛星の信号を検出すると、固有のC/Aコードパターンによって識別する。

#### 単純な相関
信号を捕捉する最も簡単な方法（必ずしも最も効果的または計算量が最も少ないとは限らない）は、デジタル化信号のウィンドウと、ローカルに生成されたレプリカセットとのドット積を計算することである。ローカルに生成されたレプリカは、搬送波周波数とコード位相が変化し、周波数探索空間とコード位相探索空間の直積集合である前述のすべての探索空間をカバーする。搬送波はオイラーの公式で記述されるように実数成分と虚数成分のどちらも正弦波である複素数である。最も大きいドット積を生成するレプリカは、信号のコード位相と周波数が最も一致している可能性が高いため、その大きさがしきい値を超えている場合、受信機は信号の追尾を開始するか、追尾前に推定されたパラメータ精度をさらに上げる。しきい値は、誤検出（実際には信号がないのに信号を検出しているように見える）を最小限に抑えるために用いられるが、それでも時には発生してしまう。

複素数の搬送波を使うことでレプリカは信号の搬送波位相にかかわらずデジタル化信号と一致することができるし、位相を検出することもできる（フーリエ変換と同じ原理である）。ドット積は複素数になり、その大きさは通常の実数の時系列の相関と同じようにレプリカと信号の類似性のレベルを表す。ドット積の偏角はデジタル化信号の対応する搬送波位相の近似値となる。

例として、コード位相の探索の粒度を0.5チップとし、周波数の粒度を500 Hzとすると、 **1,023/0.5=2,046 コード位相** と **10,000&nbsp;Hz/500&nbsp;Hz=20周波数** となり合計 **20×2,046=40,920 個のローカルレプリカ**を調べることになる。各周波数ビンは周波数間隔の中央に置かれ、両側の250 Hzずつをカバーする。例えば、最初のビンは周波数 -4,750 Hz で -5,000 Hz から -4,500 Hzをカバーする。測距コードは周期的であるからコード位相は 1,023を法として合同になる。例えば、位相 -0.5 は位相 1,022.5 と合同である。

以下の表は例示したデジタル化信号に対する比較用ローカルレプリカを表している。"•" は一個のローカルレプリカを表し、 "..." の部分はレプリカが省略されていることを表す。

#### フーリエ変換
単純な相関の方法の改良として、フーリエ変換を使った、より効率的なドット積計算の実装が可能である。コードと周波数の直積集合の各要素ごとにドット積を実行する代わりに、FFTを含む単一の操作で各コード位相に対する全周波数を調べる。そのような操作は計算コストは高いが、FFTアルゴリズムの効率の良さによって従来の方法より高速である。さらに、DFTでは周波数ビンがより密に配置されるため搬送波周波数を高精度で復元することができる。

具体的には探索空間の全コード位相について、デジタル化信号ウィンドウは（搬送波を含まない）コードのローカルレプリカと要素ごとに掛け合わされ、それから離散フーリエ変換が実行される。

前の例をこの方法で処理することを前提に、（同相成分と直交成分を持つ複素数ではなく）実数を仮定し、サンプリングレート 5 MHz、信号のウィンドウ 10 ms、中間周波数 2.5 MHzとする。デジタル信号には 5 MHz × 10 ms = 50,000 サンプルがあるので、0 Hzから2.5 MHzまで100 Hzおきの25,001 周波数成分が得られる（0 Hz 成分は実数値の信号の平均なので実数、2.5 MHz 成分はナイキスト周波数であるため実数である）。中心周波数から5 kHz以内の成分（ビン）のみを探索する。ここでは2.495 MHzから2.505 MHzで、**51の周波数成分**によってカバーされる。前の例で **2,046 コード位相** あったので、合計 **51×2,046=104,346** 個の複素数周波数成分を調べる。

#### フーリエ変換による循環相関
同様に、単純な相関方法の改良として、各周波数ビンについて全コード位相をカバーする単一の操作を実行することが可能である。各コード位相ビンに対して実行される操作は、順方向FFT、周波数領域での要素ごとの乗算、逆FFT、循環畳み込みの代わりに循環相関を計算するための追加の処理である。前述の方法がより高精度な*搬送波位相決定*をもたらすのと対照的に、この方法により単純な相関の方法よりも精度の高い*コード位相決定*をもたらす。

### 追尾と航法メッセージの復号
受信した搬送波周波数はドップラー効果によって変化する可能性があるので、受信したPRNシーケンスの開始点はミリ秒の整数倍からずれてしまうかもしれない。このため、衛星のPRNコード開始点を決定するため、PRNコード追尾と同時に搬送波周波数追尾がに使われる。 最初に1,023個の全オフセットを計算する場合とは異なり、ロックを維持する追尾ではパルス幅の半分以下のシフトで十分である。この追尾を実行するために、受信機は位相誤差と受信周波数オフセットの2つの量を観測する。受信したPRNコードと受信機が生成したPRNコードとの相関は2つの信号のビットのずれを検出するために計算する。受信したPRNコードと、受信機が生成したPRNコードをパルス幅の半分だけ前後にずらしたものとを比べることによって必要な調整量を推定する。 相関を最大にするために必要な調整量は位相誤差の推定に用いられる。受信した周波数と受信機が生成した周波数とのオフセットから位相レート誤差を推定できる。周波数発生器と必要なPRNコードシフトの制御指示は制御規則に従って位相誤差と位相レート誤差の関数として計算される。ドップラー速度は搬送波の正規の周波数からの周波数オフセットの関数として計算される。ドップラー速度は受信機から衛星への見通し線に沿った速度成分である。

受信機が継続するPRNシーケンスを読み続けると、受信したPRN信号の1,023ビットの位相が突然変化する。これは航法メッセージのデータビットの開始を示している。 これにより受信機は航法メッセージの20ミリ秒ビットを読み始めることができる。航法フレームの各サブフレームの最初のTLMワードにより、受信機はサブフレームの開始を検出しサブフレーム開始時の受信機時刻を決定することができる。HOWワードは受信機がどのサブフレームが送信されているかを決定できるようにする。球面の交点を計算するには、エフェメリスデータを読み込む必要があるため、最初の測位までには最大30秒の遅延が発生する可能性がある。

サブフレームが読み込まれ解釈された後、クロック補正データとHOWを用いて次のサブフレームの送信時刻を計算できる。受信機はテレメトリーワードの検出によって次のサブフレームの開始を受信した時点の受信機時刻がわかる。それによって伝播時間と擬似距離が計算できる。受信機は各サブフレームの開始時点、つまり6秒ごとに新たに擬似距離を計算できる。

航法メッセージから得られる軌道位置データ、つまりエフェメリスはメッセージの送信時の衛星位置を正確に計算するのに用いられる。高感度な受信機は低感度な受信機よりも、とりわけノイズの多い環境で、より高速にエフェメリスデータを獲得できる。

## 参考文献と脚注

### 参考文献
**GPS Interface Specification**
*  (describes L1, L2C and P).
*  (describes L5).
*  (describes L1C).

### 脚注