ikautak.log

C/C++, Python, CUDA, Android, Linux kernel, Network, etc.

GPSの基礎

Software Design (ソフトウェア デザイン) 2011年 03月号 [雑誌]

Software Design (ソフトウェア デザイン) 2011年 03月号 [雑誌]

今さら3月号。
GPSの基礎だけブログに残しておく。

位置測定の原理

GPS衛星とユーザ位置との距離Rを測定すると、GPS衛星を中心とした半径Rの球のどこかにいることがわかる。
衛星が2つになると、2つの球が交わる円のどこかにいることがわかる。
衛星が3つになれば、3つの球の交点として位置が特定できる。(実際は4機で測定する)

距離の測定

衛星とユーザ受信機の距離を測るには、電波の速度が一定であることを利用する。
衛星の電波が受信機に届くまでの時間を測定し、距離を算出する。
GPS衛星は電波の送信だけ、ユーザ側は受信だけ行う。お互いが正確な時計をもっていることが前提となる。

測距には原子時計の正確な時間が必要

測位信号の伝搬速度は光速と同じで、1ナノ秒で約30cm進む。
正確なタイミングで測位信号を放送するためにGPSは原子時計を搭載している。

位置の計算

原子時計は大型だし高価なのでユーザ受信機に使えない。受信機側の時計誤差を未知数として扱うため、4機の衛星から測位信号が必要。
位置が求められると、時計誤差も得られるので、GPSで正確な時刻もわかる。
4機必要だが、5機以上の衛星が使えるなら使う。10機使えることもめずらしくない。

測位信号はCDMA方式

CDMA方式で多重化されているため、同じ周波数で複数のGPS衛星の測位信号を受信でき、受信機の小型化に役立っている。

GPS衛星の位置

GPS衛星の位置は航行メッセージと呼ばれ、測位信号に乗せられて送信される。
IS-GPSという米国国防省が発行している文書で、GPS衛星が送信する信号の詳細な内容が説明されている。
航行メッセージは通常1~2時間ごとに更新されている。