A GNSS satellite signal acquisition method and system based on average asymptotic phase search

By combining coarse capture and fine capture with a GNSS satellite signal capture method based on average asymptotic phase search, the problems of large computational complexity and low code phase accuracy in the existing technology are solved, achieving the effect of reducing computational complexity and improving accuracy at a high sampling rate.

CN116482722BActive Publication Date: 2025-10-03HEFEI UNIV OF TECH
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202310453543.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-04-24
Publication Date
2025-10-03
Estimated Expiration
2043-04-24

AI Technical Summary

Technical Problem

Existing GNSS signal acquisition methods reduce the amount of computation while having the problem of low code phase accuracy, especially at high sampling rates, where the computational workload and hardware resource requirements are too high.

Method used

A GNSS satellite signal acquisition method based on average asymptotic phase search is adopted. By combining coarse and fine acquisition, downsampling and FFT transformation are used to determine the carrier frequency and phase, and the average correlation method is combined for precise search, reducing the amount of calculation and improving the code phase accuracy.

Benefits of technology

While reducing the amount of calculation, the code phase accuracy is improved. The calculation amount is reduced by about 30%, and the phase accuracy is increased to 1/M, achieving fast and accurate satellite signal capture.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116482722B_ABST
    Figure CN116482722B_ABST
Patent Text Reader

Abstract

The present invention provides a GNSS satellite signal acquisition method and system based on average asymptotic phase search. The acquisition process for a single satellite is divided into two parts: first, coarse acquisition is performed to determine the carrier frequency based on the average correlation method. The coarse acquisition process uses only one sequence for carrier frequency search. Second, fine phase acquisition is performed using the average asymptotic method. Because the peaks of the 16 correlation sequences of a zero-frequency signal exhibit a single peak and single valley pattern, the present invention proposes an average asymptotic method that continuously narrows the range of sequences requiring correlation through several rounds of fine acquisition, gradually approaching the most accurate code phase. Therefore, correlation of all 16 sequences for the zero-frequency signal does not need to be completed. When the sampling rate is 16.368 MHz, only nine sequences need to be correlated at most, and the computational complexity is 56% of that without the average asymptotic method. This reduces the computational complexity while achieving a phase accuracy of 1 / 16.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of satellite positioning, and in particular to a GNSS signal acquisition method, device, equipment and medium based on average asymptotic phase search. Background Art

[0002] GNSS (Global Navigation Satellite System) is a global navigation satellite system that can provide all-weather, high-precision position, speed and time information for all types of vehicles on land, sea and air around the world. It includes four systems: the US GPS system, the European Galileo system, the Russian GLONASS system and the Chinese BeiDou system.

[0003] GNSS comprises numerous satellite constellations, receivers, and monitoring systems. GNSS receivers are currently widely used in civil technology, scientific research, and the military. The receiver baseband signal processing typically involves two steps: acquisition and tracking. Capture provides a rough estimate of the satellite signal's pseudo-code phase and carrier frequency. These are then fed into the tracking module for precise estimation. Acquisition is a key technology in receiver design.

[0004] Typical acquisition algorithms include time-domain serial acquisition, frequency-domain parallel acquisition, and code-domain parallel acquisition. Code-domain parallel acquisition algorithms require fewer searches and take less time to acquire compared to the previous two methods. Therefore, code-domain parallel acquisition algorithms have long been a research hotspot for GNSS receivers.

[0005] While the code parallel acquisition algorithm significantly reduces the number of searches, the amount of data required for implementation is affected by the receiver's sampling rate. A higher sampling rate increases the amount of data per unit time, leading to excessive computational effort and hardware resources. Therefore, downsampling is often necessary at the beginning of data processing. Consequently, the improved average correlation algorithm based on the code parallel acquisition algorithm employs downsampling to reduce the number of FFT points to 2048. While this reduces computational effort, it also results in lower code phase capture accuracy.

[0006] Therefore, it is necessary to invent a fast acquisition method for GNSS signals so as to reduce the amount of calculation and improve the capture accuracy of the code phase. Summary of the Invention

[0007] The present invention provides a GNSS satellite signal acquisition method and system based on average asymptotic phase search.

[0008] In a first aspect, the present invention provides a GNSS satellite signal acquisition method based on average asymptotic phase search, comprising: S1, setting satellite parameters, a pseudo code generator generates an L-point local pseudo code signal c(n) according to the set satellite parameters, a downsampling module downsamples the signal c(n) to N points and then downsamples the N points through an FFT module, sends the downsampling result to the FFT module for FFT transformation and then takes the conjugate to obtain a signal c(k), and stores the signal c(k) in a local pseudo code memory; receives a GNSS signal sent by a satellite, and stores the GNSS signal s(n) in a GNSS signal memory; S2, enters a coarse capture state: sets the carrier transmission in the first branch and the second branch The carrier frequency of the generator is used to make the two branches generate different carrier frequencies; the GNSS signal stored in the GNSS signal memory is read, and the GNSS signal s(n) is divided into M sequences according to at least one preset starting address, the starting addresses of the M sequences are different, and the number of parameters in each sequence is the same, and a group of sequences is selected from the M sequences as input data based on a preset rule, and inputted into the first branch and the second branch respectively to obtain corresponding first branch results and second branch results, and the first branch results and the second branch results are respectively average correlated with the signal c(k) to obtain corresponding first PPR ratios and second PPR ratios, and if the first PPR ratio or the second PPR ratio is greater than Threshold, then according to the carrier frequency corresponding to the branch whose ratio is greater than the threshold, the parameters in the first branch and the second branch are set, and the peak parameters and peak phases of the correlation results corresponding to the branch whose ratio is greater than the threshold are recorded, and based on the set first branch and second branch, the S3 fine capture state is entered, and the coarse capture is successful; otherwise, the carrier frequency generated by the carrier generator in the first branch and the second branch is modified, and step S2 is repeated to continue the coarse capture; if the carrier frequency changes by a preset number and still does not meet the first PPR ratio or the second PPR ratio is greater than the threshold, then return to step S1 to reset the satellite parameters and search for the next satellite; S3, fine capture state: according to the preset step size formula and at least one preset At the starting address, two different GNSS signals are retrieved from the GNSS signal memory as signals s1(n) and s2(n), and signals s1(n) and s2(n) are used as input signals of the set first branch and second branch, respectively. Signal c(k) is read from the local pseudo code memory. The output signals of the two branches are respectively correlated with signal c(k) on an average basis. If the current round is the first round of fine capture, the peak values ​​of the correlation results of the two branches are respectively compared with the peak parameters recorded when the coarse capture is successful to obtain a maximum value. If the current round is not the first round of fine capture, the peak values ​​of the correlation results of the two branches are respectively compared with the maximum value obtained in the previous round of fine capture to obtain a new maximum value.Determine whether the fine capture termination condition is met. If so, terminate the capture of the current satellite, calculate and output the final peak phase index_final and the current carrier frequency of the first and / or second branch, and proceed to step S4. The calculation formula is: index_final = index_k*(L / N)+x-1, where x is the sequence corresponding to the maximum value obtained in the last round of fine capture, denoted as the maximum sequence, index_k is the peak phase after cross-correlation between the maximum sequence and the signal c(k), L is the number of points in the local pseudo-code signal c(n), and N is the number of points after downsampling. In step S4, determine whether all satellites have been searched. If not, return to step S1 to capture the next satellite. Otherwise, terminate the capture.

[0009] Furthermore, S2 enters the coarse capture state, including:

