gps-sdr-simの衛星信号生成部分の処理を追ってみた(その2)
衛星軌道情報とは
前回の記事でgps-sdr-simの全体概要と起動引数と衛星信号の受信位置の決定まで触れました。
次の処理である衛星軌道情報ファイルの読み込みに入る前に衛星軌道情報について簡単にまとめます。
衛星軌道情報については以下のように整理できます。
- エフェメリス:衛星に関する精密な軌道情報。有効期間は数時間。現在地の精密な測位計算そのものに使用されます。各衛星は自分のエフェメリスのみ送信します。
- アルマナック:衛星に関する概略的な軌道情報。有効期間は数週間。受信機の電源を入れたとき、今どの衛星が空にいるかを把握するために使用されます。各衛星は全衛星分のアルマナックを送信します。
- 航法メッセージ:送信側である衛星がリアルタイムで送信する0と1で構成される生の電波信号。L1C/A(信号種別については後述)では時刻、衛星の時計誤差、エフェメリスとアルマナックなど測位のために用いられる情報を含みます。(ナビゲーションファイルとも呼ばれる。)
- RINEX:受信側で航法メッセージから観測されたデータを用途に合わせたフォーマットに整理した世界標準のファイル形式(テキストファイル)。
①受信側が実際に測定した観測データファイル。
②衛星側の航法メッセージ(ex L1C/Aであればエフェメリスとアルマナックの測位データ、L1Sであれば電離層や軌道、時計などに関する補正データ)を含む航法メッセージファイル。
③受信機に接続された気象センサーの測定値を含む気象データファイル。
衛星軌道情報について以下のようにまとめました。(実際には衛星から送られる信号には衛星軌道情報の他に情報を載せるための搬送波や後述のPRNコードも含まれます。)

衛星信号種別について
衛星信号のL1C/AやL2Cとはいったいなんのことか。
L1やL2などが衛星信号に航法メッセージなどの情報を載せるための搬送波の周波数帯、C/AやCなどはPRNコードと呼ばれる擬似乱数コードの規格です。同じ周波数帯を共有する衛星同士を識別する(※1)ため、同じ規格のPRNコードでも衛星機ごとに固有となっています。
すごくざっくりまとめると、信号の規格(C/AかMコードかなど)によって民間用や軍事用などで用途が分けられます。そして、同じ周波数帯を共有する衛星同士を識別するために、衛星機ごとに固有のPRNコードが割り当てられています。
また、すべてではないですが主要な衛星信号種別について以下の表のようにまとめました。
| バンド名 | 中心周波数 | 主に使用するシステム |
|---|---|---|
| L1 (E1, B1) | 1575.42 MHz | GPS, Galileo, QZSS, BeiDou(全ての主要システムが使用) |
| L2 | 1227.60 MHz | GPS, QZSS |
| B3 | 1268.52 MHz | BeiDou |
| L6 (E6) | 1278.75 MHz | QZSS, Galileo |
| L5 (E5a, B2a) | 1176.45 MHz | GPS, Galileo, QZSS, BeiDou |
| E5b (B2b) | 1207.14 MHz | Galileo, BeiDou |
| G3 (GLONASS) | 1202.025 MHz | GLONASS |
| G2 (GLONASS) | 1246 MHz (周辺) | GLONASS(FDMA方式) |
| G1 (GLONASS) | 1602 MHz (周辺) | GLONASS(FDMA方式) |
| コード規格 | 正式名称 / 意味 | 主な用途・特徴 |
|---|---|---|
| C/A | Coarse / Acquisition (粗い/捕捉用) | GPS L1で使われる、最も標準的な旧来の民生用コード。 |
| P | Precise (精密) | GPS L1/L2で使われる高精度の軍事用コード(暗号化前)。 |
| Y | (名称なし) | Pコードがアンチスプーフィング(A-S)機能で暗号化された状態。 |
| M | Military (軍事用) | GPS L1/L2の近代化された軍事用コード。Yコードより高性能。 |
| C | Civil (民生用) | GPS/QZSSの近代化された民生用コードを示す。 (例: L1C, L2C) |
| S | Service (サービス/補強) | QZSS(みちびき)がL1S信号で使うコード。 CLAS(PPP-RTK)などの補強データを送信する。 |
| I / Q | In-phase / Quadrature (同相 / 直交) | 信号の成分。多くの近代化信号はデータ(I)とパイロット(Q)に分かれる。 (例: L5I, L5Q) |
| E | European (欧州) / Galileo | Galileoの信号を示す記号。(例: E1, E5a)。 |
| B | BeiDou (北斗) | BeiDouの信号を示す記号。(例: B1, B2a)。 B1I, B1C, B2I など、多数のコンポーネントが存在する。 |
なお、全衛星ごとの測位衛星信号については内閣府の公式サイトより閲覧可能です。
※1 通常は周波数を共有する信号同士は干渉してしまい正しく受信することが困難になってしまいますが、PRNコードを用いたCDMAという手法により信号の識別が可能となっています。送受信側で共通の合言葉を持っており、合言葉以外の信号は雑音として処理され、合言葉の信号は強められるといったような処理により識別されます。(送信側のPRNコードを含む生信号と受信側のコピーのPRNコード同士の積をとり、合計すると一致箇所が多い場合は合計値が大きくなりますが不一致箇所が多い場合は0に近づきます。)
gps-sdr-simでの処理について
ローカルの受信側の衛星軌道情報であるRINEXファイルを読み込んだのち、送信側の衛星軌道情報である航法メッセージにフォーマットを変換します。今回のgps-sdr-simの動作対象は、RINEXバージョン2における航法メッセージファイルかつGPS衛星信号です。
まとめ
今回わかりやすく説明したつもりでしたが、CDMAの詳細な仕組みやCLAS(PPP-RTK)、I/Q信号など新たな専門用語が登場してしまいました。信号処理の内容や測位方法については別の記事でまとめます。次回はチャネル割り当ての処理をメインに解説します。
Discussion