30

最近gps.conf、ディレクトリ内のファイルについて知りました/system/etc/。NTP_SERVER の値を通常の場所に近い NTP サーバーに微調整すると、TTFF が改善されるようです。

クラスのソースコードを読むLocationProviderと、起動時にNTPサーバーから時間が取得され、計算に「注入」されているようです。知る限り、各 GPS 衛星には非常に正確な原子時計が搭載されており、星座内のすべての衛星はいわゆる「GPS 時間」に同期しています。受信機が 4 つ以上の衛星を取得すると、次の 4 つの未知数がある方程式を (何らかの方法で) 解きます。ここで、(x,y,z) は受信機の位置、b は受信機の内部クロックと (正しい) GPS 時間との時間差です。修正が完了すると、受信機の時計が正しい時刻に同期されます。(私が間違っている場合は修正してください)。

これまでのところ、NTP タイム インジェクションの仕組みについていくつか質問があります。

  1. GPS 時間は、おおよそ TAI (国際原子時) にオフセットを加えたものです。これらの 2 つの時間は地球の自転に依存しませんが、UTC には依存します。NTP サーバーが UTC 時間を返す場合、UTC 時間から GPS 時間を推測することは可能ですか?
  2. より近いサーバーから NTP 時間を取得すると、GPS 時間の概算の「品質」がどのように向上しますか?
  3. GPS 時刻の初期値 (何らかの形で NTP 時刻から推測) があると仮定すると、インジェクションとは何ですか? この時間値は、x、y、z のみを未知数として方程式を解くのに正しいと見なされますか? もしそうなら、最初の修正も単なる概算ですよね?
  4. GPS 時間のより高品質な初期近似はどのように TTFF を改善しますか? 低品質の NTP 時間では、最初の修正が受け入れられないと見なされ、破棄されるためですか?
  5. おおよその初期位置を持つことは、次の正しい修正を取得するのに役立ちますか (sats のサブセットのみを聞くなど)?
4

3 に答える 3

23

少しウィキペディアと他の情報源をよく調べて、いくつかの推測をさせてください.

  1. はい、UTC 時間から GPS 時間を推測できます。15 秒ごとに送信され、約 18 か月に 1 回変化するオフセットを知る必要があります。出典:ウィキペディア

  2. NTP は正確な時間を提供しません。メッセージがクライアントからサーバーに到達するまでの時間と、応答がサーバーからクライアントに到達するまでの時間を測定します。これらの時間は、接続の遅延を計算するために使用されます。これは、受信時間へのオフセットとして適用されます。これは、対称ルートで機能します。ルートが非対称である場合、エラーがあります。したがって、サーバーに近づくと、非対称性の可能性とレベルが低下し、エラーが低下します。出典:ウィキペディア再び

  3. NTP 信号は、GPS 修正を取得するために直接使用されません。しかし、正確な修正を行うには、非常に正確なクロックが必要です。ここではナノ秒の話をしています。GPS 衛星は現在の GPS 時刻を送信しますが、光の速さで移動するため、多少の遅延があります。GPS 受信機は遅延が何であるかを知る方法がないため、いくつかの受信信号から概算する必要があります。受信するたびに、クロックはより正確になります。したがって、最初の時間が良いほど、正確な時計を得るために受信する必要がある時報が少なくなります。出典:ウィキペディア

  4. 3. でかなり説明されています。 - クロック エラーが低いほど、正しい時刻を概算するために必要な信号が少なくなります。

  5. ここではほとんど推測できませんが、おおよその位置がわかれば、衛星からの距離、つまり遅延をより正確に見積もるのに役立ちます。(実際に使用されているかどうかは不明です。)

少なくとも少しは意味があるといいのですが;-)

于 2011-12-07T23:16:51.207 に答える
3

私の答えは、質問の NTP 側に焦点を当てます。GPS については、mirabilos のコメントで言及されているこの PDF ペーパーを調べました。

そのドキュメントによると、 GPS 受信機のウォーム スタートには、20 秒以内の時間、100 km 以内の位置、25 m/s 以内の速度、および数週間前のアルマナック データを知る必要があります。各衛星からエフェミリド データをダウンロードする必要があります。これには、GPS 受信機の種類に応じて 30 秒から 3 分かかります。

ホット スタートの場合、エフェメリド データも必要です (これらは 4 時間有効です)。また、A-GPS (下記参照) からも利用できます。

NTP プロトコルは、元の時刻ソース (GPS、原子時計など) から始まるサーバーの階層を使用します。これは stratum-0 ソースと呼ばれます。このソースに直接接続された NTP サーバーは、stratum-1 と呼ばれます。これをアップストリーム サーバーとして使用するサーバーは stratum-2 などです。Stratum-1 サーバーでも 1 ミリ秒未満のエラーを達成するには、特別に調整されたハードウェアが必要です (CPU 割り込みの待ち時間、シリアル ポートの待ち時間、温度発振器の変化による)。

通常のネットワーク (たとえば飽和状態の DSL リンクではない) 上の通常の HW では、約 10 ミリ秒の精度を達成できます。たとえば、NTP プールは、100 ミリ秒以内の正確な時間があれば、サーバーが有効で十分に良好であると見なします。NTP からの時刻の精度は、ユーザーと NTP サーバーの間の地理的な位置には依存しませんが、階層、そのサーバーの品質、およびサーバーがネットワーク トポロジに基づく距離に依存します。

通常、Android フォンは少なくとも 1 秒以内の精度で時刻を認識します。GSM ネットワークを介した定期的な時刻同期を介して、またはデータ接続 (wifi またはセルラー) が利用可能な場合は、NTP も介して。

上記のアプリケーションFasterGPSの場合、 NTP サーバーをより良いものに変更しても、TTFF が高速になるわけではありません。そのためには、NTP では不可能な、ナノ秒以内の精度の時間が必要です。その精度で時間を追跡できるのは、GPS チップ自体だけです。AndroidでTTFFを高速化するのに役立つのは次のとおりです。

  • あなたはすでにあなたのAndroid携帯で20秒以内に楽しい時間を過ごしています
  • Wifi 経由または GSM ネットワーク経由でおおよその位置を把握している (送電塔に基づいて数 km 以内)
  • A-GPSを使用- インターネット経由ですべての GPS 衛星のアルマナックとエフェメリスの新しいコピーをダウンロードするため、GPS 衛星からダウンロードする必要はありません (エフェメリスの場合は 30 秒、アルマナックの場合は 15 分かかります)。A-GPS を使用すると、ホット スタートを使用して TTFF を 10 秒未満にすることができます。
于 2015-06-15T08:19:56.467 に答える
2

イアンは、答えは GPS 受信機が実際にどのように機能するかに関係しているという彼のコメントは正しいです。受信機のクロック バイアスの推定値がより正確であれば、受信機はより迅速に解決に到達します。多くの受信機は、受信機の位置とクロック バイアスの初期推定に依存する反復ソリューションを実装しています。これらの推定値がすでに真の値に近い場合、必要な反復回数は少なくなります。これは、TTFF が少なくなる理由の一部にすぎません。他にも重要な要素があります。初期位置と時間の見積もりが良ければ、

于 2014-04-16T10:10:11.180 に答える