[0010] S21, set the carrier frequency fd1 / fd2 of the carrier generator in the first / second branch, the first branch generates the sine and cosine carrier signals: sin( fd1)、cos( fd1), the second branch generates sine and cosine carrier signals: sin( fd2)、cos( fd2), the formula of the carrier frequency generated by the carrier generator is fdz=fc-fd_down+theta*i, where fdz is the carrier frequency of the carrier generator, z=1 or 2 indicates the current first / second branch, fc is the intermediate frequency carrier frequency of the GNSS signal, the range of Doppler frequency shift is: fd_down~fd_up, fd_down and fd_up are both fixed values, theta is the preset carrier frequency search step, i is the number of carrier frequency searches, i=0, 1, 2, , (fd_up-fd_down) / theta+1, the initial i value of fd1 is set to 0, and the initial i value of fd2 is set to 1;

[0011] S22, read the GNSS signal stored in the GNSS signal memory, divide the GNSS signal into M sequences according to at least one preset starting address, the starting addresses of the M sequences are different, and the number of parameters in each sequence is the same, record the first sequence of the M sequences as sM(n), and send sM(n) to the first branch and the second branch at the same time for average correlation. The average correlation process of the first branch is: sM(n) is mixed with the sine and cosine carrier signals generated by the first branch carrier generator to obtain signals I(n) and Q(n), and then I(n) and Q(n) are down-sampled to N points to obtain signals I'(n) and Q'(n), and signals I'(n) and Q'(n) are respectively Perform FFT transformation on the real and imaginary parts to obtain the transformed number x(k), take out the transformed number c(k) in the local pseudo code memory, perform complex multiplication on x(k) and c(k), perform IFFT transformation on the complex multiplication result, and then perform modulus square on the IFFT result to obtain the signal S1(t). Finally, perform peak detection on S1(t) to obtain the first peak parameter, first peak phase, and first PPR ratio of the signal S1(t) corresponding to the first branch. The average correlation process of the second branch is the same as the average correlation process of the first branch. Send sM(n) to the second branch for average correlation to obtain the second peak parameter, second peak phase, and second PPR ratio of the signal S2(t) corresponding to the second branch.

[0012] S23, if the first PPR ratio or the second PPR ratio is greater than the threshold, the parameters in the first branch and the second branch are set according to the carrier frequency corresponding to the branch whose ratio is greater than the threshold, and the carrier frequency corresponding to the branch whose ratio is greater than the threshold is recorded as fd`, and the peak parameter and peak phase of the correlation result corresponding to the branch whose PPR ratio is greater than the threshold are recorded, and the peak parameter is recorded as peak_max, and the peak phase is recorded as peak_index. Based on the set first branch and second branch, the S3 fine capture state is entered, and the coarse capture is successful; otherwise, the carrier frequency generated by the carrier generator in the first / second branch is modified by increasing the i value of the carrier generator in the two branches by 1, and step S2 is repeated to continue coarse capture; if the carrier frequency change reaches a preset number and still does not meet the first PPR ratio or the second PPR ratio greater than the threshold, return to step S1 to reset the satellite parameters and search for the next satellite.

[0013] Furthermore, S3 captures the state, including:

[0014] S31, first select sequence x, x is the starting position of the sequence that was successfully captured in the previous round of fine or coarse capture, according to the step formula ,in , is the receiver sampling rate, is the code rate of the local pseudo code signal c(n), K is the current capture round number,

[0015] Respectively 、 Read the L point data in the GNSS signal memory for the starting address and input the two branches respectively, and record the input sequences of the first branch and the second branch 2 as s1(n) and s2(n) respectively;

[0016] S32, the carrier frequencies of the carrier generators in the two branches are set to fd`, and the sine and cosine signals generated by the first and second branches are the same: sin( fd`)、cos( fd`), and average correlation is performed on s1(n) and s2(n) respectively. The average correlation process of the two branches is the same. The average correlation process of the first branch is: s1(n) and the sine and cosine carrier signals generated by the carrier generator are mixed at the same time to obtain signals I1(n) and Q1(n), and I1(n) and Q1(n) are down-sampled to obtain signals I1`(n) and Q1`(n), and I1`(n) and Q1`(n) are used as the real part and imaginary part for FFT transformation to obtain signal x1(k), and the local The signal c(k) of the pseudo code memory is complex multiplied by x1(k) and c(k), and the multiplication result is processed by IFFT to obtain the IFFT result. The IFFT result is then subjected to modulus square processing to obtain the signal S11(t). Finally, S11(t) is peak detected to obtain the peak parameter peak_max1 and peak phase peak_index1 of the correlation result corresponding to the first branch. The peak parameter peak_max2 and peak phase peak_index2 of the sequence corresponding to the second branch are obtained.

