Stream processing reduction and parallel tracking method based on GNSS satellite signals

By adopting GPU stream processing technology in software receivers, the problem of large amount of calculations when processing satellite signals is solved, and more efficient and accurate signal tracking is achieved.

CN118050754BActive Publication Date: 2025-05-13NANJING UNIV OF INFORMATION SCI & TECH
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202410243369.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-03-04
Publication Date
2025-05-13
Estimated Expiration
2044-03-04

AI Technical Summary

Technical Problem

Existing software receivers have a lot of calculations when processing large amounts of satellite signal data, resulting in long tracking time and difficulty in achieving high-precision positioning.

Method used

The stream processing reduction sum parallel tracking method based on GPU is used to map a single-time floating-point computing function to the CPU through CPU + GPU heterogeneous mode, map the data sequence computing function to the GPU, and shorten the computing time through stream processing.

Benefits of technology

It improves the efficiency and accuracy of signal tracking, reduces tracking time, and improves the overall computing efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118050754B_ABST
    Figure CN118050754B_ABST
Patent Text Reader

Abstract

Based on the stream processing reduction and summation parallel tracking method of GNSS satellite signals, this method reads the carrier Doppler frequency shift and code phase offset data in the captured satellite data results, and obtains the frequency and phase of the local carrier and local pseudo code from the captured code phase offset; reads the data of a tracking cycle length, uses stream processing to generate three-way local pseudo code and local carrier of all tracking channels in parallel, and strips the carrier; uses multiplication to complete the three-way code stripping of the leading code, lagging code, prompt code and carrier stripping data, and sums the data vectors of each branch through the reduction algorithm and transmits the data to the CPU for processing, and then calculates the six-way coherence value; calculates the phase deviation of the pseudo code and the local carrier through the six-way coherence value, and updates the carrier frequency and code frequency at the same time to prepare for the next tracking. This tracking method adopts stream processing and multi-channel parallel design to increase the parallelism of the receiver and improve the calculation efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of GNSS satellite signals, and in particular to a stream processing reduction and parallel tracking method based on GNSS satellite signals. Background Art

[0002] With the continuous development of the global satellite navigation system (GNSS) and the improvement of social needs, people's requirements for navigation and positioning services are increasing. However, these high requirements also bring huge computational challenges to software receivers. Unlike hardware receivers that can have a large number of data computing units, the processor computing speed in software receivers is significantly lagging behind, especially in receivers that need to have high-precision positioning capabilities, the amount of computation required to capture satellite signal data also increases. Therefore, how to effectively handle a large amount of computation in software receivers has become a current research focus. In recent years, researchers in the field of software defined radio (SDR) have begun to explore general purpose GPU (GPGPU) computing based on GPUs, mainly focusing on using the large number of parallel processing units of GPUs for a wider range of data application computing in addition to image processing. The CPU+GPU heterogeneous mode is a common architectural approach in GPGPU computing, in which complex logic processing and transaction management tasks are performed by the CPU, while large-scale data parallel computing is handled by the GPU. In the civilian field, the demand for faster capture of satellite signals and more accurate tracking of satellites also makes software receivers using stream processing GPU parallel tracking technology more important in reality.

[0003] Compared with the original software receiver that only relies on a single CPU to receive and process satellite capture signals, which requires long computing time and redundant engineering structure, the use of CPU+GPU heterogeneous mode can more reasonably allocate data tracking and processing tasks, reduce tracking time, and improve computing efficiency. In actual engineering use, it can better capture and track satellite signals, so it is widely used.

[0004] In technical comparison with patent CN103278829A "A GPU-based parallel navigation satellite signal tracking method and system";

[0005] 1. Patent CN103278829A is responsible for the relevant calculation and integral summation of a large number of data sequences in the GPU, and the GPU uses a two-level binary tree calculation structure when completing the integral summation calculation. However, our method completes the three-way C / A code generation and carrier stripping of each channel in the GPU, and then uses the reduction algorithm to sum the vectors of each branch, thereby improving the overall calculation efficiency.

