Parallel direct position estimation receiver navigation domain joint accumulation output calculation method

By adopting GPU parallel processing strategy in the direct position estimation receiver, the problem of large amount of computing in complex environments is solved, efficient navigation domain joint accumulation output calculation is achieved, and navigation performance and real-time positioning capabilities are improved.

CN115639577BActive Publication Date: 2025-08-19CIVIL AVIATION UNIV OF CHINA
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211424661.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-11-14
Publication Date
2025-08-19
Estimated Expiration
2042-11-14

AI Technical Summary

Technical Problem

Direct location estimation receivers have huge computing volume in complex environments, making it difficult to achieve effective navigation solutions, resulting in reduced navigation performance or inability to work properly in dense urban areas and indoor environments.

Method used

Three different levels of parallel processing strategies are adopted: using GPU multi-threaded parallel execution of satellite channels, GPU multi-stream mechanism to execute correlators at each candidate grid point in the navigation field in parallel, and GPU multi-threaded blocks to perform joint accumulation output calculations in parallel, replacing the traditional sequential computing method.

Benefits of technology

It significantly improves the computing efficiency of the direct position estimation receiver, realizes real-time navigation and positioning in complex environments, with an average acceleration ratio of 600-800 times, meeting the real-time operation requirements of the project.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115639577B_ABST
    Figure CN115639577B_ABST
Patent Text Reader

Abstract

A parallel direct position estimation receiver navigation domain joint accumulation output calculation method. The parallel calculation scheme is implemented through three levels of parallel strategies, wherein the first level is: using GPU multi-threading to execute the correlator of a satellite channel in parallel; the second level is using GPU multi-stream mechanism to execute the correlators required by different satellite channels at each candidate grid point in the navigation domain in parallel, to obtain the joint accumulation output of a grid point; the third level is using GPU multi-threading blocks to execute the calculation of the joint accumulation output at different candidate grid points in parallel, thereby obtaining the joint accumulation output of all grid points. The parallel direct position estimation receiver navigation domain joint accumulation output calculation method provided by the present invention simultaneously adopts three different levels of parallel strategies to calculate the navigation domain joint accumulation output, which can greatly improve the computational efficiency of the direct position estimation receiver and lay the foundation for its real-time operation.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the technical field of high-performance satellite navigation receivers, and particularly relates to a method for calculating the navigation domain joint accumulation output of a parallel direct position estimation receiver. The method simultaneously adopts three different levels of parallel strategies to calculate the navigation domain joint accumulation output, thereby significantly improving the operational efficiency of existing direct position estimation receivers and laying the foundation for their real-time operation. Background Art

[0002] The Global Navigation Satellite System (GNSS) provides highly accurate three-dimensional position, velocity, and time (PVT) information to users worldwide. Its remarkable features, including all-weather, all-time operation, high accuracy, automation, and high efficiency, have led to its widespread adoption. As GNSS applications continue to expand, user receivers are increasingly operating in complex environments, such as densely populated urban areas and indoors, moving beyond open outdoor environments. In these environments, satellite signal power is severely attenuated by various penetration losses. This can render traditional GNSS receivers unable to track some or all satellite signals, severely degrading navigation performance or even terminating their operation.

[0003] Unlike traditional GNSS receivers, which first track each satellite signal separately and then perform a navigation solution in two steps, the direct position estimation algorithm directly accumulates the signal energy in the navigation domain by combining all visible satellite signals. The combined accumulation output is used to obtain the navigation solution in a single step, avoiding the estimation of intermediate parameters. This makes it possible to use GNSS for effective navigation in complex environments. A direct position estimation receiver needs to preset several candidate grid points in the navigation domain and calculate the correlation value at each candidate grid point within the navigation domain. It then jointly accumulates the correlation values of each satellite signal and finally performs a navigation solution based on the combined accumulation output. Because the correlator calculation itself is computationally intensive and the direct position estimation receiver needs to calculate the correlation values of all satellite signals at all candidate grid points in the navigation domain, the implementation of a direct position estimation receiver requires a huge amount of computation, making it difficult to promote and apply. Summary of the Invention

[0004] In order to solve the above problems, the purpose of the present invention is to provide a parallel direct position estimation receiver navigation domain joint accumulation output calculation method, which can effectively improve the calculation efficiency of the existing direct position estimation receiver.

[0005] To achieve the above objectives, the present invention provides a parallel direct position estimation receiver navigation domain joint accumulation output calculation method including the following three levels of parallel processing strategies:

[0006] 1) The first level of parallel processing is to use GPU (Graphics Processing Unit) multi-threading to execute the correlator of a satellite channel in parallel to obtain the correlation amplitude of the satellite channel;

[0007] 2) The second layer of parallel processing uses the GPU multi-stream mechanism to execute the correlators required by different satellite channels at each candidate grid point in the navigation domain in parallel, obtaining a joint accumulation output at one grid point;

[0008] 3) The third layer of parallel processing is to use GPU multi-threaded blocks to parallelly execute the calculation of the joint accumulation output at different candidate grid points to obtain the joint accumulation output of all grid points.

[0009] In step 1), the first layer of parallel processing is to execute a correlator of a satellite channel in parallel using GPU multithreading. The specific method of obtaining the correlation amplitude of the satellite channel is:

[0010] Multiple threads are allocated in the GPU kernel function, and each thread performs the local code generation and local carrier generation tasks in parallel to obtain the local reference signal Next, the received signal x(n) involved in the correlator is compared with the local reference signal The large number of multiplication and addition operations in the correlation operation are assigned to multiple threads for parallel execution, replacing the traditional correlator that performs multiplication and addition operations sequentially. Finally, the correlation amplitude is calculated using the CUDA (Compute Unified Device Architecture) protocol summation algorithm. The correlation amplitude of a satellite channel is expressed as:

[0011]

[0012] Where N represents the number of satellite signal sampling points.

[0013] In step 2), the second layer of parallel processing utilizes the GPU multi-stream mechanism to execute in parallel the correlators required by different satellite channels at each candidate grid point in the navigation domain. The specific method for obtaining the joint accumulation output of a grid point is:

[0014] The GPU multi-stream mechanism is used to execute the correlators of different satellite channels at each candidate grid point in the navigation domain in parallel, converting the traditional sequential calculation of the correlation values of each satellite signal into parallel calculation to improve computational efficiency. First, asynchronous, independent CUDA streams equal to the number of visible satellites L are constructed. Each CUDA stream executes a correlator obtained in the first layer and outputs the correlation value of a satellite signal. L CUDA streams execute multiple correlators in parallel to complete the correlation value calculation of all satellite channels. Finally, the correlation value at a grid point is obtained by incoherent accumulation of all correlator outputs. The correlation amplitude at a candidate grid point can be expressed as:

[0015]

[0016] Where τ represents the code delay, f d represents the Doppler shift, the superscript i = 1, 2, …, L represents the parameter corresponding to the i-th satellite signal, and L represents the number of visible satellites.

[0017] In step 3), the third layer of parallel processing is to use GPU multi-thread blocks to perform the calculation of the joint accumulation output at different candidate grid points in parallel. The specific method for obtaining the joint accumulation output of all grid points is:

[0018] The M thread blocks of the GPU are used to execute the joint accumulation values at different candidate grid points in parallel, replacing the traditional method of calculating the joint accumulation values of each grid point point by point. M GPU thread blocks are allocated according to the number of candidate grid points, and one thread block executes the calculation of the joint accumulation output of one grid point in the second layer. The M thread blocks execute the calculation of multiple different candidate grid points in parallel, completing the calculation of the corresponding correlation values at all candidate grid points in the navigation domain, thereby obtaining the joint accumulation output of all grid points. The joint accumulation output result of the navigation domain of the direct position estimation receiver is expressed as: Γ = [Λ1,Λ2,…,Λ M ], subscripts 1, 2, ..., M represent the index value of the navigation domain grid point.

[0019] The parallel direct position estimation receiver navigation domain joint accumulation output calculation method provided by the present invention has the following advantages over the prior art:

[0020] (1) The present invention utilizes multiple threads of a GPU to perform the multiplication and addition operations involved in the correlator in parallel, replacing the traditional correlator's method of performing multiplication and addition operations sequentially, thereby improving the correlator's operational efficiency.

[0021] (2) The present invention utilizes the GPU multi-stream mechanism to execute in parallel the correlators required by different satellite channels at each candidate grid point in the navigation domain, converting the traditional method of sequentially calculating the correlation values of each satellite signal into a parallel calculation method, thereby improving the computational efficiency.