[0017] S33, if the current is the first round of fine capture, then compare peak_max1, peak_max2 and peak`, where peak` is the peak parameter recorded when the coarse capture is successful, that is, the peak parameter recorded when the coarse capture is successful is also the peak parameter of the coarse capture state; if the current fine capture is not the first round of fine capture, then compare peak_max1, peak_max2 and the peak parameter peak` obtained in the previous round of fine capture, where peak` is the peak parameter recorded when the previous round of fine capture is successful, that is, the peak parameter recorded when the previous round of fine capture is also the peak parameter of the previous round of fine capture state The maximum value among peak_max1, peak_max2 and peak` is selected to determine whether the fine capture termination condition is met. If the fine capture termination condition is met, the capture of the current satellite is terminated. The fine capture termination condition is: determine whether the step size of this round of fine capture is 1 and whether the adjacent sequences of the maximum sequence corresponding to the maximum value when the step size is equal to 1 are all correlated. If the fine capture termination condition is not met, change the step size or perform the next round of fine capture on the adjacent sequences that have not been correlated, and use the sequence with the maximum value as the sequence x for the next fine capture until the step size is equal to 1 and the adjacent sequences of the current sequence x are all correlated.

[0018] S34. If the fine capture termination condition is met, the final peak phase index_final and the carrier frequency of the current first and / or second branch are calculated and output, and step S4 is entered. The calculation formula is: index_final=index_k*(L / N)+x-1, where x is the sequence corresponding to the maximum value obtained in the last round of fine capture, recorded as the maximum sequence, index_k is the peak phase after the maximum sequence is cross-correlated with the signal c(k), L is the number of points of the local pseudocode signal c(n), and N is the number of points after downsampling.

[0019] Furthermore, the GNSS signal memory depth is L+M, where L=fs*1ms, , fs is the GNSS signal sampling rate, is the code rate of the local pseudo code signal c(n), 1ms represents 1 millisecond, L is the number of points of the local pseudo code signal c(n), and M is the number of the M sequences.

[0020] Furthermore, the selection rule of x is as follows: in the first round of fine capture, the starting address of the sequence corresponding to the successful coarse capture is x, and in the remaining rounds of fine capture, the starting address of the sequence corresponding to the maximum value in the previous round of fine capture is x; the value range of x is 1~M, To select a sequence to the left, if The actual selected sequence is ; To select a sequence to the right, if The actual selected sequence is , K is the current capture round number, and M is the number of the M sequences.

[0021] The present invention also provides a GNSS satellite signal acquisition system based on average asymptotic phase search, comprising: a first control unit for setting satellite parameters, a pseudo code generator for generating L-point local pseudo code signals c(n) according to the set satellite parameters, a downsampling module for downsampling the signal c(n) to N points and then downsampling the N points through an FFT module, sending the downsampling result to the FFT module for FFT transformation and then taking the conjugate to obtain a signal c(k), and storing the signal c(k) in a local pseudo code memory; receiving a GNSS signal sent by a satellite and storing the GNSS signal in a GNSS signal memory; a second control unit for entering a coarse capture state: setting the carrier in the first branch and the second branch The carrier frequency of the generator is used to make the two branches generate different carrier frequencies; the GNSS signal s(n) stored in the GNSS signal memory is read, and the GNSS signal s(n) is divided into M sequences according to at least one preset starting address, the starting addresses of the M sequences are different, and the number of parameters in each sequence is the same, and a group of sequences is selected from the M sequences as input data based on a preset rule, and inputted into the first branch and the second branch respectively to obtain corresponding first branch results and second branch results, and the first branch results and the second branch results are respectively average correlated with the signal c(k) to obtain corresponding first PPR ratios and second PPR ratios, and if the first PPR ratio or the second PPR ratio is greater than or equal to the first PPR ratio, the first PPR ratio and the second PPR ratio are greater than or equal to the second PPR ratio. If the carrier frequency is greater than the threshold, the parameters in the first branch and the second branch are set according to the carrier frequency corresponding to the branch whose ratio is greater than the threshold, and the peak parameters and peak phases of the correlation results corresponding to the branch whose ratio is greater than the threshold are recorded, and the S3 fine capture state is entered based on the set first branch and second branch, and the coarse capture is successful; otherwise, the carrier frequency generated by the carrier generator in the first branch and the second branch is modified, and step S2 is repeated to continue the coarse capture; if the carrier frequency changes by a preset number and still does not meet the first PPR ratio or the second PPR ratio is greater than the threshold, then return to step S1 to reset the satellite parameters and search for the next satellite; the third control unit is used for the fine capture state: according to the preset step size formula and the preset to Retrieving two different GNSS signals from the GNSS signal memory as signals s1(n) and s2(n) with one less starting address, using signals s1(n) and s2(n) as input signals of the set first branch and second branch, respectively, reading signal c(k) from the local pseudo code memory, performing average correlation on the output signals of the two branches with signal c(k), and if the current round is the first round of fine capture, comparing the peak values ​​of the correlation results of the two branches with the peak parameters recorded when the coarse capture is successful to obtain a maximum value; if the current round is not the first round of fine capture, comparing the peak values ​​of the correlation results of the two branches with the maximum value obtained in the previous round of fine capture to obtain a new maximum value;Determine whether the fine capture termination condition is met. If so, terminate capture of the current satellite, calculate and output the final peak phase index_final and the current carrier frequency of the first and / or second branch, and proceed to step S4. The calculation formula is: index_final = index_k*(L / N)+x-1, where x is the sequence corresponding to the maximum value obtained in the last round of fine capture, denoted as the maximum sequence, index_k is the peak phase after cross-correlation between the maximum sequence and signal c(k), L is the number of points in the local pseudo-code signal c(n), and N is the number of points after downsampling. A fourth control unit is used to determine whether all satellites have been searched. If not, return to step S1 to capture the next satellite; otherwise, terminate capture.

[0022] The present invention provides a GNSS satellite signal acquisition method and system based on average asymptotic phase search, which has the following advantages: For a single satellite, the present invention combines acquisition with coarse and fine capture. The present invention determines the satellite signal's carrier frequency through coarse capture. During coarse capture, only one sequence from a set of M groups is captured to obtain the carrier frequency and coarse phase. This is because when the local carrier NCO is equal to the actual carrier frequency, the M correlation results all exhibit a maximum peak. However, when the local carrier NCO deviates from the actual frequency, even the maximum value among the M correlation results is very small compared to the former. Therefore, the frequency with a carrier frequency greater than a threshold is determined as the final carrier frequency. Because the peak values ​​of the M groups of zero-frequency signals exhibit a single peak and single valley pattern, the present invention proposes an average asymptotic method for precise phase search during fine capture, determining the satellite signal's phase through fine capture. The average asymptotic method includes calculating the sequence to be selected for this round of fine capture based on a step-size formula, capturing this sequence using the average correlation method, and then calculating the final output pseudo-code phase value (i.e., peak phase) and carrier frequency based on the step-size value and capture results. Furthermore, the phase is precisely searched using the average asymptotic method. Through several rounds of fine capture, the range of sequences requiring correlation is continuously narrowed, gradually approaching the most accurate code phase. Depending on the receiver sampling rate, the average asymptotic capture method reduces the computational effort by approximately 30% compared to the traditional average correlation method. This reduction in computational effort can achieve a phase accuracy of 1 / M. BRIEF DESCRIPTION OF THE DRAWINGS

[0023] In order to more clearly illustrate the technical solutions in the present invention or the prior art, a brief introduction is given below to the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.

[0024] Figure 1 This is a capture flow chart based on average asymptotic phase search;

[0025] Figure 2 This is the overall principle block diagram of the two-way parallel GNSS acquisition circuit based on average asymptotic phase search;

[0026] Figure 3 It is the peak detection flow chart. DETAILED DESCRIPTION

[0027] To make the objectives, technical solutions, and advantages of the present invention more clear, the technical solutions of the present invention will be clearly and completely described below in conjunction with the accompanying drawings. Obviously, the embodiments described are only some embodiments of the present invention, not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts shall fall within the scope of protection of the present invention.

[0028] It should also be noted that, for ease of description, only the parts related to the invention are shown in the drawings. In the absence of conflict, the embodiments and features of the embodiments of the present invention may be combined with each other.

[0029] It should be noted that the concepts of "first" and "second" mentioned in the present invention are only used to distinguish different devices, modules or units, and are not used to limit the order or interdependence of the functions performed by these devices, modules or units.

[0030] It should be noted that the modifications of "one" and "multiple" mentioned in the present invention are illustrative rather than restrictive. Those skilled in the art should understand that unless otherwise clearly indicated in the context, it should be understood as "one or more".

[0031] The names of the messages or information exchanged between multiple devices in the embodiments of the present invention are only used for illustrative purposes and are not used to limit the scope of these messages or information.

[0032] The present invention will be described in detail below with reference to the accompanying drawings and in conjunction with embodiments.

[0033] See also Figure 1 , Figure 1 FIG. 1 is a flow chart of some embodiments of the GNSS satellite signal acquisition method based on average asymptotic phase search provided by the present invention. Figure 1 As shown, the method includes the following steps:

[0034] S1, set satellite parameters, the pseudo code generator generates L-point local pseudo code signal c(n) according to the set satellite parameters, the downsampling module downsamples the signal c(n) to N points and then downsamples N points through the FFT module, sends the downsampling result to the FFT module for FFT transformation and takes the conjugate to obtain the signal c(k), and stores the signal c(k) in the local pseudo code memory; receive the GNSS signal sent by the satellite and store the GNSS signal in the GNSS signal memory.

[0035] The GNSS signal is denoted as sN(n), where N=1, 2, 3…N.

[0036] L is the number of chips that comprise a complete pseudocode period, and N is the integer power of 2 closest to A, where , is the pseudo code rate. The depth of the local pseudo code memory is N.

[0037] The pseudo-code generator initializes two 10-bit registers, searches for the characteristic polynomial of each C / A code by satellite number, and shifts each clock shift register right by one bit to generate a local pseudo-random code for a different satellite.

[0038] The satellite parameters of the pseudo-code generator are set to generate a 16,368-point local pseudo-code signal c(n) with a sampling rate of 16.368 MHz. c(n) is sent to the downsampling module for downsampling to 1024 points. The 1024-point downsampling result is sent to the FFT module for FFT transformation. The conjugate of the FFT result is obtained to obtain the signal c(k). c(k) is stored in the local pseudo-code memory so that acquisitions under the same satellite number can directly read c(k) to save acquisition time. The storage depth of the local pseudo-code memory is 1024 and the bit width is 10 bits.

[0039] The downsampling module uniformly downsamples the 16,368-point data to 1,024 points. The average number of points satisfies the relationship: 16,368 = num15*16 + num16*1008. Each 16-point or 15-point data point is accumulated, resulting in 16 15-point accumulations and 1,008 16-point accumulations. The address of the 15-point accumulation is stored in memory 2. The input data is counted in segments of 16,368 points. The count value is compared with the output value of memory 2. If they are equal, the continuous 15-point data is accumulated starting from the current point count; otherwise, the continuous 16-point data is accumulated. The address count of memory 2 is incremented by 1, and subsequent comparisons are performed. This process is repeated until 16,368 points of data are counted, and the corresponding accumulation result is 1,024 points of data.

[0040] The GNSS signal memory, also known as the local pseudo-code memory, stores a digital intermediate frequency signal with a coherent integration time of 1.001ms and a sampling rate of 16.368MHz. The memory has a depth of 16384 and a bit width of 2 bits. The first 16 consecutive samples in the GNSS signal memory serve as the first data point of the first sampling chip of the input signal. This results in 16 sequences of 16368 correlated samples, referred to as sequences 1 to 16. The control module selects the first address to control the output sequence.

[0041] In one embodiment, the GNSS signal memory depth is L+M, where L=fs*1ms, , fs is the GNSS signal sampling rate, is the code rate of the local pseudo code signal c(n), 1ms represents 1 millisecond, L is the number of points of the local pseudo code signal c(n), and M is the number of the M sequences.

[0042] S2, enter the coarse capture state: set the carrier frequencies of the carrier generators in the first branch and the second branch so that the two branches generate different carrier frequencies; read the GNSS signal s(n) stored in the GNSS signal memory, divide the GNSS signal s(n) into M sequences according to at least one preset starting address, the starting addresses of the M sequences are different, and the number of parameters in each sequence is the same; select a group of sequences from the M sequences as input data based on a preset rule, input them into the first branch and the second branch respectively, obtain corresponding first branch results and second branch results, perform average correlation on the first branch results and the second branch results with the signal c(k), and obtain the corresponding first PPR ratio The ratio of the first PPR ratio and the second PPR ratio, if the first PPR ratio or the second PPR ratio is greater than the threshold, the parameters in the first branch and the second branch are set according to the carrier frequency corresponding to the branch whose ratio is greater than the threshold, and the peak parameters and peak phases of the correlation results corresponding to the branch whose ratio is greater than the threshold are recorded, and the S3 fine capture state is entered based on the set first branch and second branch, and the coarse capture is successful; otherwise, the carrier frequency generated by the carrier generator in the first branch and the second branch is modified, and step S2 is repeated to continue coarse capture; if the carrier frequency changes by a preset number and still does not meet the first PPR ratio or the second PPR ratio is greater than the threshold, return to step S1 to reset the satellite parameters and search for the next satellite.

[0043] S21, set the carrier frequency fd1 / fd2 of the carrier generator in the first / second branch, the first branch generates the sine and cosine carrier signals: sin( fd1)、cos( fd1), the second branch generates sine and cosine carrier signals: sin( fd2)、cos( fd2), the formula of the carrier frequency generated by the carrier generator is fdz=fc-fd_down+theta*i, where fdz is the carrier frequency of the carrier generator, z=1 or 2 indicates the current first / second branch, fc is the intermediate frequency carrier frequency of the GNSS signal, the range of Doppler frequency shift is: fd_down~fd_up, fd_down and fd_up are both fixed values, theta is the preset carrier frequency search step, i is the number of carrier frequency searches, i=0, 1, 2, , (fd_up-fd_down) / theta+1, the initial i value of fd1 is set to 0, and the initial i value of fd2 is set to 1.

[0044] Among them, the carrier generator can use the lookup table method to generate the local sine and cosine carrier signals. The corresponding sine and cosine wave amplitudes are calculated in advance through the phase, and then the sine and cosine amplitudes are stored using the phase as the address. The frequency control word is set through the controller, and the frequency control word is continuously accumulated and the upper seven bits are selected as the phase to look up the table to obtain the carrier.

[0045] The frequencies of the carrier generators in the two branches are set separately. Branch 1 generates sine and cosine carrier signals: sin( fd1)、cos( fd1), branch 2 generates sine and cosine carrier signals: sin( fd2)、cos( The carrier frequency of the GNSS signal is 4.1304 MHz, the sweep range is ±10 kHz, the frequency search step is 1 kHz, branch 1 searches for frequency fd1 = 4.1204 MHz, and branch 2 searches for frequency fd2 = 4.1214 MHz.

[0046] S22, read the GNSS signal stored in the GNSS signal memory, divide the GNSS signal into M sequences according to at least one preset starting address, the starting addresses of the M sequences are different, and the number of parameters in each sequence is the same, and record the first sequence of the M sequences as sM(n) (as an example, the preset rule is to select the first sequence as sM(n) as input data, and the preset rule can also be to randomly select a selected sequence as input data), and send sM(n) to the first branch and the second branch for average correlation at the same time. The average correlation process of the first branch is: sM(n) is mixed with the sine and cosine carrier signals generated by the first branch carrier generator to obtain signals I(n) and Q(n), and then I(n) and Q(n) are down-sampled to N points to obtain signals I'(n) and Q'(n), respectively, and signals I'(n) and Q'(n) are used as real parts and imaginary parts for FFT transformation to obtain number x(k), and the local pseudo code memory is taken out. The number c(k) is obtained by the transformation, x(k) and c(k) are complex multiplied, and the complex multiplication result is IFFT transformed, and the IFFT result is modulo squared to obtain the signal S1(t). Finally, S1(t) is peak detected to obtain the first peak parameter, first peak phase, and first PPR ratio of the signal S1(t) corresponding to the first branch. The average correlation process of the second branch is the same as the average correlation process of the first branch. sM(n) is sent to the second branch for average correlation to obtain the second peak parameter, second peak phase, and second PPR ratio of the signal S2(t) corresponding to the second branch.

[0047] Among them, the GNSS signal is divided into 16 sequences according to the different starting addresses of the GNSS signal memory, that is, reading 16368 points of data starting from the jth address in the GNSS signal memory is called the jth sequence, j=1,2, ,16. Take the first sequence as sM(n), and send sM(n) to branch 1 and branch 2 for average correlation. The average correlation process of the two branches is the same. The following describes the average correlation process with branch 1 as the object: the first sequence sM(n) of the GNSS signal and the sine and cosine carrier signals generated by the carrier generator are sent to the mixing module at the same time to obtain signals I(n) and Q(n). I(n) and Q(n) are sent to the downsampling module to obtain signals I`(n) and Q`(n). I`(n) and Q`(n) are used as FFs respectively. The real and imaginary parts of the T module are sent to the FFT module for transformation to obtain data x(k), and the data c(k) in the local pseudo-code memory is taken out. x(k) and c(k) are sent to the complex multiplication module at the same time for complex multiplication. The complex multiplication result is sent to the IFFT module for calculation to obtain the IFFT result. The IFFT result is then sent to the modulus square module to obtain the signal S1(t). Finally, S1(t) is sent to the peak detection module to obtain the maximum value, maximum value position, and PPR ratio of the branch (i.e., peak parameter, peak phase, and PPR ratio).

[0048] S23, if the first PPR ratio or the second PPR ratio is greater than the threshold, the parameters in the first branch and the second branch are set according to the carrier frequency corresponding to the branch whose ratio is greater than the threshold, and the carrier frequency corresponding to the branch whose ratio is greater than the threshold is recorded as fd`, and the peak parameter and peak phase of the correlation result corresponding to the branch whose PPR ratio is greater than the threshold are recorded, and the peak parameter is recorded as peak_max, and the peak phase is recorded as peak_index. Based on the set first branch and second branch, the S3 fine capture state is entered, and the coarse capture is successful; otherwise, the carrier frequency generated by the carrier generator in the first / second branch is modified by increasing the i value of the carrier generator in the two branches by 1, and step S2 is repeated to continue coarse capture; if the carrier frequency change reaches a preset number and still does not meet the first PPR ratio or the second PPR ratio greater than the threshold, return to step S1 to reset the satellite parameters and search for the next satellite.

