測位の本質は、精密な距離測定
衛星測位は一言で表せます。位置が既知の複数の点からの距離がわかれば、自身の位置を計算できる。衛星がその既知の基準点であり、高度約2万kmから自身の位置と時刻を常時放送しています。
時間で距離を測る
衛星信号は光速で伝わります。各信号には正確な送信時刻が「刻印」されており、受信機が到着時刻を記録し、その差 Δt に光速 c を乗じることで衛星-受信機間の距離が得られます。ここでのスケール感は印象的です。1ナノ秒のタイミング誤差が約0.3mの測距誤差を生む。だからこそ、各衛星はナノ秒単位で時刻を刻む原子時計を搭載しているのです。
しかし、低コストに抑えるため、受信機側は未知の「時計バイアス」を持つ通常の水晶発振器を用います。したがって、実際に測定しているのは真の距離ではなく、バイアスを含んだ「疑似距離(Pseudorange)」です。この用語が、以降のすべてを理解する鍵となります。
3球の交点、4衛星で測位解
1つの衛星との距離がわかると、その衛星を中心とする球面上に位置が定まります。2つの衛星では2球が交わる円上に、3つの衛星では3球が交わる一点に絞られます。これが「三辺測量」です。では、なぜスマートフォンは常に「最低4衛星必要」と表示するのでしょうか? それは、x, y, z の3座標に加え、4つ目の未知数である受信機の時計バイアスが存在するからです。4つの未知数を解くには最低4衛星が必要であり、これらを連立方程式として同時に解きます。捕捉衛星数が多いほど、解は安定し高精度になります。
衛星は今どこに? — エフェメリス
衛星を基準として使うには、まずその正確な位置を知らなければなりません。各衛星は航法メッセージの中で一連のエフェメリスパラメータを放送しています。これは本質的にケプラー軌道要素に一連の摂動補正を加えたものです。これらを公式に代入すれば、受信機は任意の瞬間における衛星の3次元位置と速度を計算できます。エフェメリスは時間とともに「期限切れ」となるため、継続的に更新する必要があります。
時刻こそシステム全体の魂
GNSS全体は共通の時刻系(GPS時、BeiDou時など)の上に成り立っています。衛星時計のドリフト、相対論効果、送受信ハードウェア遅延——時刻のわずかなずれは、そのままメートル単位の測位誤差に拡大します。真の意味で、測位は何よりもまず時刻の問題なのです。
宇宙から実際に放送されているもの
衛星信号は、実際には3つの層が積み重なった構造です。この3層を理解すれば、測距のための「時刻情報」がどこに隠されているかがわかります。
① 搬送波は、信号を受信機へ「運ぶ」数ギガヘルツの正弦波です。② 測距コード(PRN)は公開された擬似ランダムな0/1シーケンスで、各衛星固有の「指紋」のようなものです。同一周波数上の衛星を識別可能にし(これがCDMAです)、測距に用いる高精度なタイミング情報を担います。③ 航法メッセージは最も低速なデータ層で、軌道情報、クロックパラメータ、衛星の健全性などを放送します。
現代のシステムは、複数の周波数で同時に放送も行います(GPS L1/L2/L5、BeiDou B1/B2/B3など)。マルチコンステレーション・マルチバンドは、可視衛星数を増やし遮蔽下での信頼性を向上させるだけでなく、2周波の組み合わせにより電離層誤差の大部分を直接除去できます。これが高精度測位の基盤であり、当社のシミュレータが1176~1610 MHzにわたり48チャンネルを並列実行する理由です。
信号経路上で何が起きるのか
衛星から受信機までの2万kmの旅路で、信号は層ごとに「値引き」されていきます。説得力のあるシミュレーションと正確な測位のためには、これらの損失を一つひとつモデル化する必要があり、そこが本格的なシミュレータと玩具との決定的な差です。
主な「割引」要因は次のとおりです。電離層遅延(太陽活動により大きく変動。通常Klobuchar 8パラメータモデルで補正)、対流圏遅延(衛星仰角と観測点標高に依存)、相対論効果(衛星は高速で移動し、より弱い重力場に位置するため、搭載時計が速く進み補正が必要。軌道離心率項を含む)、群遅延TGD/ISC(周波数間のハードウェア遅延バイアス)、マルチパス(建物や地面で反射した信号が直接波に重畳)、そして衛星時計バイアス(a0/a1/a2多項式で記述)です。
だからこそ、損失・誤差モデルを一連のチェーンとして組み込んでいます。Klobuchar電離層、仰角依存の対流圏、相対論補正と群遅延補正、仰角ベースの電力減衰。出力されるのは「理想的な信号」ではなく、実際の空に近い信号です。それを使って初めて、テストに真の意味が生まれます。
全天をソフトウェアで再構築
GNSS信号シミュレータが行うのは、前述の流れを「逆方向」に実行することです。シナリオ(時刻、場所、移動軌跡)が与えられると、各衛星の位置、擬似距離、受信機に対するドップラーを計算し、対応するRF信号を合成して受信機に供給します。これにより、研究開発やテストを実際の天候や軌跡から解放し、合法的な閉環境の中で、微弱信号、高ダイナミクス、特定のコンステレーション構成など、あらゆるシナリオをオンデマンドで再現できます。
この道のりはゼロから始まったわけではありません。オープンソースコミュニティでは、GPS-SDR-SIMやGNSS-SDRといったプロジェクトが、ソフトウェア無線(SDR)でGNSSベースバンド信号を生成できることを早くから実証していました。典型的には単一コンステレーション、単一周波数で、IQファイルをオフライン生成して再生するものでした。私たちはその成果の上に立ち、エンジニアリンググレードの実用性へと、さらにもう一段階押し上げました。
第一に信頼性です。従来のオフラインファイル方式では長時間テストが行えませんでした。当社は7×24時間連続稼働をサポートするリアルタイム信号エンジンを構築し、長時間の耐久試験や無人監視をようやく実現可能にしました。
第二にコストです。ハイエンド信号源は簡単に6桁(数十万)に達します。当社はアルゴリズムレベルで徹底的に最適化し、エンジンを低コストSDRデバイスに対応させ、ラボグレードの性能を一般ユーザーが手の届く価格に引き下げました。
最後に性能です。単一衛星・単一周波数のプロトタイプと比較して、当社は48チャンネルにわたるマルチコンステレーション・マルチバンド並列処理を実現し、前セクションの完全な誤差モデルおよび1 kHz更新レートと組み合わせることで、測位速度と精度の両方に真の向上をもたらし、高動態・高精度シナリオの検証に十分な性能を発揮します。より詳細な性能一覧は、ホームページの仕様をご覧ください。
受信機が測位を完了する仕組み
前章まではシステム視点で測位を説明してきましたが、本章では受信機側に視点を移します。受信機にとっての測位は、通常「捕捉」「追尾」「復調」「測位計算」の4段階を経て、ミリ秒から数秒のオーダーで連続的に完了し、その後は継続的に結果を出力し続けます。
捕捉と追尾
電源投入後、受信機はまずノイズに埋もれた衛星信号を探し出す必要があります。衛星は地上に対して高速で移動するため、その搬送波には明確なドップラーシフトが生じ、測距コードには未知のコード位相が乗っています。捕捉段階では、受信機がローカルで複製したコードを「ドップラー周波数 × コード位相」の2次元探索空間にわたって到来信号と相関処理し、両者が一致して明確な相関ピークが現れた時点で、その衛星は捕捉されたとみなされます。その後、追尾段階に移行します。コード追尾ループ(DLL)がコード位相の一致を維持し、搬送波追尾ループ(PLL)が搬送波のロックを維持することで、受信機は信号から安定かつ連続的に観測量を読み取れるようになります。いずれかのループがロックを失った場合は、再捕捉が必要です。
復調、測位計算、および初回測位時間
追尾が安定すると、受信機はビット同期とフレーム同期を完了し、航法メッセージを復調して、軌道情報や時計バイアスなどのパラメータを取得します。これらから各衛星の瞬時の位置を計算し、それぞれの疑似距離を組み合わせて、最小二乗法やカルマンフィルタにより受信機の位置、速度、時刻(PVT)を解きます。電源投入から最初の座標が出力されるまでの時間が初回測位時間(TTFF)です。事前情報がないコールドスタートでは通常数十秒かかりますが、軌道情報と概略位置がキャッシュされているウォームスタートでは、多くの場合わずか数秒で完了します。視野内の衛星数が多く、その幾何学的配置が良好であるほど(PDOPが小さいほど)、測位解はより安定して高精度になります。
スマートフォン等の民生機器:アプリ層は信号の詳細にアクセスできない
特に強調すべき点がある。スマートフォン等の民生機器では、信号受信、ダウンコンバート、捕捉、追尾、メッセージ復調はすべて、GNSSチップ(またはSoC内部のRF/ベースバンドブロック)とOS下位層が担っている。アプリは通常、生の観測量や信号処理プロセスに触れることはできず、システム位置情報サービスを通じて最終的な結論——緯度/経度の座標と精度推定値——を得るだけである。(一部のプラットフォームでは生の測定値を読み取るインターフェースが公開されているが、すべてのデバイスで利用できるわけではなく、システム権限やフレームワークの制約も伴う。)
このことは、測位テストをアプリ層で値を書き換えるのではなく、信号層またはシステム層で行うべき理由も説明している。シミュレータが狙うのはチップそのものだ。RFフロントエンドに十分にリアルな衛星信号を再現することで、チェーン全体が実際のロジックで捕捉・追尾・測位演算を行い、デバイスが自らプリセット位置を算出する——そのような検証だけが信頼に足るものであり、弱信号、マルチパス、高ダイナミクスといった実環境下での挙動をカバーできる唯一の方法なのだ。
仕組みを知り、理由を理解する
宇宙空間の微かな信号ビームから、画面上の安定した座標に至るまで、その間には測距、測位演算、時刻同期、誤差モデリングの層が幾重にも連携して存在している。原理を理解すれば、優れたシミュレータがどこに注力すべきかがより明確に見えてくる。そしてまさにその3つの軸——信頼性、コスト、性能——に沿って、私たちはオープンソースのプロトタイプを本格的なエンジニアリングに耐える製品へと磨き上げてきた。
具体的な機能や連携方法について詳しくは、製品ホームページに戻るか、お問い合わせください。
AnyLocate 仕様
以下に主要スペックの概要を示します。「✓」はサポート済み、その他は具体的な数値です。全パラメータはソフトウェア同梱のマニュアルおよびご使用のバージョンに準拠します。