[0022] (3) The present invention utilizes GPU multi-thread blocks to perform the calculation of joint accumulation values at different candidate grid points in parallel, replacing the traditional point-by-point calculation of joint accumulation values for each grid point, thereby further improving the computational efficiency of the direct position estimation receiver. BRIEF DESCRIPTION OF THE DRAWINGS

[0023] Figure 1 This is a flow chart of the parallel direct position estimation receiver navigation domain joint accumulation output calculation method provided by the present invention.

[0024] Figure 2 Schematic diagram of the calculation principle of the CUDA reduced sum algorithm.

[0025] Figure 3 (a) Joint accumulation output result of existing direct position estimation receiver in the east-north navigation domain.

[0026] Figure 3 (b) is the joint accumulation output result of the parallel direct position estimation receiver in the east-north navigation domain.

[0027] Figure 4 Comparison of the combined accumulation output of the two methods for the east direction in the Northeastern Universe (ENU) coordinate system.

[0028] Figure 5 (a) Comparison of positioning results of the two methods in the longitude, latitude and altitude (LLA) coordinate system.

[0029] Figure 5 (b) shows the horizontal positioning error results of the two methods. DETAILED DESCRIPTION

[0030] The parallel direct position estimation receiver navigation domain joint accumulation output calculation method provided by the present invention is described in detail below with reference to the accompanying drawings and specific embodiments.

[0031] like Figure 1 As shown, the parallel direct position estimation receiver navigation domain joint accumulation output calculation method provided by the present invention includes the following three different levels of parallel processing strategies:

[0032] 1) The first level of parallel processing is to use GPU multithreading to execute the correlator of a satellite channel in parallel to obtain the correlation amplitude of the satellite channel;

[0033] The correlator is executed in parallel using GPU multi-threading. This requires allocating N threads in the GPU kernel function according to the number of satellite signal sampling points N. Each thread completes the correlation operation of one sampling point, and each thread executes in parallel to complete a satellite channel correlator operation task.

[0034] First, each thread executes the local carrier generation task in parallel to obtain the local carrier signal exp(-2πjf d n). Secondly, each thread performs the local C / A code generation task in parallel to obtain the local C / A code signal g(n-τ). This replaces the traditional direct position estimation receiver's method of generating local reference signals at each sampling point. The local reference signal of a satellite channel is It can be expressed as:

[0035]

[0036] Where n is the number of the signal sampling point, τ is the code delay, and f d Indicates the Doppler shift.

[0037] Next, the received signal x(n) involved in the correlator is compared with the local reference signal The large number of multiplication and addition operations in the correlation operation are assigned to multiple threads for parallel execution, replacing the traditional correlator that performs multiplication and addition operations sequentially. Finally, the CUDA reduced sum algorithm is used to calculate the cumulative result of the correlation values of N different threads. The correlation amplitude of a satellite channel can be expressed as:

[0038]

[0039] The calculation principle diagram of the CUDA reduced summation algorithm is as follows Figure 2 As shown, the specific calculation process of this method is as follows:

[0040] First, calculate the sum of N / 2 threads, that is, Λ[0]=Λ[0]+Λ[0+N / 2], Λ[1]=Λ[1]+Λ[1+N / 2]...Λ[N / 2]=Λ[N / 2]+Λ[N / 2+N / 2], get the partial array sum, and the number of threads is halved.

[0041] Then calculate the sum of N / 4 threads, that is, Λ[0]=Λ[0]+Λ[0+N / 4], Λ[1]=Λ[1]+Λ[1+N / 4]...Λ[N / 4]=Λ[N / 4]+Λ[N / 4+N / 4], get the partial array sum, and the number of threads is halved again.

[0042] Similarly, each summation obtains a partial array sum, and the number of threads is halved. After performing this operation log2N times, the total sum across all threads is calculated. This shows that compared to the O(N) time complexity of the traditional summation method, the CUDA reduced summation algorithm reduces its time complexity to O(log2N), further improving computational efficiency.

[0043] 2) The second layer of parallel processing uses the GPU multi-stream mechanism to execute the correlators required by different satellite channels at each candidate grid point in the navigation domain in parallel, obtaining a joint accumulation output at one grid point;

