If you wish to contribute or participate in the discussions about articles you are invited to contact the Editor
Digital Signal Processing
|Title||Digital Signal Processing|
|Year of Publication||2011|
Digital Signal Processing consists of a set of processing steps, handling the input signal from its digitalization and down-conversion in the RF section's (antenna and front end), up to the GNSS receiver output, i.e. the navigation solution to the user.
The GNSS receiver digital signal processing section – depicted in Figure 1 – includes the baseband processing blocks of each channel up to the application processing, which provides the user with a navigation solution.
The incoming signal is fed to the baseband processing block that assigns each channel to a given signal from a given satellite. Each channel then correlates the incoming signal with locally generated replicas of the PRN code, and implements tracking loops to accurately follow the code delay and Doppler frequency of that specific signal. These results are also fed back to the local code generation section to update the generated replica.
The outputs of the baseband processing are the navigation bits for each signal (whenever applicable) and GNSS observables like pseudorange, carrier phase and Doppler frequency. Additional data is also generated such as C/N0 and lock detection indicators. The application processing integrates this information from all channels, to provide the expected solution.
Although in most GNSS receivers these channels operate independently, there could be situations where aiding information might be useful. As an example, inertial measurements could provide additional information on the receiver dynamics, and therefore help adjusting the code and carrier phase estimates.
The Doppler removal block is responsible for rotating the incoming signal by the estimated amount of carrier phase, accounting for the observed Doppler frequency in CDMA systems such as GPS and Galileo. In FDMA systems, such as GLONASS, all satellites transmit the same ranging (PRN) code, but each satellite is assigned with a dedicated centre frequency and frequency band. In this case, the Doppler removal block includes the estimated Doppler frequency added to the centre frequency shift at hand, specific to that satellite.
Correlators, Accumulators and Local Code Generation
These blocks are responsible for correlating the local codes with the incoming signal over a time interval (designed for each specific application), where the local codes are generated using the current estimate of the code delay and Doppler frequency. Correlations of the local replica with the incoming signals are the key operations of GNSS receivers, in order to be able to synchronize them. Further information on correlators can be found here.
Tracking loops are used to continuously follow and update the parameters to be estimated at the receiver: the code delay and the carrier phase of the incoming signal. A new estimation of these parameters is provided every T interval, where T is the accumulators’ integration time, which can be different for each of the parameters.
The design of the tracking loops is of paramount importance on the overall performance of the receiver, since it dictates the ability to correctly track the signal, hence influencing its accuracy. Further information on tracking loops can be found here.
This block uses the information provided by the accumulators in order to assess the tracking status. By inspection of the correlators phase and power, the lock detectors assess how well the incoming signal is being tracked. Based on this information, the Control and Monitoring block may decide to declare loss of lock on a channel, and to go back to the acquisition process. Further information can be found here.
Data Demodulation and Data Processing
This block takes the symbols extracted from the incoming signal and performs bit and frame synchronization in order to decode the navigation message, i.e. the data bits containing ephemeris and satellite clock information, among others. Besides retrieving the actual navigation data, synchronization with the incoming navigation message allows converting code delay estimates into pseudoranges, using the time tags provided by the satellite. Further information can be found here.
This block is responsible for processing the data coming from all channels to derive a navigation solution (e.g. PVT). The input data includes GNSS observables (code pseudo-range and carrier phase measurements) from all available channels, as well as the decoded navigation data (e.g. ephemeris and satellite clock error information).
Control and Monitoring
This block is common to all receiver blocks. At channel level, its purpose is to assign each channel with a signal to track, and to monitor its status. As an example, if a signal from a given satellite has been lost, the receiver may decide to allocate a new satellite (e.g. in case the original satellite has fallen below the masking angle), or it may decide to continue searching for this satellite (e.g. in case the satellite is still there, but has been momentarily obstructed).
Another relevant characteristic in GNSS receivers is that the time to first fix into a navigation solution may be optimized by using information from other satellites. As an example, in warm start conditions, the receiver may use pre-loaded almanac data, together with a rough initial position estimate, to determine which other satellites are visible. This operation is also controlled at this level, as different data sources and applications might be present.
At an overall receiver level, the control block manages all the operations, e.g. making sure that the outputs of all channels refer to the same time instant, and that a navigation solution uses only valid satellite measurements.
- Generic Receiver Description
- Tracking Loops
- Data Demodulation and Processing
- Lock Detectors