If you wish to contribute or participate in the discussions about articles you are invited to contact the Editor

Digital Signal Processing: Difference between revisions

From Navipedia
Jump to navigation Jump to search
No edit summary
No edit summary
Line 7: Line 7:
|Logo=GMV
|Logo=GMV
}}
}}
 
Digital Signal Processing consists of a set of processing steps, handling the input signal from its digitization and down-conversion in the RF section's ([[Antennas|antenna]] and [[Front End|front end]]), up to the GNSS receiver output, i.e. the navigation solution to the user.
Digital Signal Processing is responsible for processing the input signal from its digitization and down-conversion in the RF section ([[Antennas|antenna]] and [[Front End|front end]]), up to the GNSS receiver output: the navigation solution to the user.


==Block Diagram==
==Block Diagram==
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 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|baseband processing block]] that assigns each channel to a given signal from a given satellite. Each channel correlates the incoming signal with locally generated replicas of the PRN code and implements [[Tracking Loops|tracking loops]] to follow accurately the code delay and the Doppler frequency of that specific signal in a feedback loop to the local code generation.
The outputs of the baseband processing are the navigation bits for each signal (whenever applicable) and GNSS observables (pseudorange, carrier phase and Doppler frequency), as well as additional data such as CN0 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 could 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.


[[File:dsp_block.png|center|thumb|550px|'''''Figure 1:'''''Generic Digital Signal Processing block diagram.]]
[[File:dsp_block.png|center|thumb|550px|'''''Figure 1:'''''Generic Digital Signal Processing block diagram.]]


The incoming signal is fed to the [[Baseband Processing|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|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.


==Doppler Removal==
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.


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|GLONASS]], all satellites transmit the same ranging (PRN) code but each satellite is assigned with a dedicated frequency band. In this case, the Doppler removal block includes the estimated Doppler frequency added to the center frequency shift at hand, specific to that satellite.
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.


==Doppler Removal==
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|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==
==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 [[Correlators|here]].
These blocks are responsible for correlating the local codes with the incoming signal over a time interval (designed for that specific application). The local codes are generated using the current estimate of the code delay. Correlations of the locally generated ranging codes with the incoming signal are the key operations of the GNSS receiver in order to synchronize them.
 
Further information can be found [[Correlators|here]].
 


==Tracking Loops==
==Tracking Loops==
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.


Tracking loops are used to follow continuously 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 and 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 [[Tracking Loops|here]].
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 and hence influencing the accuracy of the receiver.
 
Further information can be found [[Tracking Loops|here]].


==Lock Detectors==
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 [[Receiver Operations|loss of lock]] on a channel, and to go back to the acquisition process. Further information can be found [[Lock Detectors|here]].


==Data Demodulation and Data Processing==
==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 [[Data Demodulation and Processing|here]].
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 pseudo-range using the time tags provided by the satellite.
 
Further information can be found [[Data Demodulation and Processing|here]].
 


==Applications Processing==
==Applications Processing==
 
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).
This block is responsible for processing the data coming from all channels to derive a navigation solution (e.g. PVT). The input data include 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).
 
 
==Lock Detectors==
 
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 Channel Control and Monitoring block may decide to declare [[Receiver Operations|loss of lock]] and to go back to the acquisition process.
 
Further information can be found [[Lock Detectors|here]].
 


==Control and Monitoring==
==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).


This block is common to all receiver blocks.
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 [Receiver Operations|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 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).
 
Furthermore, the time to first fix into a navigation solution may be optimized by using information from other satellites. As an example, in [Receiver Operations|warm start conditions]], the receiver may use pre-loaded almanac data together with a rough initial position estimate to determine what other satellites are visible.  
 
At 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.


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.


==Related articles==
==Related articles==

Revision as of 10:23, 6 May 2011


ReceiversReceivers
Title Digital Signal Processing
Author(s) GMV
Level Advanced
Year of Publication 2011
Logo GMV.png

Digital Signal Processing consists of a set of processing steps, handling the input signal from its digitization 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.

Block Diagram

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.

Figure 1:Generic Digital Signal Processing block diagram.

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.

Doppler Removal

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

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.

Lock Detectors

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.

Applications Processing

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 [Receiver Operations|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.

Related articles

References