[0044] The GPU multi-stream mechanism is used to execute the correlators of different satellite channels at each candidate grid point in the navigation domain in parallel, converting the traditional sequential calculation of the correlation values of each satellite signal into parallel calculation to improve computational efficiency. First, an asynchronous, independent CUDA stream is constructed, which is the same as the number of visible satellites L. Each CUDA stream executes a correlator to calculate the correlation value of a satellite signal. L CUDA streams execute multiple correlators in parallel to complete the correlation value calculation of all satellite channels. During the execution of each CUDA stream, when one of the CUDA streams performs correlation calculations, the other CUDA streams perform data transfer. This parallel working method improves efficiency. Finally, all correlator outputs are non-coherently accumulated to obtain the correlation value at a grid point. The correlation amplitude at a candidate grid point can be expressed as:

[0045]

[0046] In the above formula, superscript i=1,2,…,L represents the parameter corresponding to the i-th satellite signal, and L represents the number of visible satellites.

[0047] 3) The third layer of parallel processing uses the GPU's M thread blocks to perform the calculation of the joint accumulation output at different candidate grid points in parallel, obtaining the joint accumulation output of all grid points;

[0048] Unlike the traditional method of calculating the joint accumulation value of each grid point point by point, this method uses the M thread blocks of the GPU to perform the calculation of the joint accumulation output at different candidate grid points in parallel. First, M GPU thread blocks are allocated according to the number of candidate grid points, and one thread block performs the calculation of the joint accumulation output of one grid point in the second layer. M thread blocks perform the calculation of multiple different candidate grid points in parallel, completing the calculation of the corresponding correlation values at all candidate grid points in the navigation domain, thereby obtaining the joint accumulation output of all grid points. Then the joint accumulation output of the navigation domain of the direct position estimation receiver can be expressed as: Γ=[Λ1,Λ2,…,Λ M ], where the subscripts 1, 2, ..., M represent the index values of the navigation domain grid points.

[0049] Simulation experiment description: In the simulation experiment, the GPS L1 signal is simulated and generated with a signal sampling frequency of 5.714MHz and an intermediate frequency of 1.405MHz. The satellite signals simulate four satellite signals: PRN1, PRN2, PRN3, and PRN14. This method uses GPU parallel computing to directly estimate the position of the receiver and jointly accumulate the output in the navigation domain, making full use of the advantages of GPU.

[0050] The hardware configuration used in this method is CPU: Intel(R) Xeon(R) W-2245 and GPU: NVIDIA Ouadro RTX 4000; the software configuration is operating system: Windows 10; programming environment: Matlab, Microsoft Visual Studio 2019; GPU programming model is NVIDIA CUDA 11.3.

[0051] The simulation signal is processed using an existing direct position estimation receiver and a parallel direct position estimation receiver respectively.

[0052] Figure 3 Output results of the joint accumulation of the two methods in the east-north navigation domain:

[0053] in Figure 3 (a) is the joint accumulation output result of the existing direct position estimation receiver.

[0054] Figure 3 (b) is the joint accumulation output result of the parallel direct position estimation receiver.

[0055] Figure 4 Comparison of the combined accumulation output of the two methods for the east direction in the Northeastern Universe (ENU) coordinate system.

[0056] As can be seen from the figure, the two methods have very similar results in the joint accumulation results, which shows that the method of the present invention can still effectively accumulate the energy of satellite signals and can stably track satellite signals.

[0057] Figure 5 Two methods are given for positioning results:

[0058] in Figure 5 (a) Comparison of positioning results of the two methods in the longitude, latitude and altitude (LLA) coordinate system.

[0059] Figure 5 (b) shows the horizontal positioning error results of the two methods.

[0060] As can be seen from the figure, the navigation and positioning results of the two methods are basically the same, with relative errors at the millimeter level, which meets the accuracy requirements. This further demonstrates the effectiveness of the parallel direct position estimation receiver method provided by the present invention.

[0061] Table 1 compares the running time of the existing direct position estimation receiver navigation domain joint accumulation output calculation scheme and the parallel direct position estimation receiver navigation domain joint accumulation output calculation method.

[0062] From the comparison in Table 1, it can be seen that the parallel direct position estimation receiver navigation domain joint accumulation output calculation method provided by the present invention has an average acceleration ratio of up to 600-800 times compared to the existing direct position estimation receiver navigation domain joint accumulation output calculation scheme. As the number of tracked satellites increases, the acceleration effect becomes more obvious. In addition, the time consumption of the existing direct position estimation receiver navigation domain joint accumulation output calculation scheme increases in direct proportion to the increase in the number of satellites. Although the time consumption of the parallel direct position estimation receiver navigation domain joint accumulation output calculation method increases with the increase in the number of satellite tracking, the increase is not obvious and does not increase proportionally with the number of satellites. This is because this article uses CUDA stream technology in the process of GPU parallel calculation. During the execution of each CUDA stream, when one CUDA stream performs related operations, the other CUDA streams perform data transmission. This parallel working method can further improve the operating efficiency.