[0006] 2. Patent CN103278829A calculates the error through the carrier phase detector and CA code phase detector and controls the local carrier phase and CA code phase to make corrections, and repeats the process to achieve multiple tracking. Our method is based on stream processing. While generating the signal tracking results for this time, it also calculates the carrier phase and code phase and other related data for the next tracking, achieving higher tracking efficiency.

[0007] In technical comparison with patent CN115113241A "Signal tracking method, device, receiver and storage medium";

[0008] 1. Patent CN115113241A maps the parallel correlation results of the signal domain of each tracking channel to the spatial domain, accumulates the results of mapping all tracking channels to the spatial domain, obtains the parallel correlation results of the spatial domain, and obtains the navigation results based on the parallel correlation results of the spatial domain. Our method uses the GPU+CPU heterogeneous mode to map the single floating point calculation function to the CPU, and the data sequence calculation function to the GPU, and shortens the calculation time in the GPU and CPU through stream processing, and finally calculates the signal tracking results, improving the parallel efficiency and calculation efficiency of the overall process.

[0009] 2. Patent CN115113241A generates feedback control signals for each tracking channel based on navigation results and pre-acquired ephemeris solution of satellite motion states, and performs GNSS signal tracking based on the feedback control signals. Our method is based on parallel stream processing. While calculating the current signal tracking results, it also calculates the carrier phase and code phase and other related data in the next signal tracking process to achieve faster signal tracking. Summary of the invention

[0010] In order to solve the above technical problems, the present invention proposes a stream processing reduction and summation parallel tracking method based on GNSS satellite signals. The present invention overcomes the shortcomings of the traditional tracking algorithm with a floating-point calculation length of 1ms and the lack of obvious acceleration effect on GPUs with lower main frequency. At the same time, the tracking algorithm adopts a multi-channel parallel method and stream processing to increase the parallel degree of the receiver, thereby improving the signal tracking accuracy.

[0011] To achieve the above object, the technical solution adopted by the present invention is:

[0012] The stream processing reduction and parallel tracking method based on GNSS satellite signals includes the following steps:

[0013] S1 reads the data capture result:

[0014] The carrier tracking loop is used to further refine the tracked signal. For the GNSS receiver signal, the received phase will be flipped 180°, so the Costas loop is used in the receiver, which is insensitive to the phase flip of 180°.

[0015] S2 calculates the frequency and phase of the carrier and pseudo code:

[0016] According to the code phase offset in the signal, the signal data is read after a period of time after the capture is completed, and the frequency and phase of the local carrier and the local pseudo code are calculated based on this;

[0017] S3 reads the length of a tracking cycle:

[0018] Control the receiver's tracking time for GNSS satellite data signals to improve the success rate of signal capture and tracking;

[0019] S4 generates three local C / A codes and local carrier in parallel:

[0020] The code-related operations and carrier operations are placed in two different streams for stream processing operations. In the first stream, the carrier and signal data are copied to the GPU, and the carrier generation and stripping operations are performed. In the second stream, the code frequency and phase data are copied to the GPU, and the local three-way C / A code generation operation is performed.

[0021] S5 three-way code stripping and carrier stripping:

[0022] The generated corresponding carrier is multiplied with the signal data to realize carrier stripping. After completing the three-way C / A code generation and carrier stripping of each channel, the leading code, lagging code, prompt code and carrier stripping data with the same data length will be obtained, wherein the carrier stripping data is complex data including I and Q, and the three-way code stripping is completed by multiplication;

[0023] S6 reduction sum:

[0024] In the advance code correlator of a channel, a total of 12 thread blocks are opened, each thread block has 1024 threads, and the reduction summation algorithm is used. When the total amount of calculation data N is 2 n When , in the summing process A, the first number of the first half of the data is added to the first number of the second half of the data to obtain the summation result A, and so on, until 2 n After the calculation of each data is completed, the calculation process of summation process A is repeated in summation process B to obtain summation result B, and the above calculation process is repeated in subsequent calculations until the final summation result X is calculated;

[0025] S7 calculates the six-way coherence value:

[0026] Six coherent integration results I are generated by corresponding calculations of the three branches of advance, lag and instantaneous and the two carriers of I / Q.E ,I P ,I L , Q E , Q P and Q L ;

[0027] S8 calculates the phase deviation:

[0028] The code ring discriminator and phase lock loop estimate the phase difference φ between the instantaneous C / A code and the C / A code in the signal based on the six-way coherence value results. a and the phase difference φb between the local carrier and the input carrier. These two values ​​will be used as the control inputs of the code NCO and carrier NCO, thereby controlling the local carrier phase and the local C / A code phase;

[0029] S9 records the tracking results:

[0030] S10 whether to perform the next tracking:

[0031] Determine whether to continue tracking satellite signals in the next cycle. If so, go to S3; otherwise, go to S11.

[0032] S11: Whether to track the next satellite: Determine whether to track the next satellite. If you want to continue tracking the next satellite, go to S1, otherwise end the satellite signal tracking process.

[0033] As a further improvement of the present invention, the step S1 Costas loop adopts a two-way multiplication operation to keep all energy in the I path, and the Q path is noise. The satellite signal received by the software receiver is:

[0034]

[0035] Where τ is the initial phase of the signal arriving at the receiver, f IF is the intermediate frequency signal frequency, 2πf IF m is the initial phase of the intermediate frequency signal, For satellite signals The discrete form of D(n) is the data code, and the values ​​of both can only be ±1. Among them, P c is the average power of the satellite signal received by the antenna, x(n) is the satellite's C / A code, and the two signals obtained by multiplying the signal with the local carrier are:

[0036]

[0037] where f I ' F is the local carrier frequency, which is approximately equal to the intermediate frequency signal frequency f IF , so the above formula is simplified to:

[0038]

[0039] Then multiply it with the local pseudo code and accumulate it to get the coherence value of the I and Q branches. For the high-frequency components in the two signals, the finite length accumulation calculation is equivalent to low-pass filtering, and the accumulated value is negligible. Therefore, the correlation results of the I and Q paths are:

[0040]

[0041] x(n) is the local pseudo code. Obviously, the phase difference between the signal carrier and the local carrier is but

[0042]

[0043] thereby:

[0044]

[0045] When the satellite signal is phase-flipped due to navigation data, the Costas loop is not affected and always tracks the carrier phase signal;

[0046] At the same time, the code phase tracking loop in the receiver is a delay locked loop DLL, which is specifically implemented by multiplying the input signal with the local carrier and then correlating it with the lead, lag and on-time codes. The lead and lag codes are 0.5 chips ahead of and behind the on-time code. The correlation values ​​of the lead and lag codes with the input signal are compared through a phase detector to control the delay time of the on-time code, thereby achieving accurate code phase tracking.

[0047] As a further improvement of the present invention, the phase deviation is calculated in S8 as follows:

[0048] S8.1 Update carrier phase and code phase: During the stream processing, the CPU and GPU will no longer run synchronously, which makes it possible to simultaneously calculate the carrier phase and code phase in the next tracking process in the CPU while implementing the three-way code correlation calculation operation in the GPU.

[0049] As a further improvement of the present invention, stream processing is used to put the code generation operation and the carrier generation operation into two streams, so that the time required for the data generation operation is masked by the data copying operation at the time level to optimize the time efficiency.

[0050] As a further improvement of the present invention, the initial 2 n The data are reduced and summed, and 2 n The sum of the elements is 2 n-1 elements and perform log2N calculations to obtain the summed data result.

[0051] Compared with the prior art, the present invention has the following beneficial effects:

[0052] Beneficial effects of the present invention: This method combines the parallel characteristics of stream processing and GPU computing to map the single floating-point calculation function to the CPU. The data sequence calculation function is mapped to the GPU to achieve the parallel and rapid generation of the carrier and C / A code. The subsequent carrier stripping and three-way code stripping operations are optimized by stream processing. Finally, the vectors of each branch are summed through the reduction algorithm to quickly obtain the six-way coherence value, and the carrier phase and code phase for the next tracking are calculated in the CPU at the same time. This tracking method adopts stream processing and multi-channel parallel design to increase the parallelism of the receiver and improve the calculation efficiency of the entire tracking process. BRIEF DESCRIPTION OF THE DRAWINGS

[0053] Figure 1 It is a flow chart for implementing a stream processing reduction and parallel tracking method, wherein: S1-S11 in the figure correspond to S1-S11 described in the invention content respectively;

