You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用Google GNSS Logger获取的参数计算原始伪距PR?

Calculating Raw Pseudorange (PR) from Google GNSS Logger Parameters

Alright, let's break down exactly how to compute the raw pseudorange using the parameters you've listed from Google's GNSS Logger app. I'll walk you through each step with clear, actionable formulas using the variables provided.

Core Concept

Pseudorange is essentially the time it takes for a GNSS satellite signal to reach the receiver multiplied by the speed of light. So our goal is to first calculate that propagation time, then scale it to distance.

Step-by-Step Calculation

1. Compute the Receiver's GNSS System Time

First, we need to convert the device's hardware clock time to the GNSS system time (e.g., GPS time, GLONASS time) using the bias parameters:

GnssTimeNanos = TimeNanos - (FullBiasNanos + BiasNanos)
  • TimeNanos: The device's hardware clock timestamp (in nanoseconds)
  • FullBiasNanos: The total offset between the GNSS system time and the device's hardware clock (accounts for long-term drift)
  • BiasNanos: A short-term correction to the hardware clock bias

2. Calculate Signal Propagation Time

Next, we find how long the signal traveled from the satellite to the receiver. We need to adjust the satellite's transmit time to match the GNSS system time first:

PropagationTimeNanos = GnssTimeNanos - (ReceivedSvTimeNanos + TimeOffsetNanos)
  • ReceivedSvTimeNanos: The satellite's internal timestamp when it sent the signal (in nanoseconds)
  • TimeOffsetNanos: The offset between the individual satellite's clock and the overall GNSS system time (critical for constellations like GLONASS where satellites have unique clock offsets)

3. Convert Propagation Time to Pseudorange

Finally, convert the time (in nanoseconds) to distance (in meters) using the speed of light (c = 299792458 m/s):

PR = (PropagationTimeNanos * 1e-9) * c
  • The 1e-9 converts nanoseconds to seconds, since the speed of light is measured in meters per second.

Important Notes

  • Validate Satellite State: Always check the State parameter first. Only use measurements where the satellite is in a valid state (e.g., code lock achieved—look for flags like STATE_CODE_LOCK in the bitmask). Discard measurements from satellites that aren't properly tracked.
  • Uncertainty Calculation: If you need the pseudorange uncertainty, use the ReceivedSvTimeUncertaintyNanos the same way:
    PR_Uncertainty = (ReceivedSvTimeUncertaintyNanos * 1e-9) * c
    
  • Leap Seconds: The LeapSecond parameter accounts for the difference between GNSS time and UTC. For raw pseudorange calculation (which uses GNSS system time), you typically don't need this unless you're converting to UTC-based timestamps later.

This logic aligns with how Google's official GNSS measurement tools handle pseudorange derivation—you'll find similar calculations in their open-source implementations.

内容的提问来源于stack exchange,提问作者Aniket Raj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:07:09