[0049] The next capture state is determined based on the ratio of the two branch outputs. If the PPR ratio of one of the two branches is greater than 2.5, the carrier frequency of the branch is recorded as fd`, the maximum value is recorded as peak_max, and the position of the maximum value is recorded as peak_index. fd`, peak_max, and peak_index are sent to the controller and the process enters the S3 fine capture state. Otherwise, the process returns to step (1) to perform coarse capture of the next frequency point. The i value of the carrier generator in each of the two branches is increased by 1. If the ratio of the last frequency point of the satellite is still less than 2.5, the process returns to step S1 to search for the next satellite.

[0050] S3, fine capture state: according to the preset step size formula and at least one preset starting address, two different GNSS signals are taken out from the GNSS signal memory as signal s1(n) and signal s2(n), and signal s1(n) and signal s2(n) are respectively used as the input signals of the set first branch and second branch, and the signal c(k) of the local pseudo code memory is read out. The output signals of the two branches are respectively correlated with the signal c(k) on an average basis. If the current state is the first round of fine capture, the peak values ​​of the correlation results of the two branches are respectively compared with the peak parameters recorded when the coarse capture is successful to obtain the maximum value; if the current state is not ... Compare them with the maximum values ​​obtained in the previous round of fine capture to obtain a new maximum value; determine whether the fine capture termination condition is met. If the fine capture termination condition is met, end the capture of the current satellite, calculate and output the final peak phase index_final and the carrier frequency of the current first and / or second branch, and enter step S4. The calculation formula is: index_final=index_k*(L / N)+x-1, where x is the sequence corresponding to the maximum value obtained in the last round of fine capture, recorded as the maximum sequence, index_k is the peak phase after the maximum sequence is cross-correlated with the signal c(k), L is the number of points of the local pseudocode signal c(n), and N is the number of points after downsampling.