[0054] Figure 2 This is a block diagram of the tracking loop of a single channel of a GPS receiver, where: the tracking loop will refine the estimated values ​​of the carrier frequency and code phase in the signal captured by the satellite to achieve more accurate tracking;

[0055] Figure 3 It is the time execution flow of parallel generation of local three-way C / A codes and local carrier by stream processing, in which: code-related operations and carrier operations are placed in two different streams for processing, and the time required for carrier generation operations and code generation operations will be masked by two copy operations to improve computing efficiency;

[0056] Figure 4 It is a time relationship diagram of the three-way code correlator stream processing, where: while the code correlation operation is implemented in the GPU, the calculation of the carrier phase and code phase in the next tracking process is implemented in the CPU;

[0057] Figure 5 This is the implementation diagram of the reduction summation algorithm, where the total data N to be summed is 2 n The computational complexity of this algorithm is O(N) and the time complexity is O(log2N). DETAILED DESCRIPTION

[0058] The present invention is further described in detail below in conjunction with the accompanying drawings and specific embodiments:

[0059] In this embodiment, the object is a stream processing reduction and parallel tracking method, and the algorithm processing flow is as follows: Figure 1 Its tracking loop frame Figure 1 General structure as Figure 2 As shown, the specific process is described as follows:

[0060] S1 reads the data capture results: The carrier tracking loop is used to further refine the tracked signal. For the GNSS receiver signal, the received phase will be flipped 180°, so the Costas loop is usually used in the receiver. This loop is not sensitive to the phase flip of 180°. The Costas loop uses a two-way multiplication operation to keep all energy in the I path and the Q path is noise. The satellite signal received by the software receiver is:

[0061]

[0062] Where τ is the initial phase of the signal arriving at the receiver, f IF is the intermediate frequency signal frequency, 2πf IF m is the initial phase of the intermediate frequency signal. For satellite signals The discrete form of D(n) is the data code, and the values ​​of both can only be ±1. Among them, P c is the average power of the satellite signal received by the antenna, x(n) is the satellite's C / A code, and the two signals obtained by multiplying the signal with the local carrier are:

[0063]

[0064] where f' IF is the local carrier frequency, which is approximately equal to the intermediate frequency signal frequency f IF , so the above formula can be simplified to:

[0065]

[0066] Then multiply it with the local pseudo code and accumulate it to get the coherence value of the I and Q branches. For the high-frequency components in the two-way signal, the finite length accumulation calculation can be equivalent to low-pass filtering, and the accumulated value can be ignored, so the correlation results of the I and Q paths are:

[0067]

[0068] x(n) is the local pseudo code. Obviously, the phase difference between the signal carrier and the local carrier is but

[0069]

[0070] thereby:

[0071]

[0072] When the satellite signal undergoes a phase flip due to navigation data, the Costas loop is not affected and always tracks the carrier phase signal.

[0073] At the same time, the code phase tracking loop in the receiver is a delay locked loop (DLL), which is specifically implemented by multiplying the input signal with the local carrier and then correlating it with the lead, lag and on-time codes. The lead and lag codes are 0.5 code chips ahead of and behind the on-time code. The correlation values ​​of the lead and lag codes with the input signal are compared through a phase detector to control the delay time of the on-time code, thereby achieving accurate code phase tracking.

[0074] S2 calculates the frequency and phase of the carrier and pseudo code: according to the code phase offset in the signal, the signal data is read after a period of time after the capture is completed, and the frequency and phase of the local carrier and local pseudo code are calculated based on this.

[0075] S3 reads the length of a tracking cycle: controls the receiver's tracking time for GNSS satellite data signals, and improves the success rate of signal capture and tracking.

[0076] S4 generates local three-way C / A code and local carrier in parallel: code-related operations and carrier operations are placed in two different streams for stream processing operations. In the first stream, the carrier and signal data are copied to the GPU, and the carrier generation and stripping operations are performed. In the second stream, the code frequency and phase data are copied to the GPU, and the local three-way C / A code generation operation is performed. The time execution relationship in actual runtime is as follows Figure 3 As shown, the time required for the carrier generation operation and the code generation operation will be masked by the two copy operations. Assuming that the time required for the memory copy operation and the kernel function execution operation is the same, the stream processing optimization of the carrier and C / A code will save 25% of the time.

