Positioning method and device, electronic equipment and computer storage medium
By optimizing the storage and computation methods of the LAMBDA algorithm, utilizing the effective elements of the lower triangular matrix and the diagonal matrix, and combining DAM and FPU, the high computational complexity and real-time bottleneck of traditional algorithms are solved, achieving more efficient localization result calculation.
Patent Information
- Application Number
- CN202510987639.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-07-17
- Publication Date
- 2025-11-28
AI Technical Summary
Traditional LAMBDA algorithms suffer from high computational complexity and strong hardware dependence in high-dimensional fuzzy computation, resulting in significant real-time bottlenecks and making it difficult to meet the millisecond-level response requirements of dynamic scenarios.
The effective elements of the lower triangular matrix and the diagonal matrix are stored by LD transformation. The DAM and the built-in floating-point computing unit FPU are used to perform decorrelation algorithm calculation, which reduces storage and system control, optimizes sorting processing, and improves processing efficiency.
By reducing storage and optimizing computation, processing efficiency is improved, CPU system control is reduced, computing power is increased, and computation time is shortened.
Smart Images

Figure CN121028141A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of positioning, in particular, the present application relates to a positioning method and device, electronic equipment and computer storage medium. BACKGROUND
[0002] The LAMBDA algorithm is full name of least square ambiguity decorrelation adjustment, mainly divided into two steps: (1) multi-dimensional integer transformation for reducing the correlation between ambiguity parameters; (2) searching for ambiguity in the converted space, then converting the result back to the ambiguity space, and then obtaining the integer solution of ambiguity. The decorrelation algorithm is the first step in the two steps, which is the core technology in GNSS high-precision positioning, mainly used to solve the integer ambiguity resolution (AR) of carrier phase observation value. Its core goal is to reduce the correlation between ambiguity parameters through mathematical transformation, so as to narrow the search space and improve the success rate and efficiency of ambiguity fixing.
[0003] The implementation platform of traditional decorrelation algorithm mainly includes the following categories, (1) MATLAB, because of its powerful matrix operation ability, the verification and theoretical research of traditional algorithm generally uses MATLAB to realize, and directly calls built-in matrix decomposition (such as Cholesky, SVD) to realize decorrelation. (2) C / C++, in some scenes with high real-time demand, the traditional implementation method uses C / C++ to call RTKLIB for implementation. (3) Python, in the flexibility demand of post-processing or real-time dynamic positioning, the traditional implementation method uses Python to rely on NumPy / SciPy for matrix operation. (4) FPGA / GPU, in large-scale GNSS network or real-time high-dimensional ambiguity solution, the traditional implementation method uses hardware acceleration platform to realize decorrelation.
[0004] Although the LAMBDA algorithm has become the standard method of GNSS ambiguity resolution, but its traditional implementation method still has the following problems: High computational complexity: in high-dimensional ambiguity calculation, the time consumption of decorrelation is obvious.
[0005] Hardware dependency: embedded platform needs to be manually optimized for fixed point operation.
[0006] Real-time bottleneck: in dynamic scenarios, traditional CPU implementation is difficult to meet the millisecond level response. SUMMARY
[0007] The technical problem to be solved by the present application is to provide a positioning method, device, electronic equipment and computer storage medium, which aims to solve at least one of the above technical problems.
[0008] The first aspect, the technical scheme of the present application solves the above technical problems as follows: A positioning method, the method comprises: Obtaining the variance-covariance matrix of the carrier phase observation value obtained by the positioning device; Performing LD transformation on the variance-covariance matrix of the carrier phase observation value to obtain a lower triangular matrix and a diagonal matrix; Storing the effective elements in the lower triangular matrix and the effective elements in the diagonal matrix into the RAM, the effective elements in the lower triangular matrix are elements other than the diagonal elements, and the effective elements in the diagonal matrix are elements on the main diagonal; Loading the effective elements in the lower triangular matrix, the effective elements in the diagonal matrix and the unit matrix from the RAM using the DAM, and calculating the positioning result using a decorrelation algorithm according to the effective elements in the lower triangular matrix, the effective elements in the diagonal matrix and the unit matrix.
[0009] The beneficial effects of the present application are: for the triangular matrix and the diagonal matrix, only the effective elements in the lower triangular matrix and the diagonal matrix are stored, which reduces storage and facilitates reading and calculation, improves processing efficiency; at the same time, the effective elements in the lower triangular matrix, the effective elements in the diagonal matrix and the unit matrix can be stored into the RAM through the DAM, which reduces the system control of the CPU, increases the computing power and further improves the processing efficiency.
[0010] On the basis of the above technical scheme, the present application can also be improved as follows.
[0011] Further, the above method further comprises: According to the floating-point number data format of each element in the lower triangular matrix, performing transformation and checking on the first element on the diagonal line in the lower triangular matrix, and obtaining an intermediate conversion matrix based on the element obtained by transformation and checking; According to the intermediate conversion matrix, updating the lower triangular matrix and the unit matrix respectively to obtain an updated lower triangular matrix and an updated unit matrix; According to the effective elements in the lower triangular matrix, the effective elements in the diagonal matrix and the unit matrix, using a decorrelation algorithm to calculate the positioning result, comprising: According to the effective elements in the updated lower triangular matrix, the effective elements in the diagonal matrix and the updated unit matrix, using a decorrelation algorithm to calculate the positioning result.
[0012] The beneficial effects of the above further scheme are that in the present scheme, according to the floating-point number data format of each element in the lower triangular matrix, each element on the diagonal line in the lower triangular matrix is transformed and checked in turn. Compared with the traditional CPU algorithm using C / C++ implementation, the present scheme can be directly implemented on hardware.
[0013] Furthermore, based on the effective elements in the updated lower triangular matrix, the effective elements in the diagonal matrix, and the updated identity matrix, a correlation reduction algorithm is used to calculate the localization result, including: S1. Based on the first and second adjacent elements on the main diagonal of the diagonal matrix, and the first target element corresponding to the first and second elements in the updated lower triangular matrix, determine whether the first target element satisfies the preset reordering rule. The row identifier corresponding to the first target element is the row identifier corresponding to the first element, and the column identifier corresponding to the first target element is the row identifier corresponding to the second element. S2, if the first target element satisfies the reordering rule, then swap the elements corresponding to the position of the first element in the updated lower triangular matrix, diagonal matrix and updated identity matrix with the elements corresponding to the position of the second element to obtain the adjusted lower triangular matrix, adjusted diagonal matrix and adjusted identity matrix. S3: Perform a transformation check on the element preceding the first target element in the adjusted lower triangular matrix to obtain a new lower triangular matrix and a new identity matrix. Based on the third and fourth adjacent elements on the main diagonal of the adjusted diagonal matrix, and the second target element corresponding to the third and fourth elements in the new lower triangular matrix, determine whether the second target element satisfies the preset reordering rule. If the second target element satisfies the reordering rule, execute S2 to S3 until all elements on the diagonal of the updated lower triangular matrix have been transformed and checked to obtain the reordered lower triangular matrix, the reordered diagonal matrix, and the reordered identity matrix. If the second target element does not satisfy the reordering rule, execute S4. S4. If the first target element does not satisfy the reordering rule, then perform a transformation check on the element after the first element on the diagonal of the updated lower triangular matrix to obtain a second new lower triangular matrix and a second new identity matrix. Based on the fifth and sixth adjacent elements on the main diagonal of the diagonal matrix, and the third target element corresponding to the fifth and sixth elements in the second new lower triangular matrix, determine whether the third target element satisfies the preset reordering rule. If the third target element satisfies the reordering rule, execute S2 to S3 until all elements on the diagonal of the lower triangular matrix have been transformed and checked to obtain the reordered lower triangular matrix, the reordered diagonal matrix, and the reordered identity matrix. If the third target element does not satisfy the reordering rule, repeat S4 until all elements on the diagonal of the updated lower triangular matrix have been transformed and checked. S5 calculates the positioning result based on the rearranged lower triangular matrix, the rearranged diagonal matrix, and the rearranged identity matrix.
[0014] The advantage of adopting the above-mentioned further scheme is that, compared with the traditional correlation reduction algorithm, which returns to the first step after the reordering process to re-perform the transformation check on the first element on the diagonal of the lower triangular matrix, this scheme, based on the characteristics of matrix reordering and updating, performs the transformation check on the element after the first element on the diagonal of the updated lower triangular matrix after the reordering operation, which greatly reduces the repeated iterative operations.
[0015] Furthermore, based on the effective elements in the lower triangular matrix, the effective elements in the diagonal matrix, and the identity matrix, the aforementioned correlation reduction algorithm is used to calculate the positioning results, including: Based on the effective elements in the lower triangular matrix, the effective elements in the diagonal matrix, and the identity matrix, a correlation reduction algorithm is used to calculate the positioning result through the built-in floating-point unit (FPU).
[0016] The advantage of adopting the above-mentioned further scheme is that, compared with the traditional CPU algorithm that uses a for statement to perform multiplication and addition operations on the elements in the matrix in turn or calls the matrix multiplication function to implement matrix floating-point multiplication, this scheme uses the built-in FPU floating-point computing unit to realize the relevant calculation processing of each matrix.
[0017] Secondly, in order to solve the above-mentioned technical problems, the present invention also provides a positioning device, the device comprising: The acquisition module is used to acquire the variance-covariance matrix of the carrier phase observations obtained by the positioning device; The transformation module is used to perform LD transformation on the variance-covariance matrix of the carrier phase observations to obtain a lower triangular matrix and a diagonal matrix. The storage module is used to store the valid elements of the lower triangular matrix and the valid elements of the diagonal matrix into RAM. The valid elements of the lower triangular matrix are all elements except the diagonal elements, and the valid elements of the diagonal matrix are the elements on the main diagonal. The positioning module is used to load the effective elements of the lower triangular matrix, the effective elements of the diagonal matrix, and the identity matrix from RAM using DAM, and to calculate the positioning result using a decorrelation algorithm based on the effective elements of the lower triangular matrix, the effective elements of the diagonal matrix, and the identity matrix.
[0018] Thirdly, in order to solve the above-mentioned technical problems, the present invention also provides an electronic device, which includes a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, it implements the positioning method of the present application.
[0019] Fourthly, in order to solve the above-mentioned technical problems, the present invention also provides a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the positioning method of the present application.
[0020] Additional aspects and advantages of this application will be set forth in part in the description which follows, and will become apparent from the description or may be learned by practice of this application. Attached Figure Description
[0021] To more clearly illustrate the technical solutions in the embodiments of the present invention, the accompanying drawings used in the description of the embodiments of the present invention will be briefly introduced below.
[0022] Figure 1 This is a flowchart illustrating a positioning method according to an embodiment of the present invention. Figure 2 A flowchart illustrating another positioning method provided in an embodiment of the present invention; Figure 3 This is a schematic diagram of a positioning device provided in one embodiment of the present invention; Figure 4 This is a schematic diagram of the structure of an electronic device provided in one embodiment of the present invention. Detailed Implementation
[0023] The principles and features of the present invention are described below. The examples given are only for explaining the present invention and are not intended to limit the scope of the present invention.
[0024] The technical solution of the present invention and how the technical solution of the present invention solves the above-mentioned technical problems are described in detail below with specific embodiments. These specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments. The embodiments of the present invention will now be described with reference to the accompanying drawings.
[0025] The solution provided in this invention can be applied to any application scenario requiring location tracking. The solution provided in this invention can be executed by any electronic device containing a CPU, such as a user's terminal device, including at least one of the following: smartphone, tablet computer, laptop computer, desktop computer, smart speaker, smartwatch, smart TV, or smart in-vehicle device.
[0026] This invention provides a possible implementation, such as... Figure 1The diagram shows a flowchart of a positioning method. This method can be executed by any electronic device containing a CPU, such as a terminal device, or jointly executed by a terminal device and a server. For ease of description, the method provided in this embodiment will be described below using a terminal device as the execution subject as an example. Figure 1 The flowchart shown indicates that the method may include the following steps: S10, Obtain the variance-covariance matrix of the carrier phase observations obtained by the positioning device; S20, perform LD transformation on the variance-covariance matrix of the carrier phase observations to obtain the lower triangular matrix and the diagonal matrix; S30, store the valid elements of the lower triangular matrix and the valid elements of the diagonal matrix into RAM. The valid elements of the lower triangular matrix are the elements other than the diagonal elements, and the valid elements of the diagonal matrix are the elements on the main diagonal. S40 uses DAM to load the effective elements of the lower triangular matrix, the effective elements of the diagonal matrix, and the identity matrix from RAM, and calculates the positioning result based on the effective elements of the lower triangular matrix, the effective elements of the diagonal matrix, and the identity matrix using a correlation reduction algorithm.
[0027] The method of this invention stores only the effective elements of the lower triangular matrix and the diagonal matrix for triangular and diagonal matrices, reducing storage while facilitating reading and calculation, thus improving processing efficiency. At the same time, the DAM can store the effective elements of the lower triangular matrix, the effective elements of the diagonal matrix, and the identity matrix in RAM, reducing CPU system control, increasing computing power, and further improving processing efficiency.
[0028] The following specific embodiments further illustrate the solution of the present invention. In this embodiment, the positioning method provided may include the following steps: S10, Obtain the variance-covariance matrix of the carrier phase observations obtained by the positioning device; The positioning device can be a Global Navigation Satellite System (GNSS), suitable for scenarios such as Real-time Kinematic (RTK) and Precise Point Positioning (PPP).
[0029] S20, perform LD transformation on the variance-covariance matrix of the carrier phase observations to obtain the lower triangular matrix and the diagonal matrix; For ease of description, in this application, the lower triangular matrix is described as matrix L, and the diagonal matrix is described as matrix D.
[0030] S30, store the valid elements of the lower triangular matrix and the valid elements of the diagonal matrix into RAM. The valid elements of the lower triangular matrix are the elements other than the diagonal elements, and the valid elements of the diagonal matrix are the elements on the main diagonal. S40 uses DAM to load the effective elements of the lower triangular matrix, the effective elements of the diagonal matrix, and the identity matrix from RAM, and calculates the positioning result based on the effective elements of the lower triangular matrix, the effective elements of the diagonal matrix, and the identity matrix using a correlation reduction algorithm.
[0031] Prior to S40, the method also includes: S31, based on the floating-point data format of each element in the lower triangular matrix, perform a transformation check on the first element on the diagonal of the lower triangular matrix, and obtain an intermediate transformation matrix based on the elements that pass the transformation check. Among them, the floating-point data format based on each element in the lower triangular matrix can be directly implemented in hardware.
[0032] Specifically, the transformation check for the first element on the diagonal of the lower triangular matrix is implemented by rounding the first element to an integer value. Based on this integer value, it is determined whether the condition for reduced correlation is met. If it is met, the transformation check is passed; otherwise, the transformation check is not passed.
[0033] After the transformation check, the first element can be written into the initial intermediate transformation matrix to obtain the intermediate transformation matrix.
[0034] S32, based on the intermediate transformation matrix, update the lower triangular matrix and the identity matrix respectively to obtain the updated lower triangular matrix and the updated identity matrix.
[0035] Based on this, one implementation of S40 is as follows: Based on the effective elements in the updated lower triangular matrix, the effective elements in the diagonal matrix, and the updated identity matrix, a correlation reduction algorithm is used to calculate the positioning result.
[0036] Furthermore, based on the effective elements in the updated lower triangular matrix, the effective elements in the diagonal matrix, and the updated identity matrix, a correlation reduction algorithm is used to calculate the localization result, including: S1. Based on the first and second adjacent elements on the main diagonal of the diagonal matrix (in this application, the first and second adjacent elements refer to adjacent positions), and the first target element corresponding to the first and second elements in the updated lower triangular matrix, determine whether the first target element satisfies the preset reordering rule. The row identifier corresponding to the first target element is the row identifier corresponding to the first element, and the column identifier corresponding to the first target element is the row identifier corresponding to the second element. As an example, if the first element is D(i, i) and the second element is D(k, k), the first target element can be L(i, k).
[0037] S2, if the first target element satisfies the reordering rule, then swap the elements corresponding to the position of the first element in the updated lower triangular matrix, diagonal matrix and updated identity matrix with the elements corresponding to the position of the second element to obtain the adjusted lower triangular matrix, adjusted diagonal matrix and adjusted identity matrix. Alternatively, the reordering rule can be expressed as: D(k,k) + L(i,k)²×D(i,i) <D(i,i)。
[0038] S3: Perform a transformation check on the element preceding the first target element in the adjusted lower triangular matrix to obtain a new lower triangular matrix and a new identity matrix (this process can be referred to in step S31 and will not be repeated here). Based on the third and fourth adjacent elements on the main diagonal of the adjusted diagonal matrix, and the second target element corresponding to the third and fourth elements in the new lower triangular matrix, determine whether the second target element meets the preset reordering rule. If the second target element meets the reordering rule, execute S2 to S3 until all elements on the diagonal of the updated lower triangular matrix have been transformed and checked (regardless of how the elements in the updated lower triangular matrix are reordered, the number of elements remains unchanged), to obtain the reordered lower triangular matrix, the reordered diagonal matrix, and the reordered identity matrix. If the second target element does not meet the reordering rule, execute S4. S4. If the first target element does not satisfy the reordering rule, then perform a transformation check on the element after the first element on the diagonal of the updated lower triangular matrix to obtain a second new lower triangular matrix and a second new identity matrix. Based on the fifth and sixth adjacent elements on the main diagonal of the diagonal matrix, and the third target element corresponding to the fifth and sixth elements in the second new lower triangular matrix, determine whether the third target element satisfies the preset reordering rule. If the third target element satisfies the reordering rule, execute S2 to S3 until all elements on the diagonal of the lower triangular matrix have been transformed and checked to obtain the reordered lower triangular matrix, the reordered diagonal matrix, and the reordered identity matrix. If the third target element does not satisfy the reordering rule, repeat S4 until all elements on the diagonal of the updated lower triangular matrix have been transformed and checked. In this application, the specific implementation process for obtaining the lower triangular matrix, diagonal matrix, and identity matrix after each reordering, based on the elements of each matrix after each reordering, is as follows: First, specify matrix P (the permutation matrix, obtained from the previous reordering process). Then, split the matrices D and L corresponding to the current reordering process based on the transformation check. For example, in the first reordering process, matrices D and L refer to the updated lower triangular matrix and the updated diagonal matrix. The so-called "splitting" simply means taking these two storage areas out in preparation for row / column swapping.
[0039] Then, a reordering transformation is performed on the original Q matrix that underwent the LD transformation (where the Q matrix refers to the matrix from the previous transformation). The symmetric positive definite matrix before decomposition is usually denoted as Q = L·D· ), and perform the rearranged matrix transformation. The decomposition yields new L and new D. The results of the reordering transformation (new L and new D) are then used to update the L, D, and Z matrices to obtain the reordered L, D, and Z matrices corresponding to the current reordering process.
[0040] S5 calculates the positioning result based on the rearranged lower triangular matrix, the rearranged diagonal matrix, and the rearranged identity matrix.
[0041] Optionally, the above-mentioned localization result is calculated using a correlation reduction algorithm based on the effective elements of the lower triangular matrix, the effective elements of the diagonal matrix, and the identity matrix, including: Based on the effective elements in the lower triangular matrix, the effective elements in the diagonal matrix, and the identity matrix, a correlation reduction algorithm is used to calculate the positioning result through the built-in floating-point unit (FPU).
[0042] In this application, for the S40 corresponding scheme, the calculation, updating and other processing of each matrix are all implemented by the built-in floating-point unit (FPU).
[0043] This application supports a maximum of N (N<=64) dimensional matrices (simulation) for decorrelation operations.
[0044] To better illustrate and understand the principle of the method provided by this invention, the following description uses an optional specific embodiment to illustrate the solution of this invention. It should be noted that the specific implementation of each step in this specific embodiment should not be construed as a limitation of the solution of this invention. Other implementations that can be conceived by those skilled in the art based on the principle of the solution provided by this invention should also be considered within the scope of protection of this invention.
[0045] In this embodiment, see Figure 2 The flowchart shown illustrates the implementation process of the solution in this application: Obtain the variance-covariance matrix of the carrier phase observations acquired by the positioning device; Perform the LD transformation on the variance-covariance matrix of the carrier phase observations to obtain the lower triangular matrix L and the diagonal matrix D; Input the lower triangular matrix L and diagonal matrix D after LD transformation, and the identity matrix Z; Transform and check each element on the diagonal of matrix L in turn, compare it with 0.5 (the criterion for reduced correlation), and round it to construct an intermediate matrix Zij (that is, compare the integer value obtained by rounding each element with 0.5, and obtain the intermediate transformation matrix based on the elements that pass the transformation check). Multiplying matrix L with the intermediate matrix Zij yields the updated lower triangular matrix L', and multiplying matrix Z with the intermediate matrix Zij yields the updated identity matrix Z'. The decision to perform a reordering is based on the reordering formula (reordering rule); If reordering is to be performed, specify the P matrix, perform a reordering transformation on the Q matrix of the original LD transformation, and then perform LDL decomposition; based on the matrices that have changed after the reordering transformation in the LDL decomposition, solve for the new L, D, and Z matrices according to the calculation formula; this corresponds to the specific processing procedure for reordering that satisfies the reordering rules mentioned above. If no reordering is performed, it is determined whether this is the last element to be checked in matrix L. If it is, the process ends; otherwise, the next element in matrix L is transformed and checked, and then processed according to the previous process of not reordering.
[0046] Based on the above processing flow, taking a 32-dimensional square matrix as an example, the input matrix L is a 32-dimensional lower triangular matrix, the input matrix D is a 32-dimensional diagonal matrix, and the input matrix Z is a 32-dimensional identity matrix, and the decorrelation calculation begins.
[0047] Step 1: Move the input L, D, and Z matrices to internal RAM. Traditional CPU algorithms directly use CPU read and write operations. For the input 32-dimensional L, D, and Z matrices, the CPU stores all elements of the matrix, and simulations show that loading data by the CPU requires 6288 cycles. In this solution, only the valid elements of the L and D matrices are stored, and DMA is used to load data. Verification shows that it only requires (480+32+1024)=1576 cycles, improving efficiency by approximately 3 times.
[0048] Step 2: Perform transformation checks on the first element of each diagonal line of matrix L in sequence. Traditional CPU algorithms are implemented using C / C++, calling the Round function to round the elements of L. However, this solution can be implemented in hardware, directly rounding and determining the value based on the floating-point data format of the elements in input L.
[0049] Step 3: For the update calculation of matrices L and Z, determine whether to perform reordering calculation, and perform the update calculation of L, D, and Z matrices during reordering. Traditional CPU algorithms use for statements to perform multiplication and addition operations on matrix elements sequentially or call matrix multiplication functions to implement matrix floating-point multiplication. However, this solution uses the built-in FPU floating-point computing unit to achieve fast addition, subtraction, multiplication, and division operations on matrices.
[0050] Step 4: Reordering Matrix Update. According to the reordering calculation rules, if the rules are met, reordering and updating judgments need to be performed on matrices L, D, and Z, and the process returns to Step 1 to re-perform the transformation check on the first element of matrix L. Traditional decorrelation algorithms return to the initial Step 1 to re-perform the transformation check on the first element of matrix L after completing the reordering operation. However, in this scheme, based on the characteristics of matrix reordering updates, after completing the reordering operation, the transformation check is performed on the element preceding the element that was previously transformed in the current matrix L, greatly reducing repeated iterative calculations.
[0051] The optimization strategy provided by this invention does not change the basic process of the decorrelation algorithm, but only optimizes the details of the algorithm in terms of hardware implementation. This solution optimizes the reordering transformation, reduces the number of iterations, and uses a built-in floating-point unit for floating-point calculations, improving the calculation speed while ensuring computational accuracy. Taking a 32-dimensional square matrix as an example, using a CPU to simulate the algorithm takes approximately 752,026 cycles, while the hardware simulation of this solution only takes 287,598 cycles, an improvement of approximately 1.6 times. The hardware optimization strategy provided in this solution aims to reduce the time spent by the CPU in performing decorrelation operations and improve computational efficiency.
[0052] Based on and Figure 1 Based on the same principle as the method shown, this embodiment of the invention also provides a positioning device 20, such as...Figure 3 As shown, the positioning device 20 may include an acquisition module 210, a transformation module 220, a storage module 230, and a positioning module 240, wherein: The acquisition module 210 is used to acquire the variance-covariance matrix of the carrier phase observation values obtained by the positioning device; Transformation module 220 is used to perform LD transformation on the variance-covariance matrix of carrier phase observations to obtain a lower triangular matrix and a diagonal matrix. Storage module 230 is used to store the valid elements of the lower triangular matrix and the valid elements of the diagonal matrix into RAM. The valid elements of the lower triangular matrix are the elements other than the diagonal elements, and the valid elements of the diagonal matrix are the elements on the main diagonal. The positioning module 240 is used to load the effective elements of the lower triangular matrix, the effective elements of the diagonal matrix, and the identity matrix from RAM using DAM, and to calculate the positioning result using a decorrelation algorithm based on the effective elements of the lower triangular matrix, the effective elements of the diagonal matrix, and the identity matrix.
[0053] Optionally, the above-mentioned device further includes: The transformation check module is used to perform a transformation check on the first element on the diagonal of the lower triangular matrix according to the floating-point data format of each element in the lower triangular matrix, and obtain an intermediate transformation matrix based on the elements that pass the transformation check. The matrix update module is used to update the lower triangular matrix and the identity matrix respectively based on the intermediate transformation matrix, so as to obtain the updated lower triangular matrix and the updated identity matrix. The aforementioned positioning module, when calculating the positioning result using a correlation reduction algorithm based on the effective elements of the lower triangular matrix, the effective elements of the diagonal matrix, and the identity matrix, is specifically used for: Based on the effective elements in the updated lower triangular matrix, the effective elements in the diagonal matrix, and the updated identity matrix, a correlation reduction algorithm is used to calculate the positioning result.
[0054] Optionally, when the positioning module calculates the positioning result using a correlation reduction algorithm based on the effective elements in the updated lower triangular matrix, the effective elements in the diagonal matrix, and the updated identity matrix, it specifically performs the following steps: S1. Based on the first and second adjacent elements on the main diagonal of the diagonal matrix, and the first target element corresponding to the first and second elements in the updated lower triangular matrix, determine whether the first target element satisfies the preset reordering rule. The row identifier corresponding to the first target element is the row identifier corresponding to the first element, and the column identifier corresponding to the first target element is the row identifier corresponding to the second element. S2, if the first target element satisfies the reordering rule, then swap the elements corresponding to the position of the first element in the updated lower triangular matrix, diagonal matrix and updated identity matrix with the elements corresponding to the position of the second element to obtain the adjusted lower triangular matrix, adjusted diagonal matrix and adjusted identity matrix. S3: Perform a transformation check on the element preceding the first target element in the adjusted lower triangular matrix to obtain a new lower triangular matrix and a new identity matrix. Based on the third and fourth adjacent elements on the main diagonal of the adjusted diagonal matrix, and the second target element corresponding to the third and fourth elements in the new lower triangular matrix, determine whether the second target element satisfies the preset reordering rule. If the second target element satisfies the reordering rule, execute S2 to S3 until all elements on the diagonal of the updated lower triangular matrix have been transformed and checked to obtain the reordered lower triangular matrix, the reordered diagonal matrix, and the reordered identity matrix. If the second target element does not satisfy the reordering rule, execute S4. S4. If the first target element does not satisfy the reordering rule, then perform a transformation check on the element after the first element on the diagonal of the updated lower triangular matrix to obtain a second new lower triangular matrix and a second new identity matrix. Based on the fifth and sixth adjacent elements on the main diagonal of the diagonal matrix, and the third target element corresponding to the fifth and sixth elements in the second new lower triangular matrix, determine whether the third target element satisfies the preset reordering rule. If the third target element satisfies the reordering rule, execute S2 to S3 until all elements on the diagonal of the lower triangular matrix have been transformed and checked to obtain the reordered lower triangular matrix, the reordered diagonal matrix, and the reordered identity matrix. If the third target element does not satisfy the reordering rule, repeat S4 until all elements on the diagonal of the updated lower triangular matrix have been transformed and checked. S5 calculates the positioning result based on the rearranged lower triangular matrix, the rearranged diagonal matrix, and the rearranged identity matrix.
[0055] Optionally, when the above-mentioned positioning module calculates the positioning result using a correlation reduction algorithm based on the effective elements of the lower triangular matrix, the effective elements of the diagonal matrix, and the identity matrix, it is specifically used for: Based on the effective elements in the lower triangular matrix, the effective elements in the diagonal matrix, and the identity matrix, a correlation reduction algorithm is used to calculate the positioning result through the built-in floating-point unit (FPU).
[0056] The positioning device of this invention can execute the positioning method provided in this invention, and the implementation principle is similar. The actions performed by each module and unit in the positioning device in each embodiment of this invention correspond to the steps in the positioning method in each embodiment of this invention. For detailed functional descriptions of each module of the positioning device, please refer to the descriptions in the corresponding positioning methods shown above, which will not be repeated here.
[0057] The aforementioned positioning device may be a computer program (including program code) running on a computer device, such as an application software; the device may be used to execute the corresponding steps in the method provided in the embodiments of the present invention.
[0058] In some embodiments, the positioning device provided by the present invention can be implemented in a combination of hardware and software. As an example, the positioning device provided by the present invention can be a processor in the form of a hardware decoding processor, which is programmed to execute the positioning method provided by the present invention. For example, the processor in the form of a hardware decoding processor can be one or more application-specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field-programmable gate arrays (FPGAs), or other electronic components.
[0059] In other embodiments, the positioning device provided in this invention can be implemented in software. Figure 3 A positioning device stored in a memory is shown, which may be software in the form of programs and plug-ins, and includes a series of modules, including an acquisition module 210, a transformation module 220, a storage module 230 and a positioning module 240, for implementing the positioning method provided in the embodiments of the present invention.
[0060] The modules described in the embodiments of the present invention can be implemented in software or hardware. The names of the modules are not, in some cases, limiting the scope of the module itself.
[0061] Based on the same principles as the methods shown in the embodiments of the present invention, the embodiments of the present invention also provide an electronic device, which may include, but is not limited to: a processor and a memory; the memory for storing computer programs; and the processor for executing the methods shown in any embodiment of the present invention by invoking the computer programs.
[0062] In one alternative embodiment, an electronic device is provided, such as Figure 4 As shown, Figure 4 The illustrated electronic device 4000 includes a processor 4001 and a memory 4003. The processor 4001 and the memory 4003 are connected, for example, via a bus 4002. Optionally, the electronic device 4000 may further include a transceiver 4004, which can be used for data interaction between the electronic device and other electronic devices, such as sending and / or receiving data. It should be noted that in practical applications, the transceiver 4004 is not limited to one type, and the structure of the electronic device 4000 does not constitute a limitation on the embodiments of the present invention.
[0063] Processor 4001 may be a CPU (Central Processing Unit), a general-purpose processor, a DSP (Digital Signal Processor), an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It can implement or execute the various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of this invention. Processor 4001 may also be a combination that implements computational functions, such as including one or more microprocessor combinations, a combination of a DSP and a microprocessor, etc.
[0064] Bus 4002 may include a pathway for transmitting information between the aforementioned components. Bus 4002 may be a PCI (Peripheral Component Interconnect) bus or an EISA (Extended Industry Standard Architecture) bus, etc. Bus 4002 can be divided into address bus, data bus, control bus, etc. For ease of representation, Figure 4 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.
[0065] The memory 4003 may be ROM (Read Only Memory) or other types of static storage devices capable of storing static information and instructions, RAM (Random Access Memory) or other types of dynamic storage devices capable of storing information and instructions, or EEPROM (Electrically Erasable Programmable Read Only Memory), CD-ROM (Compact Disc Read Only Memory) or other optical disc storage, optical disc storage (including compressed optical discs, laser discs, optical discs, digital universal optical discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but not limited thereto.
[0066] The memory 4003 stores application code (computer program) for executing the present invention, and its execution is controlled by the processor 4001. The processor 4001 executes the application code stored in the memory 4003 to implement the content shown in the foregoing method embodiments.
[0067] Among these, electronic devices can also be terminal devices. Figure 4 The electronic device shown is merely an example and should not be construed as limiting the functionality and scope of use of the embodiments of the present invention.
[0068] This invention provides a computer-readable storage medium storing a computer program that, when run on a computer, enables the computer to execute the corresponding content in the aforementioned method embodiments.
[0069] According to another aspect of the present invention, a computer program product or computer program is also provided, comprising computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the methods provided in the various embodiments described above.
[0070] Computer program code for performing the operations of this invention can be written in one or more programming languages or a combination thereof, including object-oriented programming languages such as Java, Smalltalk, and C++, and conventional procedural programming languages such as C or similar languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0071] It should be understood that the flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of methods and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.
[0072] The computer-readable storage medium provided in this invention can be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of a computer-readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In this invention, a computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.
[0073] The aforementioned computer-readable storage medium carries one or more programs, which, when executed by the electronic device, cause the electronic device to perform the method shown in the above embodiments.
[0074] The above description is merely a preferred embodiment of the present invention and an explanation of the technical principles employed. Those skilled in the art should understand that the scope of disclosure in this invention is not limited to technical solutions formed by specific combinations of the above-described technical features, but should also cover other technical solutions formed by arbitrary combinations of the above-described technical features or their equivalents without departing from the above-disclosed concept. For example, technical solutions formed by substituting the above features with (but not limited to) technical features with similar functions disclosed in this invention.
Claims
1. A positioning method, characterized in that, include: Obtain the variance-covariance matrix of the carrier phase observations acquired by the positioning device; Perform an LD transformation on the variance-covariance matrix of the carrier phase observations to obtain a lower triangular matrix and a diagonal matrix; Store the valid elements of the lower triangular matrix and the valid elements of the diagonal matrix in RAM. The valid elements of the lower triangular matrix are elements other than the diagonal elements, and the valid elements of the diagonal matrix are elements on the main diagonal. The effective elements of the lower triangular matrix, the effective elements of the diagonal matrix, and the identity matrix are loaded from RAM using DAM. Based on the effective elements of the lower triangular matrix, the effective elements of the diagonal matrix, and the identity matrix, a decorrelation algorithm is used to calculate the positioning result.
2. The method according to claim 1, characterized in that, The method further includes: Based on the floating-point data format of each element in the lower triangular matrix, the first element on the diagonal of the lower triangular matrix is transformed and checked, and an intermediate transformation matrix is obtained based on the elements that pass the transformation check. Based on the intermediate transformation matrix, the lower triangular matrix and the identity matrix are updated respectively to obtain the updated lower triangular matrix and the updated identity matrix; The localization result is calculated using a correlation reduction algorithm based on the effective elements of the lower triangular matrix, the effective elements of the diagonal matrix, and the identity matrix, including: Based on the effective elements in the updated lower triangular matrix, the effective elements in the diagonal matrix, and the updated identity matrix, a correlation reduction algorithm is used to calculate the positioning result.
3. The method according to claim 2, characterized in that, The localization result is calculated using a correlation reduction algorithm based on the effective elements in the updated lower triangular matrix, the effective elements in the diagonal matrix, and the updated identity matrix, including: S1, based on the first and second adjacent elements on the main diagonal of the diagonal matrix, and the first target element corresponding to the first and second elements in the updated lower triangular matrix, determine whether the first target element satisfies the preset reordering rule, the row identifier corresponding to the first target element is the row identifier corresponding to the first element, and the column identifier corresponding to the first target element is the row identifier corresponding to the second element. S2, if the first target element satisfies the reordering rule, then the elements corresponding to the position of the first element in the updated lower triangular matrix, the diagonal matrix, and the updated identity matrix are swapped with the elements corresponding to the position of the second element to obtain the adjusted lower triangular matrix, the adjusted diagonal matrix, and the adjusted identity matrix. S3: Perform a transformation check on the element preceding the first target element in the adjusted lower triangular matrix to obtain a new lower triangular matrix and a new identity matrix. Based on the third and fourth adjacent elements on the main diagonal of the adjusted diagonal matrix and the second target element corresponding to the third and fourth elements in the new lower triangular matrix, determine whether the second target element satisfies the preset reordering rule. If the second target element satisfies the reordering rule, execute S2 to S3 until all elements on the diagonal of the updated lower triangular matrix have been transformed and checked to obtain the reordered lower triangular matrix, the reordered diagonal matrix, and the reordered identity matrix. If the second target element does not satisfy the reordering rule, execute S4. S4, if the first target element does not satisfy the reordering rule, then perform a transformation check on the element after the first element on the diagonal of the updated lower triangular matrix to obtain a second new lower triangular matrix and a second new identity matrix. Based on the fifth and sixth adjacent elements on the main diagonal of the diagonal matrix, and the third target element in the second new lower triangular matrix corresponding to the fifth and sixth elements, determine whether the third target element satisfies the preset reordering rule. If the third target element satisfies the reordering rule, execute S2 to S3 until all elements on the diagonal of the lower triangular matrix are transformed and checked to obtain the reordered lower triangular matrix, the reordered diagonal matrix, and the reordered identity matrix. If the third target element does not satisfy the reordering rule, repeat S4 until all elements on the diagonal of the updated lower triangular matrix are transformed and checked. S5. The positioning result is calculated based on the rearranged lower triangular matrix, the rearranged diagonal matrix, and the rearranged identity matrix.
4. The method according to any one of claims 1 to 3, characterized in that, The localization result is calculated using a correlation reduction algorithm based on the effective elements of the lower triangular matrix, the effective elements of the diagonal matrix, and the identity matrix, including: Based on the effective elements in the lower triangular matrix, the effective elements in the diagonal matrix, and the identity matrix, a correlation reduction algorithm is used to calculate the positioning result through the built-in floating-point unit (FPU).
5. A positioning device, characterized in that, include: The acquisition module is used to acquire the variance-covariance matrix of the carrier phase observations obtained by the positioning device; The transformation module is used to perform LD transformation on the variance-covariance matrix of the carrier phase observation values to obtain a lower triangular matrix and a diagonal matrix. A storage module is used to store the valid elements of the lower triangular matrix and the valid elements of the diagonal matrix into RAM. The valid elements of the lower triangular matrix are elements other than the diagonal elements, and the valid elements of the diagonal matrix are elements on the main diagonal. The positioning module is used to load the effective elements of the lower triangular matrix, the effective elements of the diagonal matrix, and the identity matrix from RAM using DAM, and to calculate the positioning result using a decorrelation algorithm based on the effective elements of the lower triangular matrix, the effective elements of the diagonal matrix, and the identity matrix.
6. The apparatus according to claim 5, characterized in that, The device further includes: The transformation check module is used to perform a transformation check on the first element on the diagonal of the lower triangular matrix according to the floating-point data format of each element in the lower triangular matrix, and obtain an intermediate transformation matrix based on the elements that pass the transformation check. The matrix update module is used to update the lower triangular matrix and the identity matrix respectively according to the intermediate transformation matrix to obtain the updated lower triangular matrix and the updated identity matrix. When the positioning module calculates the positioning result using a correlation reduction algorithm based on the effective elements of the lower triangular matrix, the effective elements of the diagonal matrix, and the identity matrix, it is specifically used for: Based on the effective elements in the updated lower triangular matrix, the effective elements in the diagonal matrix, and the updated identity matrix, a correlation reduction algorithm is used to calculate the positioning result.
7. The apparatus according to claim 6, characterized in that, When the positioning module calculates the positioning result using a correlation reduction algorithm based on the effective elements in the updated lower triangular matrix, the effective elements in the diagonal matrix, and the updated identity matrix, it specifically performs the following steps: S1, based on the first and second adjacent elements on the main diagonal of the diagonal matrix, and the first target element corresponding to the first and second elements in the updated lower triangular matrix, determine whether the first target element satisfies the preset reordering rule, the row identifier corresponding to the first target element is the row identifier corresponding to the first element, and the column identifier corresponding to the first target element is the row identifier corresponding to the second element. S2, if the first target element satisfies the reordering rule, then the elements corresponding to the position of the first element in the updated lower triangular matrix, the diagonal matrix, and the updated identity matrix are swapped with the elements corresponding to the position of the second element to obtain the adjusted lower triangular matrix, the adjusted diagonal matrix, and the adjusted identity matrix. S3: Perform a transformation check on the element preceding the first target element in the adjusted lower triangular matrix to obtain a new lower triangular matrix and a new identity matrix. Based on the third and fourth adjacent elements on the main diagonal of the adjusted diagonal matrix and the second target element corresponding to the third and fourth elements in the new lower triangular matrix, determine whether the second target element satisfies the preset reordering rule. If the second target element satisfies the reordering rule, execute S2 to S3 until all elements on the diagonal of the updated lower triangular matrix have been transformed and checked to obtain the reordered lower triangular matrix, the reordered diagonal matrix, and the reordered identity matrix. If the second target element does not satisfy the reordering rule, execute S4. S4, if the first target element does not satisfy the reordering rule, then perform a transformation check on the element after the first element on the diagonal of the updated lower triangular matrix to obtain a second new lower triangular matrix and a second new identity matrix. Based on the fifth and sixth adjacent elements on the main diagonal of the diagonal matrix, and the third target element in the second new lower triangular matrix corresponding to the fifth and sixth elements, determine whether the third target element satisfies the preset reordering rule. If the third target element satisfies the reordering rule, execute S2 to S3 until all elements on the diagonal of the lower triangular matrix are transformed and checked to obtain the reordered lower triangular matrix, the reordered diagonal matrix, and the reordered identity matrix. If the third target element does not satisfy the reordering rule, repeat S4 until all elements on the diagonal of the updated lower triangular matrix are transformed and checked. S5. The positioning result is calculated based on the rearranged lower triangular matrix, the rearranged diagonal matrix, and the rearranged identity matrix.
8. The apparatus according to any one of claims 5 to 7, characterized in that, When the positioning module calculates the positioning result using a correlation reduction algorithm based on the effective elements of the lower triangular matrix, the effective elements of the diagonal matrix, and the identity matrix, it is specifically used for: Based on the effective elements in the lower triangular matrix, the effective elements in the diagonal matrix, and the identity matrix, a correlation reduction algorithm is used to calculate the positioning result through the built-in floating-point unit (FPU).
9. An electronic device, characterized in that, It includes a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor, when executing the computer program, implements the method of any one of claims 1-4.
10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the method of any one of claims 1-4.