[0051] S31, first select sequence x, x is the starting position of the sequence that was successfully captured in the previous round of fine or coarse capture, according to the step formula ,in , is the receiver sampling rate, The code rate of the local pseudo code signal c(n), K is the current capture round number, respectively The L point data in the GNSS signal memory is read as the starting address and input into the two branches respectively, and the input sequences of the first branch and the second branch 2 are recorded as s1(n) and s2(n) respectively.

[0052] In some embodiments, the selection rule of x is: in the first round of fine capture, the starting address of the sequence corresponding to the successful coarse capture is x, and in the remaining rounds of fine capture, the starting address of the sequence corresponding to the maximum value in the previous round of fine capture is x; the value range of x is 1~M, To select a sequence to the left, if The actual selected sequence is ; To select a sequence to the right, if The actual selected sequence is , K is the current capture round number, and M is the number of the M sequences.

[0053] S32, the carrier frequencies of the carrier generators in the two branches are set to fd`, and the sine and cosine signals generated by the first and second branches are the same: sin( fd`)、cos( fd`), perform average correlation on s1(n) and s2(n) respectively. The average correlation process of the two branches is the same. The average correlation process of the first branch is: s1(n) and the sine and cosine carrier signals generated by the carrier generator are mixed simultaneously to obtain signals I1(n) and Q1(n), I1(n) and Q1(n) are down-sampled to obtain signals I1`(n) and Q1`(n), I1`(n) and Q1`(n) are used as the real part and imaginary part to perform FFT transformation to obtain signal x1(k), take out the signal c(k) from the local pseudo code memory, perform complex multiplication on x1(k) and c(k), perform IFFT processing on the multiplication result to obtain IFFT result, and then perform modular square processing on the IFFT result to obtain signal S11(t). Figure 3 Finally, S11(t) is peak-detected to obtain the peak parameter peak_max1 and peak phase peak_index1 of the correlation result corresponding to the first branch, and the peak parameter peak_max2 and peak phase peak_index2 of the sequence corresponding to the second branch 2.

[0054] S33, if the current is the first round of fine capture, then compare peak_max1, peak_max2 and peak`, where peak` is the peak parameter recorded when the coarse capture is successful, that is, the peak parameter recorded when the coarse capture is successful is also the peak parameter of the coarse capture state; if the current fine capture is not the first round of fine capture, then compare peak_max1, peak_max2 and the peak parameter peak` obtained in the previous round of fine capture, where peak` is the peak parameter recorded when the previous round of fine capture is successful, that is, the peak parameter recorded when the previous round of fine capture is also the peak parameter of the previous round of fine capture state The maximum value among peak_max1, peak_max2 and peak` is selected to determine whether the fine capture termination condition is met. If the fine capture termination condition is met, the capture of the current satellite is terminated. The fine capture termination condition is: determine whether the step size of this round of fine capture is 1 and whether the adjacent sequences of the maximum sequence corresponding to the maximum value when the step size is equal to 1 are all correlated. If the fine capture termination condition is not met, change the step size or perform the next round of fine capture on the adjacent sequences that are not correlated, and use the sequence with the maximum value as the sequence x for the next fine capture until the step size is equal to 1 and the adjacent sequences of the current sequence x are all correlated.

[0055] S34. If the fine capture termination condition is met, the final peak phase index_final and the carrier frequency of the current first and / or second branch are calculated and output, and step S4 is entered. The calculation formula is: index_final=index_k*(L / N)+x-1, where x is the sequence corresponding to the maximum value obtained in the last round of fine capture, recorded as the maximum sequence, index_k is the peak phase after the maximum sequence is cross-correlated with the signal c(k), L is the number of points of the local pseudocode signal c(n), and N is the number of points after downsampling.

[0056] S4, judging whether all satellites have been searched, if not, returning to step S1 to capture the next satellite, otherwise, the capture is terminated.

[0057] In some implementations, after a satellite is captured, the carrier frequency in the first branch or the second branch and the value of index_final may be output.

[0058] The currently captured satellites are counted to determine whether the current number of satellites is equal to 32. If not, the process returns to step S1 to capture the next satellite; otherwise, the process ends the capture.

[0059] In summary, since the local pseudocode does not change during the capture process for the same satellite, a significant amount of capture time can be saved by first generating the local pseudocode and its FFT conjugate result and then storing it. The capture process for the same satellite is divided into two parts: first, coarse capture of frequency and coarse phase is performed. The coarse capture process uses only one sequence to search for frequency points. When the sampling rate is 16.368 MHz, the signal length is 1 ms, and the number of sequences is 16, only one correlation is required for each frequency point, saving 15 correlation processes while still being able to search for the frequency point; second, the present invention uses the average asymptotic method to perform fine capture of the phase. Since the peaks of the 16 correlation sequences of the zero-frequency signal show a single peak and single valley pattern, the present invention proposes an average asymptotic method to continuously narrow the range of sequences that need to be correlated through several rounds of fine capture, gradually approaching the most accurate code phase. Therefore, it is not necessary to complete the correlation of all 16 sequences for the zero-frequency signal. When the sampling rate is 16.368 MHz, only nine sequences need to be correlated at most, and the computational complexity is 56% of that without the average asymptotic method. This reduces the computational complexity while achieving a phase accuracy of 1 / 16.

[0060] refer to Figure 2 The present invention also provides a GNSS satellite signal acquisition system based on average asymptotic phase search, which is characterized by comprising:

[0061] A first control unit is configured to set satellite parameters. A pseudo-code generator generates a local pseudo-code signal c(n) at point L based on the set satellite parameters. A downsampling module downsamples the signal c(n) to point N, and then downsamples the N points through an FFT module. The downsampling result is sent to an FFT module for FFT transformation, and then a conjugate is taken to obtain a signal c(k). The signal c(k) is stored in a local pseudo-code memory. The GNSS signal is received from the satellite, and the GNSS signal s(n) is stored in the GNSS signal memory.

[0062] The pseudo-code generator can initialize two 10-bit registers, and the characteristic polynomial of each C / A code is searched according to the satellite number. Each clock shift register is shifted right by one bit to generate a local pseudo-random code for a different satellite.

[0063] The satellite parameters of the pseudo-code generator are set to generate a 16,368-point local pseudo-code signal c(n) with a sampling rate of 16.368 MHz. c(n) is sent to the downsampling module for downsampling to 1024 points. The 1024-point downsampling result is sent to the FFT module for FFT transformation. The conjugate of the FFT result is obtained to obtain the signal c(k). c(k) is stored in the local pseudo-code memory so that acquisitions under the same satellite number can directly read c(k) to save acquisition time. The storage depth of the local pseudo-code memory is 1024 and the bit width is 10 bits.

[0064] The downsampling module uniformly downsamples the 16,368-point data to 1,024 points. The average number of points satisfies the relationship: 16,368 = num15*16 + num16*1008. Each 16-point or 15-point data point is accumulated, resulting in 16 15-point accumulations and 1,008 16-point accumulations. The address of the 15-point accumulation is stored in memory 2. The input data is counted in segments of 16,368 points. The count value is compared with the output value of memory 2. If they are equal, the continuous 15-point data is accumulated starting from the current point count; otherwise, the continuous 16-point data is accumulated. The address count of memory 2 is incremented by 1, and subsequent comparisons are performed. This process is repeated until 16,368 points of data are counted, and the corresponding accumulation result is 1,024 points of data.

[0065] The second control unit is configured to enter a coarse capture state: set the carrier frequencies of the carrier generators in the first branch and the second branch so that the two branches generate different carrier frequencies; read the GNSS signal s(n) stored in the GNSS signal memory, divide the GNSS signal s(n) into M sequences according to at least one preset starting address, wherein the starting addresses of the M sequences are different and the number of parameters in each sequence is the same; select a group of sequences from the M sequences as input data based on a preset rule, input the data into the first branch and the second branch respectively, obtain corresponding first branch results and second branch results, perform average correlation on the first branch results and the second branch results and the signal c(k) respectively, and obtain corresponding first P PR ratio and second PPR ratio, if the first PPR ratio or the second PPR ratio is greater than the threshold, the parameters in the first branch and the second branch are set according to the carrier frequency corresponding to the branch whose ratio is greater than the threshold, and the peak parameters and peak phases of the correlation results corresponding to the branch whose ratio is greater than the threshold are recorded, and the S3 fine capture state is entered based on the set first branch and second branch, and the coarse capture is successful; otherwise, the carrier frequency generated by the carrier generator in the first branch and the second branch is modified, and step S2 is repeated to continue coarse capture; if the carrier frequency changes by a preset number and still does not meet the first PPR ratio or the second PPR ratio greater than the threshold, return to step S1 to reset the satellite parameters and search for the next satellite.

[0066] Among them, the carrier generator can use the lookup table method to generate the local sine and cosine carrier signals. The corresponding sine and cosine wave amplitudes are calculated in advance through the phase, and then the sine and cosine amplitudes are stored using the phase as the address. The frequency control word is set through the controller, and the frequency control word is continuously accumulated and the upper seven bits are selected as the phase to look up the table to obtain the carrier.

[0067] Two parallel acquisition branches are used, each consisting of a carrier generator, a frequency mixer, a downsampling module, an FFT module, a complex multiplication module, an IFFT module, a modulus square module, and a peak detection module. The GNSS signal storage module, the pseudo-code generator, and the control module are shared by both branches. A controller controls the satellite number setting of the local pseudo-code generator, the overall acquisition status, and the branch parameter settings, which include the output sequence of the GNSS signal storage and the frequency control word of the carrier generator.

[0068] Among them, the modular square module: squares the real part and the imaginary part of the IFFT result respectively and then sums them to obtain the 1024-point correlation value S11(t).

[0069] The peak detection module finds the maximum value peak_max and the second maximum value peak_second of S11(t), records the maximum value position index_max, calculates the ratio of the maximum value to the second maximum value PPR = peak_max / peak_second, and outputs PPR, peak_max, and index_max.

[0070] The frequency mixing module multiplies the read 16368-point GNSS signal with the carrier output by the carrier generator to obtain a frequency-converted signal.

[0071] Among them, FFT module and IFFT module: According to the formula: and Implement corresponding mathematical operations and convert the signal into time domain and frequency domain.

[0072] The complex multiplication module replaces the four multiplications and three additions of complex multiplication with three multiplications and five additions. The algorithm is as follows: (a+jb)(x+jy)=x(a+b)-b(x+y)+j[y(ab)+b(x+y)], where a and b are the real and imaginary parts of the GNSS signal FFT result, and x and y are the real and imaginary parts of the conjugate result after the local pseudo-code FFT.

[0073] The third control unit is used for the fine capture state: according to the preset step size formula and the preset at least one starting address, two different sequences are taken out from the GNSS signal memory as the signal s1(n) and the signal s2(n), the signal s1(n) and the signal s2(n) are respectively used as the input signals of the set first branch and the second branch, the signal c(k) of the local pseudo code memory is read out, the output signals of the two branches are respectively correlated with the signal c(k) on an average basis, if the current is the first round of fine capture, the peak values ​​of the correlation results of the two branches are respectively compared with the peak parameters recorded when the coarse capture is successful to obtain the maximum value; if the current is not the first round of fine capture, the peak values ​​of the correlation results of the two branches are respectively compared with the peak parameters recorded when the coarse capture is successful to obtain the maximum value; if the current is not the first round of fine capture, the peak values ​​of the correlation results of the two branches are respectively compared with the peak parameters recorded when the coarse capture is successful to obtain the maximum value; The values ​​are compared with the maximum values ​​obtained in the previous round of fine capture to obtain a new maximum value; determine whether the fine capture termination condition is met. If the fine capture termination condition is met, end the capture of the current satellite, calculate and output the final peak phase index_final and the carrier frequency of the current first and / or second branch, and enter step S4. The calculation formula is: index_final=index_k*(L / N)+x-1, where x is the sequence corresponding to the maximum value obtained in the last round of fine capture, recorded as the maximum sequence, index_k is the peak phase after the maximum sequence is cross-correlated with the signal c(k), L is the number of points of the local pseudo code signal c(n), and N is the number of points after downsampling;

[0074] The fourth control unit is used to determine whether all satellites have been searched. If not, the process returns to step S1 to capture the next satellite; otherwise, the process ends the capture.

[0075] The above-mentioned first control unit, second control unit, third control unit, fourth control unit, and fifth control unit can be combined into a control module, which includes four functions: 1. Calculating the number of satellites currently captured; 2. Counting the frequency points that have been captured by coarse capture; 3. Controlling the local pseudo code generator to change the satellite number; 4. Controlling the jump between coarse and fine capture states during capture: During coarse capture, the next capture state is judged according to the ratio result output by the peak detection module, and the threshold is set to 2.5. If the PPR is greater than 2.5, the frequency and coarse phase obtained by coarse capture are sent to fine capture and enter the fine capture state; during fine capture, the controller has three functions: 1) controlling the read address of the GNSS signal memory; 2) comparing the maximum value of the two branches with the maximum value obtained in the previous round of capture, determining the maximum sequence of this round of fine capture, and using the average asymptotic method to calculate and select the sequence for the next fine capture. The innovation of this invention lies in the use of an average asymptotic method to select sequences during fine capture. This method involves selecting the input sequence for fine capture by selecting the sequence for the next round of fine capture from the left and right sequences of the maximum sequence in the previous round according to a step size formula. This reduces the number of sequences to be searched by continuously narrowing the range of sequences to be searched. 3) Determining whether the step size is equal to 1; if not, calculating the step size and selecting a sequence for the next round of fine capture until the step size equals 1; when the step size equals 1, determining whether all adjacent sequences of the maximum sequence are correlated. If the step size is 1 and all adjacent sequences of the maximum sequence are correlated, capture of the current satellite is terminated, the final pseudo-code phase, the current satellite number, and the frequency are calculated and output, and the satellite number of the local pseudo-code generator is changed. Otherwise, the next round of fine capture is performed on the uncorrelated adjacent sequences.

