The present application concerns satellite navigation systems and, in particular, the determination of the erroneous detection of cross-correlation signals as satellite signals.
In satellite positioning systems, cross correlation between a strong received satellite signal a weak satellite signal may prevent the coarse acquisition (C/A) code of a weak satellite signal may cause the global navigation satellite system (GNSS) to erroneously acquire and track the cross correlation signal as a satellite. This problem may occur where only a small number of strong satellite signals are available and the GNSS receiver acquires a weak satellite signal and then, during tracking erroneously switches to track the cross correlation signal as the weak satellite signal. Past systems have attempted to mitigate cross correlation in order to acquire/track weak satellite signals.
Past methods of cross correlation mitigation have included the classic post correlation subtraction method or the subspace projection method. The post correlation subtraction method typically relies on computing the cross correlation signature of the weak satellite C/A spreading code with a generated signal representing the strong satellite to be mitigated. The generated signal typically uses the carrier phase, carrier frequency, and code phase obtained from tracking the strong satellite to estimate the received strong satellite signal. The correlation signature is then scaled by the estimated strong satellite amplitude and subtracted from the correlation of the received signal with the weak satellite C/A code. Alternatively, in the subspace projection method the correlation signature may be compared against a threshold and the weak satellite C/A code may be modified for received signal correlation so as to reduce the cross correlation of the strong satellite signal with the modified C/A and to enable the weak satellite signal to be acquired/tracked.
Both the post correlation subtraction method and the subspace projection method require significant circuitry in the GNSS device. In addition, they may suffer from poor mitigation performance in dynamic environments. The correlation signature is sensitive to errors in the estimates of the amplitude and phase of the strong satellite signal. Estimate of the satellite parameters may not be accurate due to changing Doppler frequency shifts and fading that often occur in dynamic environments. In the subspace projection method, a different C/A code would have to be derived for each code phase position used in the correlation signature. Integration of the modified C/A code into the correlation with the received signal is also complicated to implement due to the code phase dependency of the correlation signature.
A significant disadvantage of prior methods of cross correlation detection is that they require the receiver to have knowledge of the existence of the strong interfering satellites.
The embodiments described below identify and eliminate false satellite signals that are cross correlation signals without prior knowledge of any possibly interfering strong satellite signals. The example method analyzes correlation signals for a small number of code phase offsets relative to a detected peak of a weak satellite signal to determine if the weak satellite signal is not a true satellite signal but a cross-correlation signal. These correlation signals are compared to a threshold value derived from the peak value. If one of these correlation signals exceeds the threshold value then the peak is determined to be a false peak.
Cross correlation can cause false locking on to a strong satellite while the GNSS receiver is searching for a weak satellite. Satellite signals of the Global Positioning System (GPS) use a 1023-bit pseudo-random noise (PRN) spreading codes that repeat every millisecond. The particular PRN codes used by GPS satellites are Gold Codes. These codes exhibit good cross correlation properties. In particular with zero carrier offset for the respective satellite signals, cross correlation between any two GPS signals is limited to about −24 dB with respect to the main autocorrelation peak. With the addition of carrier frequency offset in the range of ±5 kHz, however, cross correlation signals that are −20 db or less below the autocorrelation peak may be detected. While the invention is described in terms of a GPS system, it is contemplated that it may be practiced with other GNSS systems such as GLONASS, Galileo and Beidou. In addition, the subject invention may have applications outside of GNSS. It may be used, for example, to identify false correlations between non-orthogonal PRN codes, for example in code division multiple access (CDMA) receivers.
In practice, two satellite signals may have respective autocorrelation signal peaks that differ by 20 dB or more. As this is in the range of a cross-correlation signal from a strong satellite signals and the locally generated C/A code of the weak satellite, it is possible that this cross-correlation may be erroneously detected as a particular desired satellite signal.
Cross correlation can also result in a GNSS receiver that is tracking a combination of a strong satellite signal and a weak local code representation that is used to receive signals from a weak satellite. A particularly problematic cross correlation problem exists when the receiver has no knowledge of the existence of the strong signal causing the cross correlation. An example of this is the Quasi-Zenith Satellite System (QZSS), launched by the Japanese government. QZSS transmits an L1 C/A-code compatible signal. The L1 C/A code has two forms, one that is a predefined standard code for that satellite and another non-standard C/A code transmitted during satellite testing. The standard code is a PRN code that exhibits low cross correlation with GPS signals. The non-standard C/A code, however exhibits larger cross correlation that may be in the range of 20 dB below the peak autocorrelation signal of a strong satellite. Correlation signals in this range may be erroneously identified as GPS satellites by a GPS system.
If a receiver knows of a strong satellite signal, it may acquire and track that satellite and use algorithms such as those described above to predict and mitigate any cross-correlation distortion caused by the strong satellite signal. In many circumstances, a receiver will not know about a newly transmitted signal. Examples include receivers that were designed before this newly transmitted signal was conceived.
Tracking a strong signal emanating from a previously unknown transmitter can lead to erroneous position measurements because, due to the cross-correlation of the PRN codes, the receiver has mistaken the unknown satellite signal for the C/A code of a known satellite. This false lock onto an unknown satellite signal can result in position errors of hundreds of kilometers.
The inventor has determined that a false lock onto a strong satellite signal having a frequency offset or to an unknown satellite signal due to cross correlation between the PRN of the cross correlation signal and a true C/A code can be detected by analyzing the power of the correlated signal at ±N chip offsets from the estimated peak.
The inventor has determined that this is not the case for a false correlation caused by cross correlation of a known C/A code with the interfering signal of a strong satellite or of an unknown satellite. As can be seen from
The cross correlation detection technique used in the example embodiments described below relies on the cross correlation properties of any two PRN codes having certain characteristics. In particular, it relies on there being a high probability of a multiple cross correlation peaks having respective magnitudes that are within a predetermined threshold of each other and that are also within a relatively small number (±N) of chip offsets of each other. As shown in
Although the method described above detects cross correlation peaks, it may also detect false cross correlation peaks. These peaks are cases in which the receiver has locked on to a weak C/A code but, primarily due to noise effects, the algorithm erroneously identifies the peak as a cross correlation peak.
The samples from the input sample memory 818 are applied to a mixer 820 which also receives an IF carrier signal from the carrier numerically controlled oscillator (NCO) 822. The carrier NCO is controlled by microprocessor 802 to generate in-phase (I) and quadrature (Q) IF carrier signals that are compensated for known Doppler shifts of the satellite signal so that the mixer 820 synchronously demodulates satellite signal into I and Q components. The I and Q components are, in turn, applied to a matched filter 824. The matched filter 824 receives C/A code from code generator 828 which is driven by the code NCO 826. The C/A code received from the code generator forms the coefficients of the matched filter. The demodulated I and Q components are separately processed by respective matched filters to produce correlation values representing, for example, the sum of the products of the signals and the C/A code chip values.
In the example embodiment, the matched filter 824 includes a 32-bit shift register (not shown) that concurrently applies 32 different code phases respectively to 32 correlators, each code phase delayed with respect to the previous code phase by one-half chip. Each of the correlators also receives the I and Q signals provided by the mixer 820. The output signals of the matched filter are 32 sets of I and Q signals representing correlations of the input signal with the 32 respective C/A code phases covering 16 chips. These signals are applied to 32 absolute value circuits 830 that calculate A=SQRT(I2+Q2), the magnitudes of the signals provided by the matched filter. A number of the non-coherent values (A) may be accumulated for the same code phase offset to improve the effective signal to noise ratio. For example, if A is computed every 20 milliseconds for each of 32 code phase offsets then they may be further accumulated to form 32 code phase offsets every 1 second by accumulating each 20 msec code phase offset with itself.
The output signals of the absolute value circuits 830 are applied to a buffer memory that stores the respective values for analysis by the microprocessor 802. The microprocessor analyzes the data in the buffer memory 832 according to the algorithm shown in
As described above, the inventor has determined that a cross correlation peak will have secondary peak, within a few chip delays of the main peak, that is close in magnitude to the main peak. In the embodiments described below, the magnitude difference between the main peak and the secondary peak that indicates that the main peak is a cross correlation is a number of decibels. The trade-off between cross correlation detection (correctly detecting the presence of a cross correlation track) and false cross correlation detection (indicating cross correlation detection when in fact the correct signal is being tracked) may be analyzed via simulation, including the presence of random noise. The variants in the simulation include the threshold M, the number of correlation offsets used N and the signal to noise ratio of the received signals.
The values N and M may be different for different non-coherent integration summation (NCS) periods. Longer NCS periods typically result in higher signal-to-noise ratios. An early termination algorithm may be used to determine whether a decision should be made. In general if the received SNR is higher a decision about whether cross correlation is detected can be made more rapidly. Keeping the Pd (probability of detect) and Pfa (probability of false alarm) within reason. An example early termination algorithm is shown in
Step 902 of
The process in
Cn>C0*M (1)
This step determines if the value at chip phase Cn is within the threshold M of the main peak C0. If it is, then cross correlation has been detected and, at step 920, the process sets the variable XCORR to True. Once one peak that is within the threshold M of the main peak has been identified, the process transfers control to step A, described below with reference to
If, at step 914, the process determines that the stored value at chip delay Cn is not within the threshold M of the main peak C0, control transfers to step 916 which determines if all of the chip delays in the buffer memory 832 have been checked. If they have not then, at step 918, the value n is incremented and control is transferred to step 914 to test the value stored at the next chip delay.
The process shown in
If the process in
Thus, if a cross correlation is detected by the process shown in
The first step in the process, 1010, tests the value XCORR. If this value is False, then no cross correlation peaks were detected in the process of
ΔCN0p=CN0s−CN0p (2)
ΔFp=(Fp−Fs) modulo 1 kHz (3)
Step 1014 determines if satellite p is also a false lock caused by cross correlation by determining if ΔCN0p less than a threshold signal-to-noise difference value, for example, 5 dB, and if ΔFp is less than a threshold modulo frequency difference value, for example, 100 Hz. These values are provided only as examples and it is contemplated that other values may be used. If these two conditions are met, then at step 1016, the process removes satellite p from the list of detected satellites. If, at step 1014, the two criteria were not satisfied or after step 1016, step 1018 determines that the last satellite has been processed and, if it has, the process ends at step 1026. If step 1018 determines that the last satellite has not been processed then, at step 1020, p is incremented and control is transferred to step 1014 to determine if the next satellite in the list is a true satellite or a false lock based on a cross correlation.
The process shown in
The embodiments described above may be relatively easy to implement in existing GPS devices because these devices typically include several code phase offsets in their tracking data in order to detect continuous wave (CW) interfering signals or for far multipath detection. Thus, the described method may be implemented by adding a small amount of software to an existing GPS system.
The embodiments described above detect erroneous cross correlation satellite locks during satellite tracking. It is contemplated that a similar method may be applied during the acquisition phase to prevent the initial acquisition of a satellite based on a cross correlation. During satellite acquisition, several hypotheses are tested for each C/A code. In order to detect cross correlation, the algorithm shown in
The invention has been described in terms of example embodiments. It is contemplated that it may be practiced as described above with modifications within the scope of the following claims.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US11/40416 | 6/15/2011 | WO | 00 | 12/16/2013 |