[0077] S5 three-way code stripping and carrier stripping: Multiply the generated corresponding carrier with the signal data to achieve carrier stripping. After completing the three-way C / A code generation and carrier stripping of each channel, the leading code, lagging code, prompt code and carrier stripping data with the same data length will be obtained, among which the carrier stripping data is complex data containing I and Q paths, and the three-way code stripping is completed by multiplication.

[0078] S6 reduction summation: In the advance code correlator of a channel, a total of 12 thread blocks are opened, and each thread block has 1024 threads. Figure 5 The reduction summation algorithm, when the total amount of data N is 2 n When , in the summing process A, the first number of the first half of the data is added to the first number of the second half of the data to obtain the summation result A, and so on, until 2 nAfter the calculation of data is completed, the calculation process of summation process A is repeated in summation process B to obtain summation result B, and the above calculation process is repeated in subsequent calculations until the final summation result X is calculated. It can be seen that a total of (log2N) calculation cycles are required to calculate the final result, which greatly improves the data summation efficiency in the GPU.

[0079] S7 calculates six coherent values: six coherent integration results I are generated by corresponding calculations of the three branches of advance, lag and instantaneous and the two carriers of I / Q. E ,I P ,I L , Q E , Q P and Q L .

[0080] S8 calculates phase deviation: the code loop discriminator and phase lock loop can estimate the phase difference φ between the instantaneous C / A code and the C / A code in the signal based on the six-way coherence value results. a and the phase difference between the local carrier and the input carrier φ b , these two values ​​will serve as control inputs of the code NCO and carrier NCO, thereby controlling the local carrier phase and local C / A code phase.

[0081] S8.1 Update carrier phase and code phase: During the stream processing, the CPU and GPU will no longer run synchronously, which makes it possible to implement three-way code correlation calculation operations in the GPU while simultaneously calculating the carrier phase and code phase in the next tracking process in the CPU. The specific process is as follows: Figure 4 shown.

[0082] S9 records the tracking results: records the signal tracking results to improve the overall performance and reliability of the GNSS software receiver.

[0083] S10: Whether to perform the next tracking: Determine whether to perform the next cycle of satellite signal tracking. If the tracking is to be continued, go to S3; otherwise, go to S11.

[0084] S11: Whether to track the next satellite: Determine whether to track the next satellite. If you want to continue tracking the next satellite, go to S1, otherwise end the satellite signal tracking process.

[0085] The above description is only a preferred embodiment of the present invention and does not constitute any other form of limitation to the present invention. Any modification or equivalent change made based on the technical essence of the present invention still falls within the scope of protection required by the present invention.

Claims