[0076] The above system provides a GNSS signal acquisition circuit implementation based on average asymptotic phase search, which is used to reduce the number of correlations of the average correlation algorithm, while reducing the amount of calculation without reducing the code phase accuracy.

[0077] It is understandable that the modules described in this system are similar to those in the reference Figure 1 The steps in the described method correspond to each other. Therefore, the operations, features and beneficial effects described above for the method are also applicable to the system and the modules and units contained therein, and will not be repeated here.

[0078] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, i.e., they may be located in one location or distributed across multiple network units. Some or all of the modules may be selected based on actual needs to achieve the objectives of the present embodiment. Persons of ordinary skill in the art will be able to understand and implement the present invention without inventive effort.

[0079] Through the description of the above embodiments, those skilled in the art will clearly understand that each embodiment can be implemented using software plus a necessary general-purpose hardware platform, or of course, hardware. Based on this understanding, the essence of the above technical solution, or the portion that contributes to the prior art, can be embodied in the form of a software product. This computer software product can be stored in a computer-readable storage medium, such as ROM / RAM, a magnetic disk, or an optical disk, and includes a number of instructions for causing a computer device (such as a personal computer, server, or network device) to execute the above methods of each embodiment or certain portions of the embodiments.

[0080] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the various embodiments of the present invention.

