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 8: Line 8:
}}
}}


Digital Signal Processing is responsible for the processing of the input signal from its digitization and down-conversion in the RF section ([[Antenna|antenna]] and [[Front End|front end]]), up to the overall receiver output, including the Application Processing block which compiles the information provided by all channels in order to provide a 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 as well as 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 a locally generated replica 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 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.
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 common receiver architectures 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.
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.




Line 22: Line 22:


==Doppler Removal==
==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 code (also called PRN code) but each satellite is assigned with a dedicated frequency band. In this case, the Doppler removal block actually includes the estimated Doppler frequency added to the center frequency shift at hand, specific to that satellite.
 
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.
 


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


==Tracking Loops==
==Tracking Loops==
Tracking loops are used to follow continuously both parameters to be estimated: 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 and hence influencing the accuracy of the receiver.
 
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 and hence influencing the accuracy of the receiver.


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


==Applications Processing==
==Applications Processing==
This block is responsible for processing the data 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).


Further information can be found [[Applications Processing|here]].
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==
==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 block assesses 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.
 
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]].
Further information can be found [[Lock Detectors|here]].


==Control and Monitoring==
==Control and Monitoring==
This block is common to all receiver block.
 
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.  
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).  
 
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 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.



Revision as of 17:18, 5 May 2011


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


Digital Signal Processing is responsible for processing the input signal from its digitization and down-conversion in the RF section (antenna and front end), up to the GNSS receiver output: 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. The incoming signal is fed to the 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 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.


Figure 1:Generic Digital Signal Processing block diagram.


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 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.


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 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 here.


Tracking Loops

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 and hence influencing the accuracy of the receiver.

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 pseudo-range 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 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 loss of lock and to go back to the acquisition process.

Further information can be found here.


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).

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.


Related articles

References