[0063] Table 1 Comparison of running time of two navigation domain joint accumulation output calculation schemes

[0064]

Claims

1. A parallel direct position estimation receiver navigation domain joint accumulation output calculation method, characterized by: The method includes the following three levels of parallel processing strategies: 1) The first level of parallel processing is to use GPU multithreading to execute the correlator of a satellite channel in parallel to obtain the correlation amplitude of the satellite channel; 2) The second layer of parallel processing uses the GPU multi-stream mechanism to execute the correlators required by different satellite channels at each candidate grid point in the navigation domain in parallel, obtaining a joint accumulation output at one grid point; 3) The third layer of parallel processing is to use GPU multi-threaded blocks to parallelly execute the calculation of the joint accumulation output at different candidate grid points to obtain the joint accumulation output of all grid points.

2. The parallel direct position estimation receiver navigation domain joint accumulation output calculation method according to claim 1, characterized in that: In step 1), the first layer of parallel processing is to execute a correlator of a satellite channel in parallel using GPU multithreading. The specific method of obtaining the correlation amplitude of the satellite channel is: Multiple threads are allocated in the GPU kernel function, and each thread performs local code generation and local carrier generation tasks in parallel to obtain the local reference signal. Next, the received signal x(n) involved in the correlator is compared with the local reference signal The large number of multiplication and addition operations in the correlation operation are assigned to multiple threads for parallel execution, replacing the traditional correlator that performs multiplication and addition operations sequentially. Finally, the correlation amplitude is calculated using the CUDA reduced sum algorithm. The correlation amplitude of a satellite channel is expressed as: Where N represents the number of satellite signal sampling points.

3. The parallel direct position estimation receiver navigation domain joint accumulation output calculation method according to claim 1, characterized in that: In step 2), the second layer of parallel processing utilizes the GPU multi-stream mechanism to execute in parallel the correlators required by different satellite channels at each candidate grid point in the navigation domain. The specific method for obtaining the joint accumulation output of a grid point is: The GPU multi-stream mechanism is used to execute the correlators of different satellite channels at each candidate grid point in the navigation domain in parallel, converting the traditional sequential calculation of the correlation values of each satellite signal into parallel calculation to improve computational efficiency. First, asynchronous, independent CUDA streams equal to the number of visible satellites L are constructed. Each CUDA stream executes a correlator obtained in the first layer and outputs the correlation value of a satellite signal. L CUDA streams execute multiple correlators in parallel to complete the correlation value calculation of all satellite channels. Finally, all correlator outputs are incoherently accumulated to obtain the correlation value at a grid point. The correlation amplitude at a candidate grid point can be expressed as: Where τ represents the code delay, f d represents the Doppler shift, the superscript i = 1, 2, …, L represents the parameter corresponding to the i-th satellite signal, and L represents the number of visible satellites.

4. The parallel direct position estimation receiver navigation domain joint accumulation output calculation method according to claim 1, characterized in that: In step 3), the third layer of parallel processing is to use GPU multi-thread blocks to perform the calculation of the joint accumulation output at different candidate grid points in parallel. The specific method for obtaining the joint accumulation output of all grid points is: The joint accumulation values at different candidate grid points are executed in parallel using M GPU thread blocks, replacing the traditional method of calculating the joint accumulation values of each grid point one by one. M GPU thread blocks are allocated based on the number of candidate grid points, with one thread block performing the calculation of the joint accumulation output of one grid point in the second layer. M thread blocks execute the calculation of multiple different candidate grid points in parallel, and complete the calculation of the corresponding correlation values at all candidate grid points in the navigation domain, thereby obtaining the joint accumulation output of all grid points; then the navigation domain joint accumulation output result of the direct position estimation receiver is expressed as: Γ=[Λ1,Λ2,…,Λ M ], subscripts 1, 2, ..., M represent the index value of the navigation domain grid point.

Citation Information

Patent Citations

  • GNSS / MINS (global navigation satellite system / micro-electro-mechanical systems inertial navigation system) super-deep combination navigation method, system and device

    CN103235327A

  • Satellite navigation deception detection method and system, computer equipment and storage medium

    CN115201861A