Claims

1. A GNSS satellite signal acquisition method based on average asymptotic phase search, characterized in that: include: S1, set satellite parameters. The pseudo code generator generates a local pseudo code signal c(n) at point L according to the set satellite parameters. The downsampling module downsamples the signal c(n) to point N and then downsamples the N points through the FFT module. The downsampling result is sent to the FFT module for FFT transformation and conjugation is taken to obtain the signal c(k). The signal c(k) is stored in the local pseudo code memory. Receive the GNSS signal sent by the satellite and store the GNSS signal in the GNSS signal memory. S2, enter the coarse capture state: set the carrier frequencies of the carrier generators in the first branch and the second branch so that the two branches generate different carrier frequencies; read the GNSS signal s(n) stored in the GNSS signal memory, divide the GNSS signal s(n) into M sequences according to at least one preset starting address, the starting addresses of the M sequences are different, and the number of parameters in each sequence is the same; select a group of sequences from the M sequences as input data based on a preset rule, input them into the first branch and the second branch respectively, obtain corresponding first branch results and second branch results, perform average correlation on the first branch results and the second branch results with the signal c(k), and obtain the corresponding first PPR ratio The first PPR ratio and the second PPR ratio are respectively calculated. If the first PPR ratio or the second PPR ratio is greater than the threshold, the parameters in the first branch and the second branch are set according to the carrier frequency corresponding to the branch whose ratio is greater than the threshold, and the peak parameters and peak phases of the correlation results corresponding to the branch whose ratio is greater than the threshold are recorded. Based on the set first branch and second branch, the fine capture state S3 is entered, and the coarse capture is successful; otherwise, the carrier frequencies generated by the carrier generators in the first branch and the second branch are modified, and step S2 is repeated to continue the coarse capture; if the first PPR ratio or the second PPR ratio is still not greater than the threshold after the change of the carrier frequency reaches a preset number, the satellite parameters reset in step S1 are returned to search for the next satellite; S3, fine capture state: according to the preset step size formula and at least one preset starting address, two different GNSS signals are taken out from the GNSS signal memory as signal s1(n) and signal s2(n), and signal s1(n) and signal s2(n) are respectively used as the input signals of the set first branch and second branch, and the signal c(k) of the local pseudo code memory is read out. The output signals of the two branches are respectively correlated with the signal c(k) on an average basis. If the current state is the first round of fine capture, the peak values ​​of the correlation results of the two branches are respectively compared with the peak parameters recorded when the coarse capture is successful to obtain the maximum value; if the current state is not the first round of fine capture, ... coarse capture is not the first round of fine capture, the correlation results of the two branches are respectively compared with the peak parameters recorded when the coarse capture is successful to obtain the maximum value; if the coarse capture is not the first round of fine capture, the correlation results of the two branches are respectively compared with the peak parameters recorded when the coarse capture is successful to obtain the maximum value; if the coarse capture is not the first round of fine capture, the correlation results of the two branches are respectively compared with the peak parameters recorded when the coarse capture is successful to obtain the maximum The peak values ​​are compared with the maximum values ​​obtained in the previous round of fine capture to obtain a new maximum value; whether the fine capture termination condition is met is determined. If so, the capture of the current satellite is terminated, and the final peak phase index_final and the current carrier frequency of the first and / or second branch are calculated and output, and step S4 is entered. The calculation formula is: index_final=index_k*(L / N)+x-1, where x is the sequence corresponding to the maximum value obtained in the last round of fine capture, recorded as the maximum sequence, index_k is the peak phase after the maximum sequence is cross-correlated with the signal c(k), L is the number of points of the local pseudo code signal c(n), and N is the number of points after downsampling; S4, judging whether all satellites have been searched, if not, returning to step S1 to capture the next satellite, otherwise, the capture is terminated.

