Embodiments of the present invention relate to improved processes using non-coherent integration. In particular, some embodiments relate to improved processes using non-coherent integration in Global Navigation Satellite System (GNSS) receiver circuitry.
Some Global Navigation Satellite (GNSS) Systems such as Global Positioning Systems (GPS) and the proposed European system Galileo use Code Division Multiple Access (CDMA). This access scheme enables multiple communication channels to share a single frequency band by using orthogonal chipping codes to spread the data across the full frequency band. The chipping codes are also called pseudo random noise codes. A different chipping code is assigned to each satellite communication channel but all the satellite communication channels share the same frequency band.
Another Global Navigation Satellite System, GLONASS, uses frequency division multiple access. A different frequency band is assigned to each satellite communication channel but all the satellite communication channels share the same chipping code.
For the sake of simplicity, reference will now be made to a GNSS receiver, however, it should be appreciated that embodiments of the invention find application in other types of radio receivers.
A GNSS receiver is a complex system. It typically comprises an RF engine for demodulating RF signals, a measurement engine for acquiring the satellite communication channels, for tracking the satellite communication channels and for recovering transmitted data from each of the satellite communication channels and a position engine for solving time and geometric unknowns using the recovered data.
Acquisition is a complex process. The communication channel parameters are unknown and therefore “processing” is required to find those parameters. For a GPS system, which uses CDMA, the unknown parameters of the communication channel are the chipping code, the phase of the chipping code and the exact carrier frequency as modified by, for example, Doppler shifting.
The modified carrier frequency is typically found by performing frequency analysis and signal detection on the received signal.
The frequency analysis typically involves converting the signal from the time domain to the frequency domain using a fast Fourier transform (FFT). Identifying the frequency bin at which the strongest signal is detected identifies the modified carrier frequency.
As the signal strength is low, its strength and signal to noise ration may be improved by performing coherent integration, converting the integrated signal to a scalar value and then non-coherently integrating the scalar value.
There are a number of problems associated with this approach.
As the length of coherent integration increases, the number of the frequency bins required increases and more memory storage capacity is required.
As the length of non-coherent integration increases, the effect of clock drift in the receiver may spread the signal over multiple frequency bins.
According to one embodiment of the invention there is provided a method in which a non-coherent integration period is divided into a plurality of epochs and a frequency space is divided into a plurality of sub-spaces, the method comprising: combining a result of a first non-coherent integration in a first frequency sub-space over a first epoch with a result of a second non-coherent integration in a second frequency sub-space over a second epoch.
According to another embodiment of the invention there is provided circuitry comprising: first circuitry arranged to perform a first non-coherent integration in a first frequency sub-space over a first epoch and a second non-coherent integration in a second frequency sub-space over a second epoch, and second circuitry arranged to combine a result of the first non-coherent integration with a result of the second non-coherent integration.
According to another embodiment of the invention there is provided a data structure comprising the combination of a result of a first non-coherent integration in a first frequency sub-space over a first epoch and a result of a second non-coherent integration in a second frequency sub-space over a second epoch.
According to another embodiment of the invention there is provided a computer program product comprising computer program instructions for combining a result of a first non-coherent integration in a first frequency sub-space over a first epoch with a result of a second non-coherent integration in a second frequency sub-space over a second epoch.
According to another embodiment of the invention there is provided a method of non-coherent integration in an environment subject to drift of a time reference, the method comprising: creating a first putative non-coherent integration value by assuming no-drift of the time reference; creating a second putative non-coherent integration value by assuming drift of a first rate of the time reference; and determining a non-coherent integration value using the first putative non-coherent integration value and the second putative non-coherent integration value.
According to another embodiment of the invention there is provided circuitry comprising : first circuitry for creating a first putative non-coherent integration value by assuming no-drift of the time reference and creating a second putative non-coherent integration value by assuming drift of a first rate of the time reference; and second circuitry for determining a non-coherent integration value using the first putative non-coherent integration value and the second putative non-coherent integration value.
According to another embodiment of the invention there is provided a computer program product comprising computer program instructions for creating a first putative non-coherent integration value by assuming no-drift of the time reference; creating a second putative non-coherent integration value by assuming drift of a first rate of the time reference; and determining a non-coherent integration value using the first putative non-coherent integration value and the second putative non-coherent integration value.
According to another embodiment of the invention there is provided a method comprising: storing first data associated with non-coherent integration, over only a first epoch, of a signal occupying only a first frequency space; and storing second data associated with non-coherent integration, over only a second epoch, of a signal occupying only a second frequency space, wherein the first epoch precedes the second epoch and the first frequency space is smaller than the second frequency space.
According to another embodiment of the invention there is provided circuitry comprising: first circuitry for storing first data associated with non-coherent integration, over only a first epoch, of a signal occupying only a first frequency space; and second circuitry for storing second data associated with non-coherent integration, over only a second epoch, of a signal occupying only a second frequency space, wherein the first epoch precedes the second epoch and the first frequency space is smaller than the second frequency space.
According to another embodiment of the invention there is provided a data structure comprising: a first data structure associated with non-coherent integration, over only a first epoch, of a signal occupying only a first frequency space and a second data structure associated with non-coherent integration, over only a second epoch, of a signal occupying only a second frequency space, wherein the first epoch precedes the second epoch and the first frequency space is smaller than the second frequency space.
According to another embodiment of the invention there is provided a computer program product comprising: instructions for storing first data associated with non-coherent integration, over only a first epoch, of a signal occupying only a first frequency space; and instructions for storing second data associated with non-coherent integration, over only a second epoch, of a signal occupying only a second frequency space, wherein the first epoch precedes the second epoch and the first frequency space is smaller than the second frequency space.
For a better understanding of the present invention reference will now be made by way of example only to the accompanying drawings in which:
The receiver 10 comprises circuitry 2 that is dedicated to positioning the receiver 10. This circuitry 2 includes an RF engine 12 for demodulating RF signals, a measurement engine 14, 16, 18 for acquiring the satellite communication channels, for tracking the satellite communication channels and for recovering transmitted data from each of the satellite communication channels, a memory 17 for storing data and possibly a position engine 20 for solving time and geometric unknowns using the recovered data to determine the receiver system's position. The circuitry 2 may be provided as an integrated module.
The engines may be provided via dedicated circuitry such as interconnected electronic components, integrated circuits or undedicated circuitry such as a programmable microprocessor (see
In
The computer program instructions 72 may arrive at the electronic device via an electromagnetic carrier signal or be copied from a physical entity 74 such as a computer program product, a memory device or a record medium such as a CD-ROM or DVD.
In one embodiment, the receiver 10 is a GNSS receiver device that comprises a clock 22. In another embodiment, the receiver 10 comprises a host system 4 comprising a host clock 22. The host system 4 typically uses the host clock 22 in the provision of some functions other than satellite positioning such as, for example, cellular radio telephone operation or computer bus operation.
The clock 22 provides a time signal 23 to the circuitry 2 which is used as a time reference. The clock 22 may be produced by a crystal oscillator. However such clocks are subject to errors for example a crystal oscillator's frequency may drift with temperature. The rate of possible drift will typically be engineered to be limited so that is does not exceed Z Hz/s e.g. 60 Hz/s.
Encoded data 1 is received via a communications channel that has been encoded using at least two parameters, typically frequency and a chipping code.
A GNSS satellite communications channel is separated from the other satellite communication channels of the same GNSS by a unique combination of chipping code and frequency. In GPS, each satellite shares the same frequency band but has a different chipping code, whereas in GLONASS each satellite uses the same chipping code but has a different frequency band. As each channel is associated with a different satellite that has a different velocity relative to a receiver, each communications channel has, because of, for example, the Doppler effect, its own unknown frequency within a nominal carrier frequency band. A communication channel can therefore be defined by the parameters: chipping code, chipping code phase, and frequency as affected by Doppler shift.
The chipping code phase gives an initial indication of the time of flight from the satellite to the receiver system 10 and is referred to as a pseudo-range. It is corrected for at least receiver clock error compared to the satellite clock before it represents a true range. It may also be corrected for satellite clock and orbit errors and RF signal transmission errors.
The measurement engine 14, 16, 18 comprises a channel acquisition block 14 for acquiring the satellite communication channels, a tracking block 18 for tracking the satellite communication channels and a data recovery block 16 for recovering transmitted data from each of the satellite communication channels. The blocks 14, 16 and 18 can also be combined in several different ways. In one embodiment one block can perform all functions of said blocks.
Acquisition, performed by channel acquisition bock 14, is the process that positioning circuitry 2 uses to find satellite communication channels given a set of starting conditions (or uncertainties). This involves achieving frequency lock and code phase alignment and normally decoding data sufficiently to enable determination of a pseudo-range for each of four satellites.
Tracking of a communications channel, performed by the tracking block 18, involves the maintenance of the at least two parameters that define the channel and occasionally updating Satellite Data information as this changes from time to time (e.g. every 2 to 4 hours for GPS).
A position engine 20 solves at least four equations with four unknowns using the four pseudo-ranges to make a three dimensional position fix. The four unknowns are the three degrees of freedom in the receiver position (x, y, z) and the receiver time according to the ‘true’ satellite time reference (phase code offset). The positioning circuitry 2 must therefore acquire four separate communication channels and obtain four pseudo-ranges.
Encoded data 1 is received via an antenna and converted by the RF engine 12, it is then frequency shifted from an intermediate frequency IF to a baseband frequency by mixer 40 under the control of frequency controller 42. The frequency controller 42 may be a numerically controlled oscillator (NCO) 47 which uses as its clock the time reference 23.
The baseband frequency signal is correlated by correlator block 44 to produce a partially encoded signal 45A.
In this example, the positioning circuitry 2 is a GPS receiver and the encoded data is encoded using a satellite specific chipping code but a common frequency band offset by a satellite specific Doppler shift.
The correlator block 44 may be implemented as described in relation to FIG. 3 or 6 of WO 2005/104392 A1 as a group correlator.
In one embodiment of a group correlator, a chipping code is shifted into a code shift register of size N at a rate of one bit per chip. Simultaneously, the baseband signal is shifted into a sample shift register of size N at a rate of one bit per chip. Every N chips the content of the code shift register is transferred to a code register. Every chip the N bits of the code register are cross correlated with the respective N bits of the sample shift register. The code registers may be cascaded in series so that at any one time each holds a different sequential N bit portion of the same chipping code. In this case, each of the cascaded code registers is cross-correlated with the sample shift register in each chip period.
In another embodiment of the group correlator, the chipping code is shifted into a code shift register of size N at a rate of several bits per chip. Simultaneously, the baseband signal is shifted into a sample shift register of size N at the same rate of several bit per chip.
The same process may occur for different chipping codes in parallel group correlators.
The code controller 46 controls the codes and code parts provided to the respective code shift registers. The code controller may be programmable so that different code formats may be used.
The correlator block 44 because it correlates a part of the chipping code of size N, against N sequential samples, has an effective sampling rate of N times the chipping rate and is therefore able to search an increased frequency bandwidth. In fact it is able to search the whole of the frequency bandwidth for each of the chipping codes in parallel. This enables the correlator block to identify for received encoded data the relevant chipping codes and estimates of their respective chipping code phases without having to first determine their respective frequencies.
The output from the correlator block 44, the partially encoded data 45A is decoded using frequency analysis and signal detection 50 using, for example, a Fast Fourier Transform or Discrete Fourier Transform. The frequency analysis and signal detection 50 identifies the frequencies wi of the communication channels which are returned to the frequency controller 42 where they may be used as a numeric input to the NCO.
The operation of the frequency analysis and signal detection block 50 is illustrated in more detail in
The partially encoded data d(t) 45A is converted to the frequency domain by multiplication, using multiplier 52, separately with each of exp(jwi t) for i=0, +1, −1, +2, −2, . . . +N, −N. The frequency wi is the central frequency of a frequency bin. The frequency bins may have the same fixed size W, in which case wi=wo+i*W.
s
i(t)=d(t)*exp(jwi t) for i=0, +1, −1, +2, −2, . . . +N, −N
The resultant signals si are each coherently integrated, in block 54, over a time Tc to create Si:
Each of the signals Si is then converted from a vector quantity I+jQ to a scalar quantity ri in block 56 where ri=I2+Q2. Several other methods of converting the vector quantity to scalar can be used, e.g. ri=sqrt(I2+Q2)
Previously, the resultant signals ri have been non-coherently integrated over a time Tnc to create Ri:
The coherent integration and the non-coherent integration increase the signal to noise ratio (SNR).
The longer the coherent integration time Tc the greater the sensitivity of the receiver 10. However, as the coherent integration time Tc is increased the width of the frequency bins W are decreased which increases the sensitivity of the receiver to clock changes such as drift. The coherent integration time Tc may be limited by an attribute of the signal 1 such as the bit length of BPSK encoded data in GPS which limits the coherent integration time to 20 ms at present.
The longer the non-coherent integration time Tnc the greater the sensitivity of the receiver. However, as the coherent integration time Tc is increased the size of the memory 17 required for storing Ri increases.
The inventors have developed an improved frequency analysis and detection block 50 and, in particular, improvements to the non-coherent integration process 58 and the use of the results in process 60.
Let us divide the non-coherent integration time Tnc into time epochs (periods) Xj. where j=0, 1, 2, 3 . . . M where M is any natural number and Xo=0.
Let
when j=1, −m1<i<+m1, where m1<N
when j=2, −m2<i<+m2, where m2>m1 and m2<N,
when j=3, −m3<i<+m3, where m3>m2 and m3<N,
The values of m, W and X may be chosen based up the maximum drift rate Z of the clock e.g. Z<(mj−mj−1)*W/Xj
Typically m2=m1+c and m3=m2+c, where c is a constant natural number such as 1, 2 . . .
In one embodiment, the time epochs Xj have the same size X for all j and c is 1. In this embodiment, Z<W/X.
It will therefore be appreciated that in the first time epoch X1 the non-coherent integration value Ri1 is stored in memory 17 only for each frequency bin in a first sub-set (−m1<i<+m1) of the total 2N+1 frequency bins. The set {Ri1: −m1<i<+m1} is stored as a first data structure 171 with each value Ri1 stored in its own data portion. The range of i defines a first frequency space 801.
In the second time epoch X2, the non-coherent integration value Ri2 is stored in memory 17 only for each frequency bin in a second sub-set (−m2<i<+m2) of the total 2N+1 frequency bins. The set {Ri2: −m2<i<+m2} is stored as a second data structure 172 with each value Ri2 stored in its own data portion. The range of i defines a second frequency space 802.
In the third time epoch X3 the non-coherent integration value Ri3 is stored in memory 17 only for each frequency bin in a second sub-set (−m3<i<+m3) of the total 2N+1 frequency bins. The set {Ri3: −m3<i<+m3} is stored as a third data structure 173 with each value Ri3 stored in its own data portion. The range of i defines a third frequency space 803.
Until, in a final time epoch XM the non-coherent integration value RiM is stored in memory 17 for each frequency bin of the total 2N+1 frequency bins. The set {RiM: −mM<i<+mM} is stored as a first data structure 17M with each value Ri1 stored in its own data portion. The range of i defines a first frequency space 80M. In the example illustrated in
In
It will therefore be appreciated that that non-coherent integration 58 is not performed over a large fixed number of frequency bins (fixed frequency space) for the whole period Tnc but the period Tnc advantageously is divided into a number of epochs and non-coherent integration is performed over an increasing number of frequency bins with subsequent epochs. The size of the frequency search space 80 therefore increases with subsequent epochs and, in the example of
The results of the non-coherent integration are then processed at block 60 to identify the strongest signal(s).
This processing, as illustrated in
The processing assumes a putative no-drift solution 90 and putative drift solutions 92, 94. In a putative no-drift solution 90, the final non-coherent integration value Ri is created by summing non-coherent integration values for each epoch that share the same frequency space (i.e. the same frequency bin wi). In a drift solution 92, 94, the final non-coherent integration value Ri is created by summing non-coherent integration values Rij for each, epoch that are from different frequency spaces j, where the frequency space may drift linearly with each passing epoch.
The size of the value Ri, for all drift and no-drift solutions, for all i, are compared and a large value, is indicative of a received signal and also the frequency wi for that signal. This frequency value can be used to program the NCO 47 in the frequency controller 42.
No Drift Solution 90
in the example of
R
i
=R
i1
+R
i2
+R
i3
+R
i4 for i=−2, −1, 0, 1, 2
Positive Drift Solution 92
in the example of
R
i
=R
i1
+R
i+1,2
+R
i+2,3
+R
i+3,4, for i=−2, −1, 0, 1, 2
Negative Drift Solution 94
in the example of
R
i
=R
i1
+R
i−1,2
+R
i−2,3
+R
i−3,4, for i=−2, −1, 0, 1, 2
Although embodiments of the present invention have been described in the preceding paragraphs with reference to various examples, it should be appreciated that modifications to the examples given can be made without departing from the scope of the invention as claimed. For example, in the examples presented above it has been assumed that c is greater than or equal to one. c may be less than one i.e. the drift may be less than two frequency bins (one positive, one negative) per epoch. For example, if the frequency drift rate is half that of the positive drift solution given above, Ri=Ri1+Ri2+Ri+1,3+Ri+1,4. For example, if the frequency drift rate is half that of the negative drift solution given above, Ri=Ri1+Ri2+Ri−1,3+Ri−1,4.
Whilst endeavoring in the foregoing specification to draw attention to those features of the invention believed to be of particular importance it should be understood that the Applicant claims protection in respect of any patentable feature or combination of features hereinbefore referred to and/or shown in the drawings whether or not particular emphasis has been placed thereon.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB2006/003862 | 9/8/2006 | WO | 00 | 10/1/2009 |