擬似ランダムコードによる時刻情報
端末に正確な時計を積むにせよ(実際はそんなことはしませんが)、第四の衛星で補正するにせよ、端末は内部の時計を使って各衛星からの電波の到達の遅れを測定する必要があります。
どうしたらいいでしょう。
端末が地球近辺にある限り、衛星との距離はせいぜい2万キロ台です。
つまり電波の遅れはせいぜい0.1秒足らずです。
ということは、例えば衛星が1秒に1回パルスを出せば、その到達時を知ることで、遅れは測定できそうです。
さらにどの衛星からのパルスなのかまで知りたければ、24個の衛星に01~24の各数字を割当て、その数字を二進数で表現したものを1秒に1回出せば良いわけです。
しかしこのやり方には大きな欠陥があります。
信号には通常ノイズが乗ります。
衛星からの電波出力を圧倒的に大きくし、また端末の受信感度をこれまた圧倒的に大きくすれば、ノイズの影響は防げるかもしれません。
しかしそれではコストや扱いやすさの面から不可なのです。
そこで用いられるのが擬似ランダムコードです。
これは「-1」と「+1」からなる長さ1023の信号列(ビット列)であり、「-1」と「+1」の出現頻度はほとんど同じで、配列にも規則性らしきものは見当たりません。
「-1」および「+1」は、1/1023ミリ秒を単位として変わっていきます。
つまり1023ビット全体としては1ミリ秒という長さになります。
そして「+1」の間には搬送波をそのまま流しますが、「-1」の間には逆転して流します。
これでいかにしてノイズに強い時間計測が行えるのか、自己相関という考え方を用いて、以下の2項で説明します。