2. The GNSS satellite signal acquisition method based on average asymptotic phase search according to claim 1, characterized in that: S2, enters the coarse capture state, including: S21, set the carrier frequency fd1 / fd2 of the carrier generator in the first / second branch, the first branch generates the sine and cosine carrier signals: sin( fd1)、cos( fd1), the second branch generates sine and cosine carrier signals: sin( fd2)、cos( fd2), the formula of the carrier frequency generated by the carrier generator is fdz=fc-fd_down+theta*i, where fdz is the carrier frequency of the carrier generator, z=1 or 2 indicates that the current is the first / second branch, fc is the intermediate frequency carrier frequency of the GNSS signal, the range of Doppler frequency shift is: fd_down~fd_up, fd_down and fd_up are both fixed values, theta is the preset carrier frequency search step, i is the number of carrier frequency searches, i=0, 1, 2, , (fd_up-fd_down) / theta+1, the initial i value of fd1 is set to 0, and the initial i value of fd2 is set to 1; S22, read the GNSS signal stored in the GNSS signal memory, divide the GNSS signal into M sequences according to at least one preset starting address, the starting addresses of the M sequences are different, and the number of parameters in each sequence is the same, record the first sequence of the M sequences as sM(n), and send sM(n) to the first branch and the second branch at the same time for average correlation, the average correlation process of the first branch is: sM(n) is mixed with the sine and cosine carrier signals generated by the carrier generator of the first branch to obtain signals I(n) and Q(n), and then I(n) and Q(n) are down-sampled to N points to obtain signals I'(n) and Q'(n), and signals I'(n) and Q'(n) are respectively mixed. Perform FFT transformation on the real and imaginary parts respectively to obtain the number x(k), take out the transformation in the local pseudo code memory to obtain the number c(k), perform complex multiplication on x(k) and c(k), then perform IFFT transformation on the complex multiplication result, and then take the modulus square of the IFFT result to obtain the signal S1(t), and finally perform peak detection on S1(t) to obtain the first peak parameter, first peak phase, and first PPR ratio of the signal S1(t) corresponding to the first branch. The average correlation process of the second branch is the same as the average correlation process of the first branch. Send sM(n) to the second branch for average correlation to obtain the second peak parameter, second peak phase, and second PPR ratio of the signal S2(t) corresponding to the second branch; S23, if the first PPR ratio or the second PPR ratio is greater than the threshold, the parameters in the first branch and the second branch are set according to the carrier frequency corresponding to the branch whose ratio is greater than the threshold, and the carrier frequency corresponding to the branch whose ratio is greater than the threshold is recorded as fd`, and the peak parameter and peak phase of the correlation result corresponding to the branch whose PPR ratio is greater than the threshold are recorded, and the peak parameter is recorded as peak_max, and the peak phase is recorded as peak_index. Based on the set first branch and second branch, the S3 fine capture state is entered, and the coarse capture is successful; otherwise, the carrier frequency generated by the carrier generator in the first / second branch is modified by increasing the i value of the carrier generator in the two branches by 1, and step S2 is repeated to continue coarse capture; if the carrier frequency change reaches a preset number and still does not meet the first PPR ratio or the second PPR ratio greater than the threshold, return to step S1 to reset the satellite parameters and search for the next satellite.

3. The GNSS satellite signal acquisition method based on average asymptotic phase search according to claim 2, characterized in that: S3 captures detailed status, including: S31, first select sequence x, x is the starting position of the sequence that was successfully captured in the previous round of fine or coarse capture, according to the step formula ,in , is the receiver sampling rate, is the code rate of the local pseudo code signal c(n), K is the current capture round number, and Read the L point data in the GNSS signal memory for the starting address and input the two branches respectively. The input sequences of the first branch and the second branch are recorded as s1(n) and s2(n) respectively. S32, the carrier frequencies of the carrier generators in the two branches are set to fd`, and the sine and cosine signals generated by the first and second branches are the same: sin( fd`)、cos( fd`), and average correlation is performed on s1(n) and s2(n) respectively. The average correlation process of the two branches is the same. The average correlation process of the first branch is: s1(n) and the sine and cosine carrier signals generated by the carrier generator are mixed at the same time to obtain signals I1(n) and Q1(n), and I1(n) and Q1(n) are down-sampled to obtain signals I1`(n) and Q1`(n), and I1`(n) and Q1`(n) are used as the real part and imaginary part for FFT transformation to obtain signal x1(k), and the local The signal c(k) of the pseudo code memory is complex multiplied by x1(k) and c(k), the multiplication result is processed by IFFT to obtain the IFFT result, and the IFFT result is modulo squared to obtain the signal S11(t). Finally, S11(t) is peak detected to obtain the peak parameter peak_max1 and peak phase peak_index1 of the correlation result corresponding to the first branch. The peak parameter peak_max2 and peak phase peak_index2 of the sequence corresponding to the second branch 2 are obtained. S33, if the current is the first round of fine capture, then compare peak_max1, peak_max2 and peak`, where peak` is the peak parameter recorded when the coarse capture is successful, that is, the peak parameter recorded when the coarse capture is successful is also the peak parameter of the coarse capture state; if the current fine capture is not the first round of fine capture, then compare peak_max1, peak_max2 and the peak parameter peak` obtained in the previous round of fine capture, where peak` is the peak parameter recorded when the previous round of fine capture is successful, that is, the peak parameter recorded when the previous round of fine capture is also the peak parameter of the previous round of fine capture state The maximum value among peak_max1, peak_max2 and peak` is selected to determine whether the fine capture termination condition is met. If the fine capture termination condition is met, the capture of the current satellite is terminated. The fine capture termination condition is: determine whether the step size of this round of fine capture is 1 and whether the adjacent sequences of the maximum sequence corresponding to the maximum value when the step size is equal to 1 are all correlated. If the fine capture termination condition is not met, change the step size or perform the next round of fine capture on the adjacent sequences that have not been correlated, and use the sequence with the maximum value as the sequence x for the next fine capture until the step size is equal to 1 and the adjacent sequences of the current sequence x are all correlated. S34. If the fine capture termination condition is met, the final peak phase index_final and the carrier frequency of the current first and / or second branch are calculated and output, and step S4 is entered. The calculation formula is: index_final=index_k*(L / N)+x-1, where x is the sequence corresponding to the maximum value obtained in the last round of fine capture, recorded as the maximum sequence, index_k is the peak phase after the maximum sequence is cross-correlated with the signal c(k), L is the number of points of the local pseudocode signal c(n), and N is the number of points after downsampling.

4. The GNSS satellite signal acquisition method based on average asymptotic phase search according to claim 1, characterized in that: The GNSS signal memory depth is L+M, where L=fs*1ms. , fs is the GNSS signal sampling rate, is the code rate of the local pseudo code signal c(n), 1ms represents 1 millisecond, L is the number of points of the local pseudo code signal c(n), and M is the number of the M sequences.

5. The GNSS satellite signal acquisition method based on average asymptotic phase search according to claim 3, characterized in that: The selection rule of x is: in the first round of fine capture, the starting address of the sequence corresponding to the successful coarse capture is x, and in the remaining rounds of fine capture, the starting address of the sequence corresponding to the maximum value in the previous round of fine capture is x; the value range of x is 1~M, To select a sequence to the left, if The actual selected sequence is ; To select a sequence to the right, if The actual selected sequence is K is the current capture round number, and M is the number of the M sequences.

6. A GNSS satellite signal acquisition system based on average asymptotic phase search, characterized in that: include: A first control unit is configured to set satellite parameters, wherein a pseudo-code generator generates a local pseudo-code signal c(n) at L points according to the set satellite parameters. A downsampling module downsamples the signal c(n) to N points, and then downsamples the N points through an FFT module. The downsampling result is sent to an FFT module for FFT transformation, and then a conjugate is taken to obtain a signal c(k). The signal c(k) is stored in a local pseudo-code memory. The GNSS signal is received from the satellite and stored in the GNSS signal memory. The second control unit is configured to enter a coarse capture state and set the carrier frequencies of the carrier generators in the first branch and the second branch so that the two branches generate different carrier frequencies; Read the GNSS signal s(n) stored in the GNSS signal memory, divide the GNSS signal s(n) into M sequences according to at least one preset starting address, wherein the starting addresses of the M sequences are different and the number of parameters in each sequence is the same, select a group of sequences from the M sequences as input data based on a preset rule, input them into the first branch and the second branch respectively, obtain corresponding first branch results and second branch results, perform average correlation on the first branch results and the second branch results with the signal c(k), respectively, and obtain corresponding first PPR ratios and second PPR ratios, if the first PPR ratio or the second PPR ratio is If the ratio is greater than the threshold, the parameters in the first branch and the second branch are set according to the carrier frequency corresponding to the branch with the ratio greater than the threshold, and the peak parameters and peak phases of the correlation results corresponding to the branch with the ratio greater than the threshold are recorded. Based on the set first branch and second branch, the fine capture state S3 is entered, and the coarse capture is successful; otherwise, the carrier frequencies generated by the carrier generators in the first branch and the second branch are modified, and step S2 is repeated to continue the coarse capture; if the carrier frequency changes by a preset number and still does not meet the first PPR ratio or the second PPR ratio is greater than the threshold, the process returns to step S1 to reset the satellite parameters and search for the next satellite; The third control unit is used for the fine capture state: according to the preset step size formula and the preset at least one starting address, two different GNSS signals are taken out from the GNSS signal memory as the signal s1(n) and the signal s2(n), the signal s1(n) and the signal s2(n) are respectively used as the input signals of the first branch and the second branch, the signal c(k) of the local pseudo code memory is read out, the output signals of the two branches are respectively correlated with the signal c(k) on an average basis, if the current is the first round of fine capture, the peak values ​​of the correlation results of the two branches are respectively compared with the peak parameters recorded when the coarse capture is successful to obtain the maximum value; if the current is not the first round of fine capture, the correlation results of the two branches are respectively compared with the peak value ... The peak values ​​are compared with the maximum values ​​obtained in the previous round of fine capture to obtain a new maximum value; determine whether the fine capture termination condition is met. If the fine capture termination condition is met, terminate the capture of the current satellite, calculate and output the final peak phase index_final and the current carrier frequency of the first and / or second branch, and enter step S4. The calculation formula is: index_final=index_k*(L / N)+x-1, where x is the sequence corresponding to the maximum value obtained in the last round of fine capture, recorded as the maximum sequence, index_k is the peak phase after the maximum sequence is cross-correlated with the signal c(k), L is the number of points of the local pseudo code signal c(n), and N is the number of points after downsampling; The fourth control unit is used to determine whether all satellites have been searched. If not, the process returns to step S1 to capture the next satellite; otherwise, the process ends the capture.