1. A stream processing reduction and parallel tracking method based on GNSS satellite signals, characterized by: The following steps are included S1 reads the data capture result: The carrier tracking loop is used to further refine the tracked signal. For the GNSS receiver signal, the received phase will be flipped 180°, so the Costas loop is used in the receiver, which is insensitive to the phase flip of 180°. S2 calculates the frequency and phase of the carrier and pseudo code: According to the code phase offset in the signal, the signal data is read after a period of time after the capture is completed, and the frequency and phase of the local carrier and the local pseudo code are calculated based on this; S3 reads the length of a tracking cycle: Control the receiver's tracking time for GNSS satellite data signals to improve the success rate of signal capture and tracking; S4 generates three local C / A codes and local carriers in parallel: The code-related operations and carrier operations are placed in two different streams for stream processing operations. In the first stream, the carrier and signal data are copied to the GPU, and the carrier generation and stripping operations are performed. In the second stream, the code frequency and phase data are copied to the GPU, and the local three-way C / A code generation operation is performed. S5 three-way code stripping and carrier stripping: The generated corresponding carrier is multiplied with the signal data to realize carrier stripping. After completing the three-way C / A code generation and carrier stripping of each channel, the leading code, lagging code, prompt code and carrier stripping data with the same data length will be obtained, wherein the carrier stripping data is complex data including I and Q, and the three-way code stripping is completed by multiplication; S6 reduction sum: In the advance code correlator of a channel, a total of 12 thread blocks are opened, each thread block has 1024 threads, and the reduction summation algorithm is used. When the total amount of calculation data N is 2 n When , in the summing process A, the first number of the first half of the data is added to the first number of the second half of the data to obtain the summation result A, and so on, until 2 n After the calculation of each data is completed, the calculation process of summation process A is repeated in summation process B to obtain summation result B, and the above calculation process is repeated in subsequent calculations until the final summation result X is calculated; S7 calculates the six-way coherence value: Six coherent integration results I are generated by corresponding calculations of the three branches of advance, lag and instantaneous and the two carriers of I / Q. E ,I P ,I L , Q E , Q P and Q L ; S8 calculates the phase deviation: The code ring discriminator and phase lock loop estimate the phase difference φ between the instantaneous C / A code and the C / A code in the signal based on the six-way coherence value results. a and the phase difference between the local carrier and the input carrier φ b , these two values ​​will be used as the control input of the code NCO and the carrier NCO, thereby controlling the local carrier phase and the local C / A code phase; the S8 calculates the phase deviation as follows: S8.1 Update carrier phase and code phase: During the stream processing, the CPU and GPU will no longer run synchronously, which makes it possible to simultaneously calculate the carrier phase and code phase in the next tracking process in the CPU while implementing the three-way code correlation calculation operation in the GPU; S9 records the tracking results: S10 whether to perform the next tracking: Determine whether to track the next satellite signal. If so, go to S3; otherwise, go to S11. S11: whether to track the next satellite: Determine whether to track the next satellite. If so, go to S1; otherwise, end the satellite signal tracking process.

2. The stream processing reduction and parallel tracking method based on GNSS satellite signals according to claim 1 is characterized in that: The step S1 Costas loop adopts two-way multiplication operation to keep all energy in the I path, and the Q path is noise. The satellite signal received by the software receiver is: Where τ is the initial phase of the signal arriving at the receiver, f IF is the intermediate frequency signal frequency, 2πf IF m is the initial phase of the intermediate frequency signal, For satellite signals The discrete form of D(n) is the data code, and the values ​​of both can only be ±1. Among them, P c is the average power of the satellite signal received by the antenna, x(n) is the satellite's C / A code, and the two signals obtained by multiplying the signal with the local carrier are: where f′ IF is the local carrier frequency, which is approximately equal to the intermediate frequency signal frequency f IF , so the above formula is simplified to: Then multiply it with the local pseudo code and accumulate it to get the coherence value of the I and Q branches. For the high-frequency components in the two signals, the finite length accumulation calculation is equivalent to low-pass filtering, and the accumulated value is negligible. Therefore, the correlation results of the I and Q paths are: x(n) is the local pseudo code. Obviously, the phase difference between the signal carrier and the local carrier is but thereby: When the satellite signal is phase-flipped due to navigation data, the Costas loop is not affected and always tracks the carrier phase signal; At the same time, the code phase tracking loop in the receiver is a delay locked loop DLL, which is specifically implemented by multiplying the input signal with the local carrier and then correlating it with the lead, lag and on-time codes. The lead and lag codes are 0.5 chips ahead of and behind the on-time code. The correlation values ​​of the lead and lag codes with the input signal are compared through a phase detector to control the delay time of the on-time code, thereby achieving accurate code phase tracking.

3. The stream processing reduction and parallel tracking method based on GNSS satellite signals according to claim 1 is characterized in that: Stream processing is used to put the code generation operation and the carrier generation operation into two stream operations, so that the time required for the data generation operation is masked by the data copy operation to optimize the time efficiency at the time level.

4. The stream processing reduction and parallel tracking method based on GNSS satellite signals according to claim 1 is characterized in that: The initial 2 n The data are reduced and summed, and 2 n The sum of the elements is 2 n-1 elements and perform log2N calculations to obtain the summed data result.

Citation Information

Patent Citations

  • Parallel navigation satellite signal tracking method based on GPU (graphics processing unit) and system thereof

    CN103278829A

  • Signal tracking method and device, receiver and storage medium

    CN115113241A

  • Low-operand code-shift keying signal tracking method and low-operand code-shift keying signal tracking device

    CN117406252A