US20060013287A1 - Spread spectrum signal processing - Google Patents

Spread spectrum signal processing Download PDF

Info

Publication number
US20060013287A1
US20060013287A1 US10/531,132 US53113205A US2006013287A1 US 20060013287 A1 US20060013287 A1 US 20060013287A1 US 53113205 A US53113205 A US 53113205A US 2006013287 A1 US2006013287 A1 US 2006013287A1
Authority
US
United States
Prior art keywords
frequency
code
vector
phase
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US10/531,132
Inventor
Per-Ludvig Normark
Christian Stahlberg
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nordnav Technologies AB
Original Assignee
Nordnav Technologies AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nordnav Technologies AB filed Critical Nordnav Technologies AB
Assigned to NORDNAV TECHNOLOGIES AB reassignment NORDNAV TECHNOLOGIES AB ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NORMARK, PER-LUDVIG, STAHLBERG, CHRISTIAN
Publication of US20060013287A1 publication Critical patent/US20060013287A1/en
Priority to US11/864,342 priority Critical patent/US8422601B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/69Spread spectrum techniques
    • H04B1/707Spread spectrum techniques using direct sequence modulation
    • H04B1/7073Synchronisation aspects
    • H04B1/7085Synchronisation aspects using a code tracking loop, e.g. a delay-locked loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/69Spread spectrum techniques
    • H04B1/707Spread spectrum techniques using direct sequence modulation
    • H04B1/7073Synchronisation aspects
    • H04B1/7075Synchronisation aspects with code phase acquisition
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • G01S19/29Acquisition or tracking or demodulation of signals transmitted by the system carrier including Doppler, related
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • G01S19/30Acquisition or tracking or demodulation of signals transmitted by the system code related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B2201/00Indexing scheme relating to details of transmission systems not covered by a single group of H04B3/00 - H04B13/00
    • H04B2201/69Orthogonal indexing scheme relating to spread spectrum techniques in general
    • H04B2201/707Orthogonal indexing scheme relating to spread spectrum techniques in general relating to direct sequence modulation
    • H04B2201/70715Orthogonal indexing scheme relating to spread spectrum techniques in general relating to direct sequence modulation with application-specific features

Definitions

  • the present invention relates generally to processing of spread spectrum signals by means of vector based algorithms. More particularly the invention relates to a method of receiving spread spectrum signals according to the preamble of claim 1 and a signal receiver according to the preamble of claim 28 . The invention also relates to a computer program according to claim 26 and a computer readable medium according to claim 27 .
  • GNSS global navigation satellite systems
  • a navigation receiver adapted for one GNSS say the Global Positioning System (GPS; U.S. Government) is not able to receive signals from a satellite that belongs to a different GNSS, such as the Galileo system (the European programme for global navigation services) or the Global Orbiting Navigation Satellite System (GLONASS; Russian Federation Ministry of Defense).
  • GPS Global Positioning System
  • GLONASS Global Orbiting Navigation Satellite System
  • a multi-mode receiver In order to make this possible, a multi-mode receiver must be designed. However, including multiple receiver chains in a single device is not only expensive, it also renders the unit bulky and heavy, particularly if more than two signal formats are to be processed. Therefore, a programmable software receiver solution is desired whose signal processing principles may be altered according to which signals that shall be received and processed.
  • the patent document WO02/50561 is one example in which a GPS receiver tracking system for guiding missiles is described.
  • the receiving station here includes one or more processing stages for receiving and processing GPS data.
  • a control signal controls whether a quantity of processing stages should be increased or decreased in response to the result of a correlation operation.
  • the tracking and recovery of timing information is entirely performed in software.
  • the processing involves real-time calculation of relatively complex Fourier transforms, and therefore requires considerable processing resources.
  • a receiver of this type is not particularly suitable for small sized units, such cellular phones or portable GNSS-receivers.
  • TUPM 12.4 Software Solution of GPS Baseband Processing”, ULSI Laboratory, Mitsubishi Electric Corporation, IEEE, 1998 by Asai T., et al. outlines the principles for a software GPS receiver using an embedded microprocessor, which enables signals from up to eight satellites to be demodulated at around 40 MIPS (millions of/or Mega Instructions Per Second).
  • a 2 MHz GPS baseband signal is here fed to the software radio receiver, which performs spectrum despreading and mixing; synchronous demodulation, satellite acquisition and tracking; as well as phase compensation.
  • An algorithm is proposed through which the intermediate frequency (IF) signal is 1-bit sampled and where downconversion is performed before despreading. Resulting data in the form of 32 samples are continuously processed in parallel.
  • IF intermediate frequency
  • a DRAM Dynamic Random Access Memory
  • C/A Coarse Acquisition
  • Dovis, F. et al., “Design and Test-Bed Implementation of a Reconfigurable Receiver for Navigation Applications”, Electronics Department, Politecnico di Torino, Navigation Signal Analysis and Simulation Group, Spring of 2002 relates to the design of a reconfigurable GNSS receiver which is capable of fusing data from two or more different GNSS:s.
  • the document sketches an architecture which, in addition to a radio front-end, includes a Field Programmable Gate Array (FPGA) and a Digital Signal Processor (DSP).
  • FPGA Field Programmable Gate Array
  • DSP Digital Signal Processor
  • the object of the present invention is therefore to provide a solution for receiving and processing spread spectrum signals, which solves the problems above and thus to present a truly software adapted strategy that may be implemented in a physically small and power efficient device.
  • the object is achieved by a method of receiving spread spectrum signals as initially described, which is characterized by comprising a preparation for the correlation step, wherein the preparation takes place before the receiving the continuous signal.
  • This preparation involves pre-generating a multitude of code vectors, which each represents a particular code sequence of the at least one signal source specific code sequence.
  • the correlation step involves multiplying at least each vector in a sub-group of the code vectors with at least one vector, which is derived from the data word.
  • This strategy is advantageous because the proposed vector approach makes it possible for a digital processor (e.g. a micro-processor) to process multiple signal samples in parallel during each clock cycle and thus make very efficient use of the processor. Furthermore, by pre-generating the code vectors valuable processing capacity is saved, which in turn renders it possible to deal with a sufficient amount of input data per time unit in order to, for example track navigation signals that are transmitted by the satellites in a navigation satellite system.
  • a digital processor e.g. a micro-processor
  • each code vector represents a particular signal source specific code sequence, which is sampled at the basic sampling rate and quantised with the quantising process that is used to produce the level-discrete sample values.
  • the code vectors are also further adapted to the format of the incoming data signal in a way which renders the following processing efficient.
  • the at least one signal source specific code sequence represents so-called pseudo random noise.
  • This type of code sequences is beneficial in environments where two or more different signals are modulated onto the same carrier frequency.
  • the different pseudo random noise signals are orthogonal (or at least almost orthogonal) to each other. Consequently, a first information signal spread by means of a first pseudo random noise signal causes a minimal deterioration of a second information signal which is spread by means of a second pseudo random noise signal, and vice versa.
  • the receiving step involves down conversion of an incoming high-frequency signal to an intermediate frequency signal.
  • the high-frequency signal is presumed to have a spectrum which is symmetric around a first frequency and the intermediate frequency signal is presumed to have a spectrum which is symmetric around a second frequency, which is considerably lower than the first frequency.
  • the receiving step transforms the information carrying signal to a baseband which is technically more easy to handle than the band at which the original incoming signal is located.
  • the method includes the following steps. First, a maximum frequency variation of the second frequency due to Doppler-effects is determined. Then, a Doppler frequency interval around the second frequency is defined. The Doppler frequency interval has a lowest frequency limit equal to the difference between the second frequency and the maximum frequency variation, and a highest frequency limit equal to the sum of the second frequency and the maximum frequency variation. After that, the Doppler frequency interval is divided into an integer number of equidistant frequency steps, and subsequently a frequency candidate vector is defined for each frequency step. This way of dividing the spectrum is advantageous because it provides a flexible modeling of the intermediate carrier frequency and its variations.
  • an integer number of initial phase positions is determined for the frequency candidate vector.
  • the integer number thus represents a phase resolution, such that a relatively high number corresponds to a comparatively high phase resolution, whereas a relatively low number corresponds to a comparatively low phase resolution.
  • a carrier frequency-phase candidate vector is defined for each combination of carrier frequency candidate vector and initial phase position. The different frequency-phase candidate vectors are beneficial, since they allow the determination of a very accurate estimate of frequency- and phase characteristics of a received signal, which in turn vouches for a demodulated signal having a high quality.
  • the number of elements in each carrier frequency-phase candidate vector is determined.
  • the carrier frequency-phase candidate vectors are stored according to a data format, which is adapted to performing multiplication operations between the data word and a segment of a carrier frequency-phase candidate vector.
  • This adaptation is advantageous because thereby several signal samples may be processed in parallel by means of comparatively simple operators.
  • the adapting of the data format involves adding at least one element to each segment of the carrier frequency-phase candidate vector, such that the segment attains a number of elements which is equal to the number of elements in each of the at least one vector that is derived from the data word.
  • SIMD Single Instruction Multiple Data
  • the method also includes the following steps. First, a maximum variation of the code rate due to Doppler-effects is determined. Then, a Doppler rate interval is defined around a center code rate. The Doppler frequency interval has a lowest code rate limit equal to the difference between the center code rate and the maximum code rate variation, and a highest frequency limit equal to the sum of the center code rate and the maximum code rate variation. In analogy with the intermediate frequency spectrum, the Doppler rate interval is divided into an integer number of equidistant code rate steps, and a code rate candidate is defined for each code rate step. In further analogy with the intermediate frequency, an integer number of possible initial code phase positions is determined for each code rate candidate.
  • the integer number thus represents a code phase resolution, such that a relatively high number corresponds to a comparatively high code phase resolution, whereas a relatively low number corresponds to a comparatively low code phase resolution.
  • the spread spectrum code modulation is less sensitive to distortion caused by Doppler effects than the frequency modulation. Therefore, the code rate steps may be relatively large. However, a certain degree of Doppler shift estimation is desirable to attain a demodulated signal of high quality.
  • a set of code vectors is generated for each signal source specific code sequence by sampling each code rate-phase candidate vector with the basic sampling rate, and thus produce a corresponding code vector. Again, this simplifies a parallel processing of several signal samples by means of comparatively simple operators.
  • a modified code vector is generated on basis of each code vector by: copying a particular number of elements from the end of an original code vector to the beginning of the modified code vector, and copying the particular number of elements from the beginning of the original code vector to the end of the code vector.
  • a set of modified code vectors is stored for each signal source specific code sequence.
  • Each modified code vector here contains a number of elements, which represent a sampled version of at least one full code sequence.
  • the modified code vector also includes a repetition of the beginning and the end of the sequence.
  • a particular modified code vector is defined for each combination of code rate candidate and code phase position.
  • the data format of the modified code vectors is adapted with respect to the data format of the at least one vector that has been derived from the data word, such that a modified code vector and one of the at least one vector may be processed jointly by a SIMD-operation or an XOR-operation.
  • SIMD-operation or an XOR-operation.
  • the method involves an initial acquisition phase and a subsequent tracking phase.
  • the acquisition phase establishes a set of preliminary parameters which are required for initiating a decoding of signals that are received during the tracking phase.
  • the parameters may include: a modified code vector, a carrier frequency candidate vector an initial phase position, a code phase position and code index, which denotes a starting sample value for the modified code vector.
  • a successful acquisition phase thus results in that at least one signal source specific code sequence is identified and that this signal is possible to track by the receiver (i.e. may be continued to be received).
  • the tracking in turn, involves the following steps. First, based the tracking characteristics, a prompt pointer is calculated for each modified code vector.
  • the prompt pointer indicates a start position for the code sequence.
  • the initial prompt pointer value is set equal to the code index.
  • at least one pair of early- and late pointers is assigned around each prompt pointer.
  • the early pointer specifies a sample value which is positioned at least one element before the prompt pointer's position, and correspondingly, the late pointer specifies a sample value being positioned at least one element after the prompt pointer's position.
  • pointers are used to maintain the tracking of the received signal by a repeated repositioning of the pointers around a correlation maximum value, such that the prompt pointer is positioned as close as possible to this value, the early pointer is positioned in time somewhat prior to this value and the late pointer is positioned in time somewhat after this value.
  • An important advantage attained by this strategy is that one and the same vector may be re-used in order to represent different delays. Thus, valuable memory space and processing capacity is saved.
  • the tracking involves the following further steps.
  • a sequence of incoming level-discrete sample values is received.
  • data words are formed from the sample values, such that each data word contains a number of elements which is equal to the number of elements in each carrier frequency-phase candidate vector.
  • a relevant set of carrier frequency-phase candidate vectors is calculated for the data word, and a pre-generated in-phase representation respective a quadrature-phase representation of the vector is acquired for each carrier frequency-phase candidate vector in the relevant set.
  • each data word is on one hand multiplied with a in-phase representation of the carrier frequency-phase candidate vector in the relevant set to produce a first intermediate-frequency-reduced information word, and on the other hand multiplied with a quadrature-phase representation of the carrier frequency-phase candidate vector in the relevant set to produce a second intermediate-frequency-reduced information word.
  • the intermediate-frequency-reduced information-words thus constitute a respective component of the vectors mentioned above that have been derived from the incoming data words.
  • XOR- or SIMD-operations are used to perform the multiplication between the data word and the in-phase representation of the carrier frequency-phase candidate vector respective between the data word and the a quadrature-phase representation of the carrier frequency-phase candidate vector.
  • the tracking involves the further steps of: correlating the first intermediate-frequency-reduced information word with a modified code vector starting at a position indicated by the prompt pointer to produce a first prompt-despread symbol string, correlating the first intermediate-frequency-reduced information word with a modified code vector starting at a position indicated by the early pointer to produce a first early-despread symbol string, correlating the first intermediate-frequency-reduced information word with a modified code vector starting at a position indicated by the late pointer to produce a first late-despread symbol string, correlating the second intermediate-frequency-reduced information word with a modified code vector starting at a position indicated by the prompt pointer to produce a second prompt-despread symbol string, correlating the second intermediate-frequency-reduced information word with a modified code vector starting at a position indicated by the early pointer to produce a second early-despread symbol string, and correlating the second intermediate-frequency-reduced information word with a modified code vector
  • a resulting data word is then derived for each set of the despread symbol strings. This may, for example be performed either by performing the relevant adding operation, or by looking up a pre-generated value in a table based on the bit pattern of the despread symbol strings depending on whether the resulting data words contain packed or un-packed information. Data of high quality may thus be obtained with a minimum of real time calculations, which is advantageous from a processing point-of-view.
  • either XOR- or SIMD-operations are used also to perform the multiplication between the intermediate-frequency-reduced information words and the modified code vectors, since again, this is advantageous from a processing point-of-view.
  • certain pieces of information are propagated in connection with completing the processing of a current data word and initiating the processing of a subsequent data word.
  • this propagated information includes: a pointer which indicates a first sample value of the following-data word, a group of parameters that describe the relevant set of carrier frequency-phase candidate vectors, the relevant set of code vectors, and the prompt-, early-, and late pointers.
  • the subsequent data word may be processed immediately.
  • the object is achieved by a computer program directly loadable into the internal memory of a computer, comprising software for performing the above proposed method when said program is run on a computer.
  • the object is achieved by a computer readable medium, having a program recorded thereon, where the program is to make a computer perform the above proposed method.
  • the object is achieved by the signal receiver as initially described, which is characterized in that the proposed computer program is loaded into the memory means, such that the receiver will operate according to the above-described method.
  • the invention offers an excellent instrument for receiving and decoding any type of spread spectrum signals in a general software radio receiver.
  • one and the same receiver may be used to track navigation satellite signals of different formats. These signals may even be received in parallel, such that a first signal is received on a first format while one or more other signals are received on a second or third format.
  • the proposed solution permits one and the same receiver to be utilized for completely different purposes, such as communication in a cellular system.
  • FIG. 1 shows a spectrum graph over an exemplary spread spectrum signal from which information may be extracted according to the invention
  • FIG. 2 shows a spectrum graph over a frequency down-converted signal corresponding to the spectrum shown in FIG. 1 ,
  • FIG. 3 is an enlarged version of FIG. 2 in which a Doppler shifting of the spectrum is illustrated
  • FIG. 4 illustrates how a data signal is modulated onto a signal source specific code sequence according to an embodiment of the invention
  • FIG. 5 depicts a three-dimensional graph over carrier frequency-phase candidate vectors to be used as initial correlators according to an embodiment of the invention
  • FIG. 6 shows an alternative representation the carrier frequency-phase candidate Vectors in FIG. 5 .
  • FIGS. 7-8 show graphs which illustrate how a code index and a code phase are defined for a received signal according to an embodiment of the invention
  • FIGS. 9 a,b illustrate how a modified code vector is generated based on an original code vector according to an embodiment of the invention
  • FIG. 10 depicts a three-dimensional graph over code rate-phase candidate vectors to be used as subsequent correlators according to an embodiment of the invention
  • FIG. 11 illustrates how a set of code sequence start pointers is assigned to a modified code vector according to an embodiment of the invention
  • FIG. 12 illustrates how data words are formed from a sequence of incoming level-discrete sample values according to an embodiment of the invention
  • FIG. 13 illustrates how the data words of FIG. 12 are correlated with various pre-generated vectors according to an embodiment of the invention
  • FIG. 14 illustrates how multiple pairs of pointers may be assigned according to an embodiment of the invention
  • FIG. 15 shows a proposed signal receiver
  • FIG. 16 illustrates, by means of a flow diagram, the general method of processing spread spectrum signals according to the invention.
  • the architecture of the microprocessor system must be utilized very efficiently.
  • the present invention uses an approach, which involves a form of parallel processing based on pre-generated code vector representations. The invention thereby strikes a balance between processing speed and memory usage, which compensates for the capacity deficit of a general purpose microprocessor in relation to an ASIC. The details of this solution will become apparent from the below disclosure.
  • FIG. 1 shows a spectrum graph over an exemplary spread spectrum signal from which information may be extracted according to the invention.
  • the signal may be a GPS C/A-signal in the L1-band with a carrier frequency f HF of 1,57542 GHz.
  • the signal's spectrum is symmetrical around the carrier frequency f HF .
  • the signal has at least 98% of its energy distributed within a 2 MHz wide frequency band BW HF around the carrier frequency f HF . Therefore, it is generally sufficient if the spread spectrum signal is downconverted to an intermediate frequency f IF at around 1 MHz in order to enable further signal processing at a lower frequency.
  • f IF an intermediate frequency
  • the entire spectrum may be shifted within an interval 2 f D , such that the center frequency falls any where between f IF +f D (corresponding to a maximum positive Doppler shift) and f IF ⁇ f D (corresponding to a maximum negative Doppler shift).
  • the interval 2 f D has been severely exaggerated in the FIG. 2 .
  • the figure also indicates a phase variation interval ⁇ D (along an independent axis ⁇ ) around the intermediate frequency f IF .
  • the phase variation interval ⁇ D demonstrates the fact that the phase position of the received signal is initially unknown to the receiver, and thus constitutes a calibration parameter. The effects of this parameter will be further elucidated below with reference to FIG. 5 .
  • FIG. 3 An enlarged version of the spectrum in FIG. 2 is shown in FIG. 3 .
  • the potential maximum shifted spectra are here indicated with a respective dashed line.
  • the diagram in FIG. 3 also shows a Nyquist frequency r s /2 corresponding to a minimal sampling rate r s which, when used for sampling the intermediate frequency signal, will result in a non-aliased discrete spectrum.
  • f D 10 kHz
  • f IF 1.25 MHz
  • BW HF 2 MHz
  • the intermediate frequency signal is lowpass filtered through an analog filter having a 2.5 MHz wide passband
  • the minimal sampling rate rs becomes 5 MHz (i.e. two times the highest frequency component after the analog filter).
  • FIG. 4 illustrates schematically how a data signal D is modulated onto a signal source specific code sequence CS on the transmitter side according to an embodiment of the invention.
  • the signal source specific code sequence CS constitutes so-called pseudo random noise.
  • the data signal D here contains a data symbol sequence [+1, ⁇ 1, ⁇ 1, +1, ⁇ 1], and has a relatively low symbol rate, say 50 Hz.
  • the signal source specific code sequence CS has a relatively high symbol rate (or more correctly chipping rate).
  • a signal source specific code sequence CS in the form of a GPS C/A code may have a chipping rate of 1,023 MHz and contain 1023 chips per period. Each chip, ch, is either +1 or ⁇ 1.
  • the CIA code repeats itself one per ms.
  • the data signal D is modulated onto (or spread by) the signal source specific code sequence CS by multiplying each data symbol with the code sequence CS.
  • the data symbol +1 thereby results in an unaltered code sequence CS, whereas the data symbol ⁇ 1 results in an inverted code sequence CS.
  • a data signal D having a rate of 50 Hz is spread by means of a signal source specific code sequence CS having a chipping rate of 1,023 MHz, this results in 20 entire code sequences CS per data symbol. Namely, the period time for one data symbol is 20 ms, whereas the period time for the code sequence is only 1 ms.
  • FIG. 5 depicts a three-dimensional graph over different carrier frequency-phase candidate vectors.
  • the intermediate frequency spectrum may be Doppler shifted. Therefore, the particular frequency of the received signal is initially unknown within a Doppler frequency interval from f IF-min to f IF-max . Moreover, the phase position of the received signal is beforehand unknown to the receiver.
  • the Doppler frequency interval f IF-min ⁇ f IF-max is divided into an integer number of equidistant frequency steps. Of course, the larger the number of steps is, the more accurately the intermediate carrier frequency may be estimated. In this example, a step size ⁇ f of 20 Hz is chosen.
  • a Doppler frequency interval f IF-min ⁇ f IF-max of 20 kHz and a step size ⁇ f of 20 Hz requires 1000 steps, where a first step includes the frequencies from f IF-min to f IF-min + ⁇ f, a second step includes the frequencies from f IF-min + ⁇ f to f IF-min +2 ⁇ f, and so on up to a last step including the frequencies from f IF-min +999 ⁇ f to f IF-max .
  • a frequency candidate vector f IF-C is defined for each frequency step.
  • an integer number of initial phase positions ( ⁇ 0 , . . . ⁇ 7 are determined.
  • the illustrated example shows eight such positions ⁇ C . This gives a phase resolution of ⁇ /4.
  • For each frequency candidate vector f IF-C eight different phase positions ⁇ 0 , . . . , ⁇ 7 are thus defined which each represents a particular phase shift from 0 to 7 ⁇ /4.
  • a combination of a certain carrier frequency candidate vector f IF-C and a particular initial phase position ⁇ C is referred to as a carrier frequency-phase candidate vector.
  • FIG. 5 includes an axis L C along which the number of sample values (or length) of the frequency candidate vector f IF-C is indicated.
  • the L C number is preferably a power of 2 because this generally renders the implementation more simple.
  • FIG. 6 shows an alternative representation the carrier frequency-phase candidate vectors V f ⁇ (f IF-C , ⁇ C ) in FIG. 5 .
  • the vectors are stored in a digital memory with a comparatively short access time, such that they may be readily accessed during a later acquisition and/or tracking phase.
  • the carrier frequency-phase candidate vectors V f ⁇ (f IF-C , ⁇ C ) are stored according to a data format which is adapted to performing multiplication operations between incoming data words (representing one or more received signals) and segments of carrier frequency-phase candidate vectors V f ⁇ (f IF-C , ⁇ C ).
  • the vectors may either include packed samples or they may contain samples that are unpacked to a smallest manageable unit in the microprocessor, such as a byte. Further details regarding the data format issues will be discussed below.
  • FIG. 7 shows a graph over an exemplary code sequence CS, which has been received, downconverted and sampled according to an embodiment of the invention.
  • the code sequence CS After subsequent removal of the intermediate frequency component, the code sequence CS either attains the signal value +1 or ⁇ 1, and the symbols are altered at a chipping rate of for example 1,023 MHz.
  • the code sequence CS is sampled with a sampling rate rs of for example 5 MHz.
  • the sampling instances are indicated by means of dots on the code sequence signal CS along an axis s i . As is apparent from the figure there are approximately four sample values per chip period. Hence, the requirements of the Nyquist theorem are clearly fulfilled.
  • the samples are not capable of determining the transition instances with a sufficient accuracy, i.e. where the code sequence signal CS changes from representing one chip symbol to representing another one chip symbol. Therefore, a so-called code phase must be determined. Moreover, a particular sample value at which the code sequence starts must also be established.
  • FIG. 8 shows a graph, which illustrates the sample value at which the code sequence CS starts (the so-called code index Cl) and how a code phase, Cph, is defined in relation to this sample value.
  • An initial segment of the code sequence signal CS in FIG. 7 is therefore represented in FIG. 8 .
  • a first sample instance is here presumed to occur shortly prior to the actual start of the code sequence CS signal period.
  • a corresponding sample value s 1 belongs to the end of the preceding period. This is illustrated by means of the line representing the code sequence signal CS being dashed.
  • a subsequent sample instance overlaps the code sequence CS period.
  • the corresponding sample value s 2 is defined as the code index CI.
  • the actual beginning of a code sequence signal is determined in a preceding acquisition phase and typically involves correlation between the received signal and a local copy of the code sequence CS.
  • the distance between the start of the code sequence signal CS and the code index CI is defined as the code phase Cph, and thus represents a measure of the translation (or skew) between the sample instances s i and the chip transitions.
  • the sampling interval between two consecutive sample instances s i is divided into an integer number of possible initial code phase positions in order to estimate the code phase Cph.
  • ten 0.1-steps ranging from 0.0 to 0.9 are defined, where a first step 0.0 would indicate that code sequence signal CS starts at the code index CI, and a last step 0.9 would indicate that code sequence signal CS starts almost at the preceding sample value s 1 .
  • the FIG. 8 shows a code phase Cph of 0.4, i.e. a situation where the code sequence signal CS starts approximately in the middle between two consecutive sample instances s i .
  • code rate-phase candidate vectors may now be defined for each signal source specific code sequence CS and combination of code rate CR, code index CI and code phase Cph. Nevertheless, according to a preferred embodiment of the invention, a modified code vector is first produced based on each original code vector.
  • FIGS. 9 a and 9 b illustrate how this may be performed.
  • a code vector CV in FIG. 9 a contains a number of sample values, say 5000.
  • the number of sample values is selected in relation to sampling rate such that a full code sequence period is recorded.
  • a modified code vector CV m is now generated on basis of the original code vector CV by copying a particular number of elements E e (e.g. two) from the end of the original code vector CV to the beginning of the modified code vector CV m .
  • a particular number of elements E b e.g. two
  • FIG. 9 b shows the resulting modified code vector CV m . Since, in this example, each chip symbol is sampled at approximately four instances, two sample values are equivalent to about one half chip period.
  • the above copying of the elements E e and E b allows a one-half-chip shifting of the code vector CV during a correlation operation between the code vector CV and the received data. This will be discussed further below with reference to FIG. 11 .
  • FIG. 10 depicts a three-dimensional graph over different code rate-phase candidate vectors CV m (CR C-C , Cph) which represent a signal source specific code sequence CS(i).
  • the nominal code rate CR C for the code rate candidate vector CR C-C may also vary due to Doppler effects from a lowest value CR min to a highest value CR max .
  • the code rate or chipping rate
  • the rate variation here becomes rather small.
  • a Doppler shift of 10 kHz at the intermediate carrier frequency is equivalent to a shift in a nominal code rate CR C at 1,023 MHz of merely 6.5 Hz.
  • the Doppler rate interval CR min ⁇ CR max is divided into an integer number of equidistant code rate steps ⁇ CR, say 13.
  • each interval CR min , CR min + ⁇ CR, . . . , CR max thus spans 1 Hz.
  • the code rate step size is adaptive, e.g. determined on basis of the sampling frequency and the desired resolution.
  • the code rate-phase candidate vectors CV m (CR C-C , Cph) are stored in a digital memory with a comparatively short access time, such that they may be readily accessed during the acquisition and/or tracking phase.
  • the code rate-phase candidate vectors CV m (CR C-C , Cph) are stored according to a data format which is adapted to correlation operations to be performed between a vector that has been derived from incoming data words and a segment of a the code rate-phase candidate vectors CV m (CR C-C , Cph).
  • the code rate-phase candidate vectors CV m may include packed samples or they may contain samples that are unpacked to a smallest manageable unit in the microprocessor, such as a byte. Further details regarding these data format issues will be discussed below with reference to FIG. 13 .
  • the tracking phase is preceded by a so-called acquisition phase during which a set of preliminary parameters are established that are required for initiating the signal decoding.
  • acquisition phase thus results in that at least one signal source specific code sequence is identified and a data signal transmitted by means of this sequence is possible to demodulate.
  • the tracking characteristics that may be associated with a signal source specific code sequence include: a modified code vector CV m (which defines a carrier frequency candidate vector f IF-C and an initial phase position ⁇ C ), a code phase position, Cph, and a code index, Cl.
  • CV m which defines a carrier frequency candidate vector f IF-C and an initial phase position ⁇ C
  • code phase position Cph
  • code index, Cl a code index
  • FIG. 11 illustrates one such set of pointers that are assigned to a modified code vector CV m .
  • a prompt pointer P P indicates a current estimate of the code sequence start position. This pointer P P is initially set equal to the code index CI. Adequate P P -pointer positions for any subsequent segments of the received data are obtained by retrieving appropriate modified code vectors CV m from the digital memory where such pre-generated are stored. Between each segment, the code rate candidate vector CR C-C as well as the initial code phase Cph is updated.
  • At least one pair of early- and late pointers P E and P L respectively is assigned on each side of the prompt pointer P P , where the early pointer P E specifies a sample value being positioned at least one element before the prompt pointer's P P position, and the late pointer P L specifies a sample value being positioned at least one element after the prompt pointer's P P position.
  • Each correlation is then performed with the presumption that the code sequence starts at the P P -position, at the P E -position as well as at the P L -position. If the correlation over the P P -position results in a higher correlation value than over any of the other positions, and at the same time the P E - and P L -pointers are balanced (i.e.
  • the potentially highest correlation value (corresponding to the optimal P P -positioning) lies somewhere between the current P P -position and the current P E -position or between the current P P -position and the current P L -position depending on which of the P E - and P L -pointer positions that results in the highest correlation value.
  • a pointer updating normally takes place between each segment.
  • a second or third pair of P E - and P L -pointers outside the first pair of pointers further enhances the possibilities of accomplishing an accurate adjustment of the tracking.
  • an optimal setting P P -pointer may, in fact, also be equivalent to the correlation over the P P -position resulting in a lower correlation value than over any of the other pointer positions. Namely, this is true if a negative valued data bit is received. However otherwise, the same principles apply.
  • the P P -, P E - and P L -pointers may only be positioned within certain intervals in the modified code vector CV m .
  • the P P -pointer may be set anywhere within a first interval 111 , the P E -pointer within a second interval 112 and the P L -pointer within a third interval 113 . All the pointers are always set together, such that their relative distances remain unchanged.
  • a limit value P L-min for the P L -pointer typically coincides with the first element of the modified code vector CV m . Namely, outside this range a meaningful correlation cannot be performed.
  • a corresponding limit value P E-min for the P E -pointer is also defined.
  • FIG. 12 illustrates how data words d( 1 ), d( 2 ), . . . , d(N) are formed from a sequence 1210 of incoming level-discrete sample values according to an embodiment of the invention.
  • the data words d( 1 ), . . . , d(N) are formed such that each data word d(k) contains a number of elements which is equal to the number of elements s n in each carrier frequency-phase candidate vector.
  • the length of these vectors may be 512 sample values (as in the example described above with reference to the FIGS. 5 and 6 ).
  • each sequence 1210 contains 5000 sample values
  • the elements in a current data word d(k) are processed jointly (i.e. in parallel). Then, the processing of a subsequent data word d(k+1) is initiated, and any processing parameters obtained during the processing of the current data word d(k) that are required when processing the subsequent data word d(k+1) are propagated as input data to the processing of the latter.
  • These processing parameters preferably include: a pointer P d which indicates a first sample value of the subsequent data word d(k+1), a group of parameters which describe the relevant set of carrier frequency-phase candidate vectors V f ⁇ (f IF-C , ⁇ C ) (i.e. a carrier frequency candidate vector f IF-C representing an in-phase version and a carrier frequency candidate vector f IF-C representing a quadrature-phase version), the relevant set of code vectors CV m , and prompt-, early-, and late pointers P P , P E , and P L respectively.
  • FIG. 13 illustrates how the data words of FIG. 12 are correlated with various pre-generated vectors according to an embodiment of the invention.
  • a relevant set of carrier frequency-phase candidate vectors V f ⁇ (f IF-C , ⁇ C ) is calculated for the data word d(k). This set is normally obtained in a preceding acquisition phase (or, if the data word d(k) is not the first word to be processed, during the processing of a previous word).
  • a pre-generated in-phase representation f IFI and a quadrature-phase representation f IFQ of the vector (V f ⁇ (f IF-C , ⁇ C )) respectively is acquired. Both these representations are found in the digital memory where the pre-generated carrier frequency-phase candidate vectors V f ⁇ (f IF-C , ⁇ C ) are stored because they are merely one quarter period delays of one and the same vector, and the memory holds initial phase position representations for an entire period, see FIG. 6 .
  • the data word d(k) is multiplied with the in-phase representation f IFI of the carrier frequency-phase candidate vector V f ⁇ (f IF-C , ⁇ C ) in the relevant set.
  • a first intermediate-frequency-reduced information word S IF-I (k) is produced.
  • the data word d(k) is also multiplied with the quadrature-phase representation f IFQ of the carrier frequency-phase candidate vector V f ⁇ (f IF-C , ⁇ C ) in the relevant set, and a second intermediate-frequency-reduced information word S IF-Q (k) is produced.
  • the multiplication between the data word d(k) and the in-phase representation f IFI respective the quadrature-phase representation f IFQ of the carrier frequency-phase candidate vector V f ⁇ (f IF-C , ⁇ C ) are performed by means of XOR- or SIMD-operations (i.e. 1-bit and multiple-bits multiplications respectively). This is namely possible if the data word d(k) and the vector V f ⁇ (f IF-C , ⁇ C ) have compatible data formats.
  • the first intermediate-frequency-reduced information word S IF-I (k) is multiplied with a modified code vector CV m-p , which has been retrieved from the digital memory where these pre-generated vectors are stored, and starts at a position indicated by the prompt pointer P P .
  • a first prompt-despread symbol string ⁇ IP (k) is produced as a result of this operation.
  • the first intermediate-frequency-reduced information word S IF-I (k) is also multiplied with a modified code vector CV m-E (k), which starts at a position indicated by the early pointer P E .
  • a first early-despread symbol string ⁇ IE (k) is produced as a result of this operation.
  • the first intermediate-frequency-reduced information word S IF-I (k) is likewise multiplied with a modified code vector CV m-L (k), which starts at a position indicated by the late pointer P L , and a first late-despread symbol string AIL(k) is produced.
  • the second intermediate-frequency-reduced information word S IF-Q (k) is multiplied with a modified code vector CV m-P (k), which starts at a position indicated by the prompt pointer P P , and a second prompt-despread symbol string ⁇ QP (k) is produced.
  • the second intermediate-frequency-reduced information word S IF-Q (k) is multiplied with a modified code vector CV m-E (k), which starts at a position indicated by the early pointer P E , and a second early-despread symbol string ⁇ QE (k) is produced.
  • the second intermediate-frequency-reduced information word S IF-Q (k) is multiplied with a modified code vector CV m-L (k), which starts at a position indicated by the late pointer P L , and a second late-despread symbol string ⁇ QL (k) is produced.
  • D R-IE a resulting data word
  • D R-IP k
  • D R-IL k
  • D R-QE k
  • D R-QP k
  • D R-QL k
  • D R-IP k
  • D R-IL k
  • D R-QE k
  • D R-QP k
  • D R-QL k
  • the processor may simply perform the relevant adding operation to obtain the resulting data word D R (k).
  • the resulting data word D R (k) is, according to a preferred embodiment of the invention, derived by looking up a pre-generated value in a table 1310 based on the bit pattern given by the respective despread symbol string ⁇ IP (k), ⁇ IE (k), ⁇ IL (k), ⁇ QP (k), ⁇ QE (k) and ⁇ QL (k).
  • corresponding accumulated data words are produced, such that after having generated a data word D R (k), the sum of all data words D R (k) to D R (k) is also obtained.
  • the data word d(N) has been processed, the resulting sum D R ( 1 ) to D R (N) is also at hand.
  • the resulting data words represent payload information. For instance, based on the set of resulting data words D R-IE (k), D R-IP (k), D R-IL (k), D R-QE (k), D R-QP (k) and D R-QL (k) a demodulated piece of information of a transmitted data symbol sequence D as shown in FIG. 4 may be derived. In a steady state operation, basically only one of the resulting data words; say D R-IP (k), actually carries the information.
  • the multiplications involved in the multiplications between the intermediate-frequency-reduced information words S IF-I (k) and S IF-Q (k) respectively and the modified code vectors CV m-P (k), CV m-E (k); CV m-L (k) are all performed by means of XOR- or SIMD-operations. This is possible if the intermediate frequency information words S IF-I (k); S IF-Q (k) and the modified code vectors CV m-E (k), CV m-P (k); CV m-L (k) have compatible data formats.
  • FIG. 14 illustrates how two pairs of such pointers P E1 ; P L1 and P E2 ; P L2 respectively are assigned around a prompt pointer P P according to an embodiment of the invention.
  • the horizontal axis here represents a code shift CS and the vertical axis shows a normalised correlation factor.
  • An optimal positioning of the prompt pointer P P is thus equivalent to a normalised correlation value of 1. The more the sampled data is shifted in either direction from this position, the lower the correlation value becomes down to substantially zero for a shift of one chip or more.
  • the algorithm is perfectly balanced when (as illustrated in the figure) both the pointers P E1 and P L1 of a first pair produce a first shifted correlation result, both the pointers P E2 and P L2 of a second pair produce a second shifted correlation result, the first shifted correlation result is larger than the second shifted correlation result and both the first and the second shifted correlation results are smaller than the correlation result obtained at the prompt position P P .
  • Said correlation results are preferably generated according to a process corresponding to what has been described above with reference to FIG. 13 .
  • FIG. 15 shows a signal receiver 1500 for receiving navigation data signals transmitted in a navigation satellite system according to an embodiment of the invention.
  • the receiver 1500 includes radio front end unit 1510 , an interface unit 1520 and a digital processor unit 1530 .
  • the radio front end unit 1510 is adapted to receive a continuous radio signal S HF , and in response thereto produce a corresponding electrical signal S IF which has a comparatively high frequency.
  • the interface unit 1520 is adapted to receive the electrical signal S IF , and in response thereto, produce a sequence of sample values that represents the same information as the electrical signal S IF and is divided into data words d(k).
  • the digital processor unit 1530 is adapted to receive the data words d(k), and in response thereto, demodulate a data signal.
  • the digital processor unit 1530 includes a memory means 1535 , which is loaded with a computer program that is capable of controlling the steps of the proposed procedure when the program is run in the processor unit 1530 .
  • a preparation step 1600 pre-generates code vectors which each represents a signal source specific code sequence that is intended to be received (or at least possible to receive) and demodulated in the receiver.
  • the step 1600 is performed before the signal reception is initiated.
  • a step 1610 then receives a continuous signal of a comparatively high frequency.
  • a following step 1620 samples the continuous signal at a basic sampling rate, whereby a resulting sequence of time discrete signal samples is produced.
  • Each sample is also quantised (either with a relatively low-resolution, such as with 1 bit per sample value, or with a relatively high resolution depending on the application and the number of data bits per samples delivered from the radio front end unit 1510 ), such that a corresponding level-discrete sample value is obtained.
  • a step 1630 forms data words from the sample values, where each data word includes one or more consecutive sample values.
  • a step 1640 carries out correlation operations between the information in the data words and at least one of the pre-generated representations of a signal source specific code sequence.
  • the correlation step involves correlating at least each vector in a sub-group of the code vectors with at least one vector that has been derived from a data word.
  • a following step 1650 produces data as a result of the correlation performed in step 1640 .
  • a step 1660 investigates whether the sampled sequence has ended, i.e. whether there are any more data words to process. If more sampled data to process is found, the procedure returns to the step 1640 . Otherwise, the procedure loops back to the step 1610 again for continued reception of the incoming signal. Naturally, such signal is preferably also received during execution of the steps 1620 to 1660 .
  • the sequential procedure illustrated in FIG. 16 is merely applicable to a specific received signal segment. Preferably, all the steps are actually 1610 to 1660 are actually performed in parallel.
  • the process steps, as well as any sub-sequence of steps, described with reference to the FIG. 16 above may be controlled by means of a programmed computer apparatus, such as a microprocessor located in a GNSS-receiver.
  • a programmed computer apparatus such as a microprocessor located in a GNSS-receiver.
  • the embodiments of the invention described above with reference to the drawings comprise computer apparatus and processes performed in computer apparatus, the invention thus also extends to computer programs, particularly computer programs on or in a carrier, adapted for putting the invention into practice.
  • the program may be in the form of source code, object code, a code intermediate source and object code such as in partially compiled form, or in any other form suitable for use in the implementation of the process according to the invention.
  • the carrier may be any entity or device capable of carrying the program.
  • the carrier may comprise a storage medium, such as a ROM (Read Only Memory), for example a CD (Compact Disc) or a semiconductor ROM, or a magnetic recording medium, for example a floppy disc or hard disc.
  • the carrier may be a transmissible carrier such as an electrical or optical signal which may be conveyed via electrical or optical cable or by radio or by other means.
  • the carrier may be constituted by such cable or device or means.
  • the carrier may be an integrated circuit in which the program is embedded, the integrated circuit being adapted for performing, or for use in the performance of, the relevant processes.

Abstract

The present invention relates to processing of spread spectrum signals, where a continuous signal of a comparatively high frequency is received. This signal is sampled at a basic sampling rate whereby a resulting sequence of time discrete signal samples is produced, which are in turn quantized into a corresponding level-discrete sample value. A plurality of data words are formed, which each includes one or more consecutive sample values. Information obtained from these data words is correlated with at least one representation of a signal source specific code sequence, which has been pre-generated in the form of a code vector. The correlation step specifically involves correlating at least each vector in a sub-group of the code vectors with at least one vector that has been derived from the data word. Thereby resulting data is produced.

Description

    THE BACKGROUND OF THE INVENTION AND PRIOR ART
  • The present invention relates generally to processing of spread spectrum signals by means of vector based algorithms. More particularly the invention relates to a method of receiving spread spectrum signals according to the preamble of claim 1 and a signal receiver according to the preamble of claim 28. The invention also relates to a computer program according to claim 26 and a computer readable medium according to claim 27.
  • Spread spectrum technology is becoming increasingly important in many areas, of which cellular communication systems and global navigation satellite systems (GNSS) represent two important examples. Moreover, the large variety of transmission standards creates a demand for hybrid- or general-purpose receivers. For instance, both the cellular standards cdma2000 and WCDMA involve transmission of spread spectrum signals. However, due to differences in the air interfaces one and the same terminal cannot be used in the two systems. Instead, a dedicated terminal must be employed in each system. Alternatively, a dual mode terminal must be designed, which includes two separate transceiver chains. Correspondingly, a navigation receiver adapted for one GNSS, say the Global Positioning System (GPS; U.S. Government), is not able to receive signals from a satellite that belongs to a different GNSS, such as the Galileo system (the European programme for global navigation services) or the Global Orbiting Navigation Satellite System (GLONASS; Russian Federation Ministry of Defense).
  • In order to make this possible, a multi-mode receiver must be designed. However, including multiple receiver chains in a single device is not only expensive, it also renders the unit bulky and heavy, particularly if more than two signal formats are to be processed. Therefore, a programmable software receiver solution is desired whose signal processing principles may be altered according to which signals that shall be received and processed.
  • Various software solutions are already known for processing GNSS signals. The patent document WO02/50561 is one example in which a GPS receiver tracking system for guiding missiles is described. The receiving station here includes one or more processing stages for receiving and processing GPS data. A control signal controls whether a quantity of processing stages should be increased or decreased in response to the result of a correlation operation. The tracking and recovery of timing information is entirely performed in software. However, the processing involves real-time calculation of relatively complex Fourier transforms, and therefore requires considerable processing resources. Thus, a receiver of this type is not particularly suitable for small sized units, such cellular phones or portable GNSS-receivers.
  • The article “TUPM 12.4: Software Solution of GPS Baseband Processing”, ULSI Laboratory, Mitsubishi Electric Corporation, IEEE, 1998 by Asai T., et al. outlines the principles for a software GPS receiver using an embedded microprocessor, which enables signals from up to eight satellites to be demodulated at around 40 MIPS (millions of/or Mega Instructions Per Second). A 2 MHz GPS baseband signal is here fed to the software radio receiver, which performs spectrum despreading and mixing; synchronous demodulation, satellite acquisition and tracking; as well as phase compensation. An algorithm is proposed through which the intermediate frequency (IF) signal is 1-bit sampled and where downconversion is performed before despreading. Resulting data in the form of 32 samples are continuously processed in parallel. A DRAM (Dynamic Random Access Memory) stores a particular C/A (Coarse Acquisition) code table for each satellite from which signals are received. All other data and instructions are stored in a cache memory in order to accomplish a high-speed processing. Although this strategy is declared to result in a reasonably efficient implementation, the document lacks a specific description as to how the dispreading and the correlation should be effected in order to, in fact, obtain this effect.
  • Akos. D. et al., “Tuning In to GPS—Real-Time Software Radio Architectures for GPS Receivers”, GPS World, July 2001 describes a receiver architecture through which IF signal samples are fed directly from a radio front-end to a programmable processor for continued processing. The article mentions the possibility of using single instruction multiple data (SIMD) instructions to process multiple data samples in parallel. However, portability- and flexibility problems are recognized, and again, there is no teaching as to how an efficient parallel processing could actually be accomplished.
  • Dovis, F. et al., “Design and Test-Bed Implementation of a Reconfigurable Receiver for Navigation Applications”, Electronics Department, Politecnico di Torino, Navigation Signal Analysis and Simulation Group, Spring of 2002 relates to the design of a reconfigurable GNSS receiver which is capable of fusing data from two or more different GNSS:s. The document sketches an architecture which, in addition to a radio front-end, includes a Field Programmable Gate Array (FPGA) and a Digital Signal Processor (DSP). The authors address various computational load issues. However, they do not present an algorithm which fulfills the identified requirements.
  • Hence, the prior art includes a number of examples of software-based GNSS-receivers. Nevertheless, there is yet no distinct teaching of a highly efficient solution which is suitable for implementation in software and has capabilities that are at least in par with those of today's ASIC-based solutions for receiving and processing spread spectrum signals in real-time (ASIC=Application Specific Integrated Circuit).
  • SUMMARY OF THE INVENTION
  • The object of the present invention is therefore to provide a solution for receiving and processing spread spectrum signals, which solves the problems above and thus to present a truly software adapted strategy that may be implemented in a physically small and power efficient device.
  • According to one aspect of the invention the object is achieved by a method of receiving spread spectrum signals as initially described, which is characterized by comprising a preparation for the correlation step, wherein the preparation takes place before the receiving the continuous signal. This preparation involves pre-generating a multitude of code vectors, which each represents a particular code sequence of the at least one signal source specific code sequence. Moreover, according to the invention, the correlation step involves multiplying at least each vector in a sub-group of the code vectors with at least one vector, which is derived from the data word.
  • This strategy is advantageous because the proposed vector approach makes it possible for a digital processor (e.g. a micro-processor) to process multiple signal samples in parallel during each clock cycle and thus make very efficient use of the processor. Furthermore, by pre-generating the code vectors valuable processing capacity is saved, which in turn renders it possible to deal with a sufficient amount of input data per time unit in order to, for example track navigation signals that are transmitted by the satellites in a navigation satellite system.
  • According to a preferred embodiment of this aspect of the invention, each code vector represents a particular signal source specific code sequence, which is sampled at the basic sampling rate and quantised with the quantising process that is used to produce the level-discrete sample values. Preferably, the code vectors are also further adapted to the format of the incoming data signal in a way which renders the following processing efficient.
  • According to another preferred embodiment of this aspect of the invention, the at least one signal source specific code sequence represents so-called pseudo random noise. This type of code sequences is beneficial in environments where two or more different signals are modulated onto the same carrier frequency. Namely, the different pseudo random noise signals are orthogonal (or at least almost orthogonal) to each other. Consequently, a first information signal spread by means of a first pseudo random noise signal causes a minimal deterioration of a second information signal which is spread by means of a second pseudo random noise signal, and vice versa.
  • According to another preferred embodiment of this aspect of the invention, the receiving step involves down conversion of an incoming high-frequency signal to an intermediate frequency signal. The high-frequency signal is presumed to have a spectrum which is symmetric around a first frequency and the intermediate frequency signal is presumed to have a spectrum which is symmetric around a second frequency, which is considerably lower than the first frequency. Hence, the receiving step transforms the information carrying signal to a baseband which is technically more easy to handle than the band at which the original incoming signal is located.
  • According to another preferred embodiment of this aspect of the invention, the method includes the following steps. First, a maximum frequency variation of the second frequency due to Doppler-effects is determined. Then, a Doppler frequency interval around the second frequency is defined. The Doppler frequency interval has a lowest frequency limit equal to the difference between the second frequency and the maximum frequency variation, and a highest frequency limit equal to the sum of the second frequency and the maximum frequency variation. After that, the Doppler frequency interval is divided into an integer number of equidistant frequency steps, and subsequently a frequency candidate vector is defined for each frequency step. This way of dividing the spectrum is advantageous because it provides a flexible modeling of the intermediate carrier frequency and its variations.
  • According to another preferred embodiment of this aspect of the invention, an integer number of initial phase positions is determined for the frequency candidate vector. The integer number thus represents a phase resolution, such that a relatively high number corresponds to a comparatively high phase resolution, whereas a relatively low number corresponds to a comparatively low phase resolution. Furthermore, a carrier frequency-phase candidate vector is defined for each combination of carrier frequency candidate vector and initial phase position. The different frequency-phase candidate vectors are beneficial, since they allow the determination of a very accurate estimate of frequency- and phase characteristics of a received signal, which in turn vouches for a demodulated signal having a high quality.
  • According to yet another preferred embodiment of this aspect of the invention, the number of elements in each carrier frequency-phase candidate vector is determined. Subsequently, the carrier frequency-phase candidate vectors are stored according to a data format, which is adapted to performing multiplication operations between the data word and a segment of a carrier frequency-phase candidate vector. This adaptation is advantageous because thereby several signal samples may be processed in parallel by means of comparatively simple operators. Preferably, the adapting of the data format involves adding at least one element to each segment of the carrier frequency-phase candidate vector, such that the segment attains a number of elements which is equal to the number of elements in each of the at least one vector that is derived from the data word. Hence, it is namely possible to process a segment of the carrier frequency-phase candidate vector together with one of the at least one vector by either a so-called Single Instruction Multiple Data (SIMD)-operation or a logical XOR-operation.
  • According to still another preferred embodiment of this aspect of the invention, the method also includes the following steps. First, a maximum variation of the code rate due to Doppler-effects is determined. Then, a Doppler rate interval is defined around a center code rate. The Doppler frequency interval has a lowest code rate limit equal to the difference between the center code rate and the maximum code rate variation, and a highest frequency limit equal to the sum of the center code rate and the maximum code rate variation. In analogy with the intermediate frequency spectrum, the Doppler rate interval is divided into an integer number of equidistant code rate steps, and a code rate candidate is defined for each code rate step. In further analogy with the intermediate frequency, an integer number of possible initial code phase positions is determined for each code rate candidate. The integer number thus represents a code phase resolution, such that a relatively high number corresponds to a comparatively high code phase resolution, whereas a relatively low number corresponds to a comparatively low code phase resolution. Typically, the spread spectrum code modulation is less sensitive to distortion caused by Doppler effects than the frequency modulation. Therefore, the code rate steps may be relatively large. However, a certain degree of Doppler shift estimation is desirable to attain a demodulated signal of high quality.
  • According to yet another preferred embodiment of this aspect of the invention, a set of code vectors is generated for each signal source specific code sequence by sampling each code rate-phase candidate vector with the basic sampling rate, and thus produce a corresponding code vector. Again, this simplifies a parallel processing of several signal samples by means of comparatively simple operators.
  • According to still another preferred embodiment of this aspect of the invention, a modified code vector is generated on basis of each code vector by: copying a particular number of elements from the end of an original code vector to the beginning of the modified code vector, and copying the particular number of elements from the beginning of the original code vector to the end of the code vector. This extension of the code vector is highly advantageous because it allows extraction of tracking parameters through early-, prompt- and late techniques by performing a simple translation of local copies of the signal source specific code sequence.
  • According to still another preferred embodiment of this aspect of the invention, a set of modified code vectors is stored for each signal source specific code sequence. Each modified code vector here contains a number of elements, which represent a sampled version of at least one full code sequence. As mentioned above, the modified code vector also includes a repetition of the beginning and the end of the sequence. A particular modified code vector is defined for each combination of code rate candidate and code phase position. These pre-generated modified code vectors save considerable processing capacity in the processor, since they need not be calculated in real time, but may simply be acquired from a memory.
  • According to yet another preferred embodiment of this aspect of the invention, the data format of the modified code vectors is adapted with respect to the data format of the at least one vector that has been derived from the data word, such that a modified code vector and one of the at least one vector may be processed jointly by a SIMD-operation or an XOR-operation. Naturally, this is advantageous from a processing efficiency point-of-view.
  • According to yet another preferred embodiment of this aspect of the invention, the method involves an initial acquisition phase and a subsequent tracking phase. The acquisition phase establishes a set of preliminary parameters which are required for initiating a decoding of signals that are received during the tracking phase. The parameters may include: a modified code vector, a carrier frequency candidate vector an initial phase position, a code phase position and code index, which denotes a starting sample value for the modified code vector. A successful acquisition phase thus results in that at least one signal source specific code sequence is identified and that this signal is possible to track by the receiver (i.e. may be continued to be received).
  • According to still another preferred embodiment of this aspect of the invention, the tracking in turn, involves the following steps. First, based the tracking characteristics, a prompt pointer is calculated for each modified code vector. The prompt pointer indicates a start position for the code sequence. The initial prompt pointer value is set equal to the code index. Then, at least one pair of early- and late pointers is assigned around each prompt pointer. The early pointer specifies a sample value which is positioned at least one element before the prompt pointer's position, and correspondingly, the late pointer specifies a sample value being positioned at least one element after the prompt pointer's position. These pointers are used to maintain the tracking of the received signal by a repeated repositioning of the pointers around a correlation maximum value, such that the prompt pointer is positioned as close as possible to this value, the early pointer is positioned in time somewhat prior to this value and the late pointer is positioned in time somewhat after this value. An important advantage attained by this strategy is that one and the same vector may be re-used in order to represent different delays. Thus, valuable memory space and processing capacity is saved.
  • According to still another preferred embodiment of this aspect of the invention, the tracking involves the following further steps.
  • First, a sequence of incoming level-discrete sample values is received. Then, data words are formed from the sample values, such that each data word contains a number of elements which is equal to the number of elements in each carrier frequency-phase candidate vector. After that, a relevant set of carrier frequency-phase candidate vectors is calculated for the data word, and a pre-generated in-phase representation respective a quadrature-phase representation of the vector is acquired for each carrier frequency-phase candidate vector in the relevant set. Subsequently, each data word is on one hand multiplied with a in-phase representation of the carrier frequency-phase candidate vector in the relevant set to produce a first intermediate-frequency-reduced information word, and on the other hand multiplied with a quadrature-phase representation of the carrier frequency-phase candidate vector in the relevant set to produce a second intermediate-frequency-reduced information word. The intermediate-frequency-reduced information-words thus constitute a respective component of the vectors mentioned above that have been derived from the incoming data words. This multiplied strategy is advantageous because it enables a very efficient usage of the capacity of a general-purpose microprocessor.
  • According to yet another preferred embodiment of this aspect of the invention, XOR- or SIMD-operations are used to perform the multiplication between the data word and the in-phase representation of the carrier frequency-phase candidate vector respective between the data word and the a quadrature-phase representation of the carrier frequency-phase candidate vector.
  • According to another preferred embodiment of this aspect of the invention, the tracking involves the further steps of: correlating the first intermediate-frequency-reduced information word with a modified code vector starting at a position indicated by the prompt pointer to produce a first prompt-despread symbol string, correlating the first intermediate-frequency-reduced information word with a modified code vector starting at a position indicated by the early pointer to produce a first early-despread symbol string, correlating the first intermediate-frequency-reduced information word with a modified code vector starting at a position indicated by the late pointer to produce a first late-despread symbol string, correlating the second intermediate-frequency-reduced information word with a modified code vector starting at a position indicated by the prompt pointer to produce a second prompt-despread symbol string, correlating the second intermediate-frequency-reduced information word with a modified code vector starting at a position indicated by the early pointer to produce a second early-despread symbol string, and correlating the second intermediate-frequency-reduced information word with a modified code vector starting at a position indicated by the late pointer to produce a second late-despread symbol string. Preferably, a resulting data word is then derived for each set of the despread symbol strings. This may, for example be performed either by performing the relevant adding operation, or by looking up a pre-generated value in a table based on the bit pattern of the despread symbol strings depending on whether the resulting data words contain packed or un-packed information. Data of high quality may thus be obtained with a minimum of real time calculations, which is advantageous from a processing point-of-view.
  • According to yet another preferred embodiment of this aspect of the invention, either XOR- or SIMD-operations are used also to perform the multiplication between the intermediate-frequency-reduced information words and the modified code vectors, since again, this is advantageous from a processing point-of-view.
  • According to another preferred embodiment of this aspect of the invention, certain pieces of information are propagated in connection with completing the processing of a current data word and initiating the processing of a subsequent data word. Preferably, this propagated information includes: a pointer which indicates a first sample value of the following-data word, a group of parameters that describe the relevant set of carrier frequency-phase candidate vectors, the relevant set of code vectors, and the prompt-, early-, and late pointers. Hence, based on the propagated information, the subsequent data word may be processed immediately.
  • According to a further aspect of the invention the object is achieved by a computer program directly loadable into the internal memory of a computer, comprising software for performing the above proposed method when said program is run on a computer.
  • According to another aspect of the invention the object is achieved by a computer readable medium, having a program recorded thereon, where the program is to make a computer perform the above proposed method.
  • According to another aspect of the invention the object is achieved by the signal receiver as initially described, which is characterized in that the proposed computer program is loaded into the memory means, such that the receiver will operate according to the above-described method.
  • Consequently, the invention offers an excellent instrument for receiving and decoding any type of spread spectrum signals in a general software radio receiver. For instance, one and the same receiver may be used to track navigation satellite signals of different formats. These signals may even be received in parallel, such that a first signal is received on a first format while one or more other signals are received on a second or third format.
  • Moreover, the proposed solution permits one and the same receiver to be utilized for completely different purposes, such as communication in a cellular system.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The present invention is now to be explained more closely by means of preferred embodiments, which are disclosed as examples, and with reference to the attached drawings.
  • FIG. 1 shows a spectrum graph over an exemplary spread spectrum signal from which information may be extracted according to the invention,
  • FIG. 2 shows a spectrum graph over a frequency down-converted signal corresponding to the spectrum shown in FIG. 1,
  • FIG. 3 is an enlarged version of FIG. 2 in which a Doppler shifting of the spectrum is illustrated,
  • FIG. 4 illustrates how a data signal is modulated onto a signal source specific code sequence according to an embodiment of the invention,
  • FIG. 5 depicts a three-dimensional graph over carrier frequency-phase candidate vectors to be used as initial correlators according to an embodiment of the invention,
  • FIG. 6 shows an alternative representation the carrier frequency-phase candidate Vectors in FIG. 5,
  • FIGS. 7-8 show graphs which illustrate how a code index and a code phase are defined for a received signal according to an embodiment of the invention,
  • FIGS. 9 a,b illustrate how a modified code vector is generated based on an original code vector according to an embodiment of the invention,
  • FIG. 10 depicts a three-dimensional graph over code rate-phase candidate vectors to be used as subsequent correlators according to an embodiment of the invention,
  • FIG. 11 illustrates how a set of code sequence start pointers is assigned to a modified code vector according to an embodiment of the invention,
  • FIG. 12 illustrates how data words are formed from a sequence of incoming level-discrete sample values according to an embodiment of the invention,
  • FIG. 13 illustrates how the data words of FIG. 12 are correlated with various pre-generated vectors according to an embodiment of the invention,
  • FIG. 14 illustrates how multiple pairs of pointers may be assigned according to an embodiment of the invention,
  • FIG. 15 shows a proposed signal receiver, and
  • FIG. 16 illustrates, by means of a flow diagram, the general method of processing spread spectrum signals according to the invention.
  • DESCRIPTION OF PREFERRED EMBODIMENTS OF THE INVENTION
  • In order to realize a truly software based signal processing solution in real-time at high sampling rates, such as those required in a GNSS, the architecture of the microprocessor system must be utilized very efficiently. The present invention uses an approach, which involves a form of parallel processing based on pre-generated code vector representations. The invention thereby strikes a balance between processing speed and memory usage, which compensates for the capacity deficit of a general purpose microprocessor in relation to an ASIC. The details of this solution will become apparent from the below disclosure.
  • FIG. 1 shows a spectrum graph over an exemplary spread spectrum signal from which information may be extracted according to the invention. For example, the signal may be a GPS C/A-signal in the L1-band with a carrier frequency fHF of 1,57542 GHz. This means that the signal's spectrum is symmetrical around the carrier frequency fHF. Moreover, the signal has at least 98% of its energy distributed within a 2 MHz wide frequency band BWHF around the carrier frequency fHF. Therefore, it is generally sufficient if the spread spectrum signal is downconverted to an intermediate frequency fIF at around 1 MHz in order to enable further signal processing at a lower frequency.
  • FIG. 2 shows a spectrum graph over such a frequency down-converted signal, whose spectrum is symmetrical around an intermediate frequency fIF, which is considerably lower than the carrier frequency fHF, for example fIF=1.25 MHz. Due to movements of the transmitter (i.e. typically a satellite in orbit) and the receiver (i.e. typically a mobile GNSS-receiver) a Doppler shift may occur in the received signal, which is proportional to the relative velocity between the transmitter and the receiver. A maximum Doppler shift fD is defined which in the GNSS case normally is approximately 10 kHz. Thus, the entire spectrum may be shifted within an interval 2 f D, such that the center frequency falls any where between fIF+fD (corresponding to a maximum positive Doppler shift) and fIF−fD (corresponding to a maximum negative Doppler shift). For illustrative purposes the interval 2 f D, has been severely exaggerated in the FIG. 2. The figure also indicates a phase variation interval φD (along an independent axis φ) around the intermediate frequency fIF. The phase variation interval φD demonstrates the fact that the phase position of the received signal is initially unknown to the receiver, and thus constitutes a calibration parameter. The effects of this parameter will be further elucidated below with reference to FIG. 5.
  • An enlarged version of the spectrum in FIG. 2 is shown in FIG. 3. The intermediate spectrum may, due to possible Doppler effects, be shifted such that its center frequency lies in the interval 2 f D from fIF-min=fIF−fD to fIF-max=fIF+fD. The potential maximum shifted spectra are here indicated with a respective dashed line. The diagram in FIG. 3 also shows a Nyquist frequency rs/2 corresponding to a minimal sampling rate rs which, when used for sampling the intermediate frequency signal, will result in a non-aliased discrete spectrum. Provided that fD=10 kHz, fIF=1.25 MHz, BWHF=2 MHz and the intermediate frequency signal is lowpass filtered through an analog filter having a 2.5 MHz wide passband, the minimal sampling rate rs becomes 5 MHz (i.e. two times the highest frequency component after the analog filter).
  • FIG. 4 illustrates schematically how a data signal D is modulated onto a signal source specific code sequence CS on the transmitter side according to an embodiment of the invention. According to a preferred embodiment of the invention, the signal source specific code sequence CS constitutes so-called pseudo random noise. The data signal D here contains a data symbol sequence [+1, −1, −1, +1, −1], and has a relatively low symbol rate, say 50 Hz. The signal source specific code sequence CS, however, has a relatively high symbol rate (or more correctly chipping rate). For instance, a signal source specific code sequence CS in the form of a GPS C/A code may have a chipping rate of 1,023 MHz and contain 1023 chips per period. Each chip, ch, is either +1 or −1. Hence, the CIA code repeats itself one per ms. The data signal D is modulated onto (or spread by) the signal source specific code sequence CS by multiplying each data symbol with the code sequence CS. The data symbol +1 thereby results in an unaltered code sequence CS, whereas the data symbol −1 results in an inverted code sequence CS.
  • If a data signal D having a rate of 50 Hz is spread by means of a signal source specific code sequence CS having a chipping rate of 1,023 MHz, this results in 20 entire code sequences CS per data symbol. Namely, the period time for one data symbol is 20 ms, whereas the period time for the code sequence is only 1 ms.
  • FIG. 5 depicts a three-dimensional graph over different carrier frequency-phase candidate vectors. As mentioned above, the intermediate frequency spectrum may be Doppler shifted. Therefore, the particular frequency of the received signal is initially unknown within a Doppler frequency interval from fIF-min to fIF-max. Moreover, the phase position of the received signal is beforehand unknown to the receiver. In order to enable an estimation of the actual intermediate carrier frequency, the Doppler frequency interval fIF-min−fIF-max is divided into an integer number of equidistant frequency steps. Of course, the larger the number of steps is, the more accurately the intermediate carrier frequency may be estimated. In this example, a step size Δf of 20 Hz is chosen. In some applications, however, a much larger step size Δf may provide a sufficient frequency accuracy, whereas in other applications (where relatively high accuracy is needed) a considerably smaller step size Δf may be required. In any case, a Doppler frequency interval fIF-min−fIF-max of 20 kHz and a step size Δf of 20 Hz requires 1000 steps, where a first step includes the frequencies from fIF-min to fIF-min+Δf, a second step includes the frequencies from fIF-min+Δf to fIF-min+2Δf, and so on up to a last step including the frequencies from fIF-min+999Δf to fIF-max.
  • A frequency candidate vector fIF-C is defined for each frequency step. In order to estimate an initial phase position of the intermediate carrier frequency, an integer number of initial phase positions (φ0, . . . φ7 are determined. The illustrated example shows eight such positions φC. This gives a phase resolution of π/4. For each frequency candidate vector fIF-C, eight different phase positions φ0, . . . , φ7 are thus defined which each represents a particular phase shift from 0 to 7π/4. A combination of a certain carrier frequency candidate vector fIF-C and a particular initial phase position φC is referred to as a carrier frequency-phase candidate vector. FIG. 5 shows all such vectors (i.e. eight) for the first step, where fIF-C=fIF-min, and the second step, where fIF-C=fIF-min+Δf.
  • Additionally, FIG. 5 includes an axis LC along which the number of sample values (or length) of the frequency candidate vector fIF-C is indicated. The LC number is preferably a power of 2 because this generally renders the implementation more simple. The number of sample values in each frequency candidate vector fIF-C is set in consideration of the available memory space, the desired frequency resolution and the desired phase resolution. If, in the example above, a length of 512 samples is chosen and each sample requires one byte, the total (uncompressed) memory demand would be 3.9 MB (i.e. 1000 frequencies×8 phase positions×512 B=4096000 B=3.9 MB).
  • FIG. 6 shows an alternative representation the carrier frequency-phase candidate vectors V(fIF-C, φC) in FIG. 5. Here, the vectors V(fIF-C, φC) range from the carrier frequency fIF-C=fIF-min (say 1.24 MHz) to fIF-C=fIF-max (say 1.26 MHz), from the phase shift position φC0 (say 0) to φC7 (say 7π/4), all have a length LC of sn samples (say 512) and are represented in a cube. Hence, a particular frequency-phase candidate vector V(fIF-C, φC) is given by a cuboid segment in the cube which is parallel with the LC-axis, and ranges from LC=s1 to LC=sn.
  • After having generated all the carrier frequency-phase candidate vectors V(fIF-C, φC), the vectors are stored in a digital memory with a comparatively short access time, such that they may be readily accessed during a later acquisition and/or tracking phase. Preferably, the carrier frequency-phase candidate vectors V(fIF-C, φC) are stored according to a data format which is adapted to performing multiplication operations between incoming data words (representing one or more received signals) and segments of carrier frequency-phase candidate vectors V(fIF-C, φC). The vectors may either include packed samples or they may contain samples that are unpacked to a smallest manageable unit in the microprocessor, such as a byte. Further details regarding the data format issues will be discussed below.
  • FIG. 7 shows a graph over an exemplary code sequence CS, which has been received, downconverted and sampled according to an embodiment of the invention. After subsequent removal of the intermediate frequency component, the code sequence CS either attains the signal value +1 or −1, and the symbols are altered at a chipping rate of for example 1,023 MHz. At the receiver side, the code sequence CS is sampled with a sampling rate rs of for example 5 MHz. The sampling instances are indicated by means of dots on the code sequence signal CS along an axis si. As is apparent from the figure there are approximately four sample values per chip period. Hence, the requirements of the Nyquist theorem are clearly fulfilled. However, the samples are not capable of determining the transition instances with a sufficient accuracy, i.e. where the code sequence signal CS changes from representing one chip symbol to representing another one chip symbol. Therefore, a so-called code phase must be determined. Moreover, a particular sample value at which the code sequence starts must also be established.
  • FIG. 8 shows a graph, which illustrates the sample value at which the code sequence CS starts (the so-called code index Cl) and how a code phase, Cph, is defined in relation to this sample value. An initial segment of the code sequence signal CS in FIG. 7 is therefore represented in FIG. 8.
  • A first sample instance is here presumed to occur shortly prior to the actual start of the code sequence CS signal period. Hence, a corresponding sample value s1 belongs to the end of the preceding period. This is illustrated by means of the line representing the code sequence signal CS being dashed. A subsequent sample instance, however, overlaps the code sequence CS period. The corresponding sample value s2 is defined as the code index CI. The actual beginning of a code sequence signal is determined in a preceding acquisition phase and typically involves correlation between the received signal and a local copy of the code sequence CS.
  • The distance between the start of the code sequence signal CS and the code index CI, in turn, is defined as the code phase Cph, and thus represents a measure of the translation (or skew) between the sample instances si and the chip transitions. The sampling interval between two consecutive sample instances si is divided into an integer number of possible initial code phase positions in order to estimate the code phase Cph. In this example, ten 0.1-steps ranging from 0.0 to 0.9 are defined, where a first step 0.0 would indicate that code sequence signal CS starts at the code index CI, and a last step 0.9 would indicate that code sequence signal CS starts almost at the preceding sample value s1. The FIG. 8 shows a code phase Cph of 0.4, i.e. a situation where the code sequence signal CS starts approximately in the middle between two consecutive sample instances si.
  • In analogy with the carrier frequency-phase candidate vectors V(fIF-C, φC), code rate-phase candidate vectors may now be defined for each signal source specific code sequence CS and combination of code rate CR, code index CI and code phase Cph. Nevertheless, according to a preferred embodiment of the invention, a modified code vector is first produced based on each original code vector.
  • FIGS. 9 a and 9 b illustrate how this may be performed. A code vector CV in FIG. 9 a contains a number of sample values, say 5000. Preferably, the number of sample values is selected in relation to sampling rate such that a full code sequence period is recorded. In the above example, with a sampling rate rs of 5 MHz, this means that the 5000 samples cover exactly one full code sequence CS period (which has a duration of 1 ms and contains 1023 chips, since the chipping rate is 1,023 MHz).
  • A modified code vector CVm is now generated on basis of the original code vector CV by copying a particular number of elements Ee (e.g. two) from the end of the original code vector CV to the beginning of the modified code vector CVm. Correspondingly, a particular number of elements Eb (e.g. two) from the beginning of the original code vector CV are copied to the end of the code vector CVm, i.e. after the elements Ee. FIG. 9 b shows the resulting modified code vector CVm. Since, in this example, each chip symbol is sampled at approximately four instances, two sample values are equivalent to about one half chip period. Thereby, the above copying of the elements Ee and Eb allows a one-half-chip shifting of the code vector CV during a correlation operation between the code vector CV and the received data. This will be discussed further below with reference to FIG. 11.
  • FIG. 10 depicts a three-dimensional graph over different code rate-phase candidate vectors CVm(CRC-C, Cph) which represent a signal source specific code sequence CS(i). Analogous to the intermediate carrier frequency, the nominal code rate CRC for the code rate candidate vector CRC-C may also vary due to Doppler effects from a lowest value CRmin to a highest value CRmax. However, since the code rate (or chipping rate) is comparatively high, the rate variation here becomes rather small.
  • For example, a Doppler shift of 10 kHz at the intermediate carrier frequency is equivalent to a shift in a nominal code rate CRC at 1,023 MHz of merely 6.5 Hz. Namely, the Doppler shift in respect of the code rate is generally equal to the ratio between the carrier frequency and the code rate (1575,42 MHz/1,023 MHz=1540; a Doppler shift of 10 kHz at the intermediate carrier frequency thus corresponds to 10000/1540≈6.5 Hz). The code rate candidate vector CRC-C may attain a value anywhere in a Doppler rate interval between CRmin=1022993.5 Hz and CRmax=102306.5 Hz. The Doppler rate interval CRmin−CRmax is divided into an integer number of equidistant code rate steps ΔCR, say 13. In this example, each interval CRmin, CRmin+ΔCR, . . . , CRmax thus spans 1 Hz. According to a preferred embodiment of the invention, the code rate step size is adaptive, e.g. determined on basis of the sampling frequency and the desired resolution.
  • In FIG. 10, the three-dimensional graph (or cube) contains a set of code rate-phase candidate vectors CVm(CRC-C, Cph), where the code rate ranges from CRC-C=CRmin to CRC-C=CRmax, the code phase ranges from Cph=0.0 to Cph=0.9, and each vector has a length LCVm of sm samples (for example 5004). Hence, a particular code rate-phase candidate vector CVm(CRC-C, Cph) is given by a cuboid segment CVm(CRmin+2ΔCR, 0.4) which is parallel with the LCVm-axis and ranges from LCVm=s1 to LCVm=sm.
  • After having generated all the code rate-phase candidate vectors CVm(CRC-C, Cph), these vectors are stored in a digital memory with a comparatively short access time, such that they may be readily accessed during the acquisition and/or tracking phase. Preferably, the code rate-phase candidate vectors CVm(CRC-C, Cph) are stored according to a data format which is adapted to correlation operations to be performed between a vector that has been derived from incoming data words and a segment of a the code rate-phase candidate vectors CVm(CRC-C, Cph). For example, the code rate-phase candidate vectors CVm(CRC-C, Cph) may include packed samples or they may contain samples that are unpacked to a smallest manageable unit in the microprocessor, such as a byte. Further details regarding these data format issues will be discussed below with reference to FIG. 13.
  • During tracking of a spread spectrum signal, i.e. a continued reception of the signal and demodulation of the data contained therein, it is necessary to update relevant tracking parameters for the signal. Normally, the tracking phase is preceded by a so-called acquisition phase during which a set of preliminary parameters are established that are required for initiating the signal decoding. A successful acquisition phase thus results in that at least one signal source specific code sequence is identified and a data signal transmitted by means of this sequence is possible to demodulate. The tracking characteristics that may be associated with a signal source specific code sequence include: a modified code vector CVm (which defines a carrier frequency candidate vector fIF-C and an initial phase position φC), a code phase position, Cph, and a code index, Cl. In order to maintain an adequate timing of the correlating operations in the receiver, a set of pointers are required which indicate the start position of the code sequence in relation to the modified code vector and are updated repeatedly, preferably between each correlation.
  • FIG. 11 illustrates one such set of pointers that are assigned to a modified code vector CVm. A prompt pointer PP indicates a current estimate of the code sequence start position. This pointer PP is initially set equal to the code index CI. Adequate PP-pointer positions for any subsequent segments of the received data are obtained by retrieving appropriate modified code vectors CVm from the digital memory where such pre-generated are stored. Between each segment, the code rate candidate vector CRC-C as well as the initial code phase Cph is updated. Additionally, at least one pair of early- and late pointers PE and PL respectively is assigned on each side of the prompt pointer PP, where the early pointer PE specifies a sample value being positioned at least one element before the prompt pointer's PP position, and the late pointer PL specifies a sample value being positioned at least one element after the prompt pointer's PP position. Each correlation is then performed with the presumption that the code sequence starts at the PP-position, at the PE-position as well as at the PL-position. If the correlation over the PP-position results in a higher correlation value than over any of the other positions, and at the same time the PE- and PL-pointers are balanced (i.e. the correlation over these positions result in equal values), this is interpreted as an optimal setting of the tracking parameters. Should, however, this not be true the sampled data must be repositioned in relation to the PP-, PE- and PL-pointers, such that the correlation peak again coincides with the PP-pointer's position. An un-calibrated pointer positioning may thus be detected via a difference between the correlation value over the PE-pointer position and the correlation value over the PL-pointer position, while the correlation over the PP-position still results in the highest correlation value. In this case, the potentially highest correlation value (corresponding to the optimal PP-positioning) lies somewhere between the current PP-position and the current PE-position or between the current PP-position and the current PL-position depending on which of the PE- and PL-pointer positions that results in the highest correlation value. A pointer updating normally takes place between each segment. A second or third pair of PE- and PL-pointers outside the first pair of pointers further enhances the possibilities of accomplishing an accurate adjustment of the tracking. Depending on the value of the received symbol, an optimal setting PP-pointer may, in fact, also be equivalent to the correlation over the PP-position resulting in a lower correlation value than over any of the other pointer positions. Namely, this is true if a negative valued data bit is received. However otherwise, the same principles apply.
  • In any case, the PP-, PE- and PL-pointers may only be positioned within certain intervals in the modified code vector CVm. The PP-pointer may be set anywhere within a first interval 111, the PE-pointer within a second interval 112 and the PL-pointer within a third interval 113. All the pointers are always set together, such that their relative distances remain unchanged. A limit value PL-min for the PL-pointer typically coincides with the first element of the modified code vector CVm. Namely, outside this range a meaningful correlation cannot be performed. As a consequence of this and the fact that the pointers are set jointly PP-, PE- and PL, a corresponding limit value PE-min for the PE-pointer is also defined.
  • FIG. 12 illustrates how data words d(1), d(2), . . . , d(N) are formed from a sequence 1210 of incoming level-discrete sample values according to an embodiment of the invention. The data words d(1), . . . , d(N) are formed such that each data word d(k) contains a number of elements which is equal to the number of elements sn in each carrier frequency-phase candidate vector. For instance, the length of these vectors may be 512 sample values (as in the example described above with reference to the FIGS. 5 and 6). Given that each sequence 1210 contains 5000 sample values, the number N of data words becomes 10 (5000/512=9.76 means that the last quarter of the tenth data word d(10) is empty). According to the invention, the elements in a current data word d(k) are processed jointly (i.e. in parallel). Then, the processing of a subsequent data word d(k+1) is initiated, and any processing parameters obtained during the processing of the current data word d(k) that are required when processing the subsequent data word d(k+1) are propagated as input data to the processing of the latter. These processing parameters preferably include: a pointer Pd which indicates a first sample value of the subsequent data word d(k+1), a group of parameters which describe the relevant set of carrier frequency-phase candidate vectors V(fIF-C, φC) (i.e. a carrier frequency candidate vector fIF-C representing an in-phase version and a carrier frequency candidate vector fIF-C representing a quadrature-phase version), the relevant set of code vectors CVm, and prompt-, early-, and late pointers PP, PE, and PL respectively.
  • FIG. 13 illustrates how the data words of FIG. 12 are correlated with various pre-generated vectors according to an embodiment of the invention. First, a relevant set of carrier frequency-phase candidate vectors V(fIF-C, φC) is calculated for the data word d(k). This set is normally obtained in a preceding acquisition phase (or, if the data word d(k) is not the first word to be processed, during the processing of a previous word).
  • Thereafter, for each carrier frequency-phase candidate vector V(fIF-C, φC) in the relevant set, a pre-generated in-phase representation fIFI and a quadrature-phase representation fIFQ of the vector (V(fIF-C, φC)) respectively is acquired. Both these representations are found in the digital memory where the pre-generated carrier frequency-phase candidate vectors V(fIF-C, φC) are stored because they are merely one quarter period delays of one and the same vector, and the memory holds initial phase position representations for an entire period, see FIG. 6.
  • Then, in order to eliminate the influence of the carrier frequency component, the data word d(k) is multiplied with the in-phase representation fIFI of the carrier frequency-phase candidate vector V(fIF-C, φC) in the relevant set. As a result thereof, a first intermediate-frequency-reduced information word SIF-I(k) is produced. Correspondingly, the data word d(k) is also multiplied with the quadrature-phase representation fIFQ of the carrier frequency-phase candidate vector V(fIF-C, φC) in the relevant set, and a second intermediate-frequency-reduced information word SIF-Q(k) is produced.
  • Preferably, the multiplication between the data word d(k) and the in-phase representation fIFI respective the quadrature-phase representation fIFQ of the carrier frequency-phase candidate vector V(fIF-C, φC) are performed by means of XOR- or SIMD-operations (i.e. 1-bit and multiple-bits multiplications respectively). This is namely possible if the data word d(k) and the vector V(fIF-C, φC) have compatible data formats.
  • Subsequently, the first intermediate-frequency-reduced information word SIF-I(k) is multiplied with a modified code vector CVm-p, which has been retrieved from the digital memory where these pre-generated vectors are stored, and starts at a position indicated by the prompt pointer PP. A first prompt-despread symbol string ΛIP(k) is produced as a result of this operation. The first intermediate-frequency-reduced information word SIF-I(k) is also multiplied with a modified code vector CVm-E(k), which starts at a position indicated by the early pointer PE. A first early-despread symbol string ΛIE(k) is produced as a result of this operation. The first intermediate-frequency-reduced information word SIF-I(k) is likewise multiplied with a modified code vector CVm-L(k), which starts at a position indicated by the late pointer PL, and a first late-despread symbol string AIL(k) is produced. Moreover, the second intermediate-frequency-reduced information word SIF-Q(k) is multiplied with a modified code vector CVm-P(k), which starts at a position indicated by the prompt pointer PP, and a second prompt-despread symbol string ΛQP(k) is produced. Correspondingly, the second intermediate-frequency-reduced information word SIF-Q(k) is multiplied with a modified code vector CVm-E(k), which starts at a position indicated by the early pointer PE, and a second early-despread symbol string ΛQE(k) is produced. Likewise, the second intermediate-frequency-reduced information word SIF-Q(k) is multiplied with a modified code vector CVm-L(k), which starts at a position indicated by the late pointer PL, and a second late-despread symbol string ΛQL(k) is produced.
  • After that, a resulting data word DR-IE(k). DR-IP(k), DR-IL(k), DR-QE(k), DR-QP(k) and DR-QL(k) may be derived from the each of the despread symbol strings ΛIP(k), ΛIE(k), ΛIL(k), ΛQP(k), ΛQE(k) and ΛQL(k) respectively by adding the elements in the respective string together. If the strings represent un-packed data, the processor may simply perform the relevant adding operation to obtain the resulting data word DR(k). If however, the strings represent packed data, the resulting data word DR(k) is, according to a preferred embodiment of the invention, derived by looking up a pre-generated value in a table 1310 based on the bit pattern given by the respective despread symbol string ΛIP(k), ΛIE(k), ΛIL(k), ΛQP(k), ΛQE(k) and ΛQL(k).
  • According to a preferred embodiment of the invention, in addition to the individual data words DR-IE(k), DR-IP(k), DR-IL(k), DR-QE(k), DR-QP(k) and DR-QL(k), corresponding accumulated data words are produced, such that after having generated a data word DR(k), the sum of all data words DR(k) to DR(k) is also obtained. Hence, when the data word d(N) has been processed, the resulting sum DR(1) to DR(N) is also at hand.
  • Moreover, the resulting data words represent payload information. For instance, based on the set of resulting data words DR-IE(k), DR-IP(k), DR-IL(k), DR-QE(k), DR-QP(k) and DR-QL(k) a demodulated piece of information of a transmitted data symbol sequence D as shown in FIG. 4 may be derived. In a steady state operation, basically only one of the resulting data words; say DR-IP(k), actually carries the information.
  • According to a preferred embodiment of the invention, the multiplications involved in the multiplications between the intermediate-frequency-reduced information words SIF-I(k) and SIF-Q(k) respectively and the modified code vectors CVm-P(k), CVm-E(k); CVm-L(k) are all performed by means of XOR- or SIMD-operations. This is possible if the intermediate frequency information words SIF-I(k); SIF-Q(k) and the modified code vectors CVm-E(k), CVm-P(k); CVm-L(k) have compatible data formats.
  • It was mentioned above with reference to FIG. 11 that more than one pair of early- and late pointers may be assigned to the prompt pointer in order to accomplish an improved tracking. FIG. 14 illustrates how two pairs of such pointers PE1; PL1 and PE2; PL2 respectively are assigned around a prompt pointer PP according to an embodiment of the invention. The horizontal axis here represents a code shift CS and the vertical axis shows a normalised correlation factor. An optimal positioning of the prompt pointer PP is thus equivalent to a normalised correlation value of 1. The more the sampled data is shifted in either direction from this position, the lower the correlation value becomes down to substantially zero for a shift of one chip or more. The algorithm is perfectly balanced when (as illustrated in the figure) both the pointers PE1 and PL1 of a first pair produce a first shifted correlation result, both the pointers PE2 and PL2 of a second pair produce a second shifted correlation result, the first shifted correlation result is larger than the second shifted correlation result and both the first and the second shifted correlation results are smaller than the correlation result obtained at the prompt position PP. Said correlation results are preferably generated according to a process corresponding to what has been described above with reference to FIG. 13. Based on the correlation results for the pointer positions PP, PE1, PL1, PE2 and PL2 a (if necessary new) set of modified code vectors CVm-E(k), CVm-P(k); CVm-L(k) is selected, which is deemed to be optimal.
  • FIG. 15 shows a signal receiver 1500 for receiving navigation data signals transmitted in a navigation satellite system according to an embodiment of the invention. The receiver 1500 includes radio front end unit 1510, an interface unit 1520 and a digital processor unit 1530.
  • The radio front end unit 1510 is adapted to receive a continuous radio signal SHF, and in response thereto produce a corresponding electrical signal SIF which has a comparatively high frequency. The interface unit 1520 is adapted to receive the electrical signal SIF, and in response thereto, produce a sequence of sample values that represents the same information as the electrical signal SIF and is divided into data words d(k). The digital processor unit 1530 is adapted to receive the data words d(k), and in response thereto, demodulate a data signal. The digital processor unit 1530, in turn, includes a memory means 1535, which is loaded with a computer program that is capable of controlling the steps of the proposed procedure when the program is run in the processor unit 1530.
  • In order to sum up, the general method of processing spread spectrum signals according to the invention will now be described with reference to a flow diagram in FIG. 16.
  • A preparation step 1600 pre-generates code vectors which each represents a signal source specific code sequence that is intended to be received (or at least possible to receive) and demodulated in the receiver. The step 1600 is performed before the signal reception is initiated.
  • A step 1610 then receives a continuous signal of a comparatively high frequency. A following step 1620 samples the continuous signal at a basic sampling rate, whereby a resulting sequence of time discrete signal samples is produced. Each sample is also quantised (either with a relatively low-resolution, such as with 1 bit per sample value, or with a relatively high resolution depending on the application and the number of data bits per samples delivered from the radio front end unit 1510), such that a corresponding level-discrete sample value is obtained. Subsequently, a step 1630 forms data words from the sample values, where each data word includes one or more consecutive sample values. After that, a step 1640 carries out correlation operations between the information in the data words and at least one of the pre-generated representations of a signal source specific code sequence. The correlation step involves correlating at least each vector in a sub-group of the code vectors with at least one vector that has been derived from a data word. A following step 1650 produces data as a result of the correlation performed in step 1640. Then, a step 1660 investigates whether the sampled sequence has ended, i.e. whether there are any more data words to process. If more sampled data to process is found, the procedure returns to the step 1640. Otherwise, the procedure loops back to the step 1610 again for continued reception of the incoming signal. Naturally, such signal is preferably also received during execution of the steps 1620 to 1660. The sequential procedure illustrated in FIG. 16 is merely applicable to a specific received signal segment. Preferably, all the steps are actually 1610 to 1660 are actually performed in parallel.
  • The process steps, as well as any sub-sequence of steps, described with reference to the FIG. 16 above may be controlled by means of a programmed computer apparatus, such as a microprocessor located in a GNSS-receiver. Moreover, although the embodiments of the invention described above with reference to the drawings comprise computer apparatus and processes performed in computer apparatus, the invention thus also extends to computer programs, particularly computer programs on or in a carrier, adapted for putting the invention into practice. The program may be in the form of source code, object code, a code intermediate source and object code such as in partially compiled form, or in any other form suitable for use in the implementation of the process according to the invention. The carrier may be any entity or device capable of carrying the program. For example, the carrier may comprise a storage medium, such as a ROM (Read Only Memory), for example a CD (Compact Disc) or a semiconductor ROM, or a magnetic recording medium, for example a floppy disc or hard disc. Further, the carrier may be a transmissible carrier such as an electrical or optical signal which may be conveyed via electrical or optical cable or by radio or by other means. When the program is embodied in a signal which may be conveyed directly by a cable or other device or means, the carrier may be constituted by such cable or device or means. Alternatively, the carrier may be an integrated circuit in which the program is embedded, the integrated circuit being adapted for performing, or for use in the performance of, the relevant processes.
  • The term “comprises/comprising” when used in this specification is taken to specify the presence of stated features, integers, steps or components. However, the term does not preclude the presence or addition of one or more additional features, integers, steps or components or groups thereof.
  • The invention is not restricted to the described embodiments in the figures, but may be varied freely within the scope of the claims.

Claims (35)

1. A method of processing spread spectrum signals comprising:
receiving a continuous signal (SIF) of a comparatively high frequency;
sampling the continuous signal (SIF) at a basic sampling rate (rs), whereby a resulting sequence of time discrete signal samples (S[si]) is produced;
quantizing each signal sample into a corresponding level-discrete sample value;
forming of a plurality of data words (d(1), . . . , d(N)) which each includes one or more consecutive sample values (s1, . . . , Sn); and
correlating between information in the data words (d(k)) and at least one representation (CS(i)) of a signal source specific code sequence (CS), the method comprising preparing for the correlation step, wherein, before receiving the continuous signal (SIF), a multitude of code vectors (CV; CVm) are pre-generated, each code vector representing a particular code sequence (CS(i)) of the at least one signal source specific code sequence (CS), and
the correlating step involving multiplying at least each vector in a sub-group (CVm-E, CVm-P; CVm-L) of the code vectors (CV; CVm) with at least one vector (SIF-I(k); SIF-Q(k)) derived from the data word (d(k)).
2. A method according to claim 1, wherein each code vector (CV; CVm) represents a particular signal source specific code sequence (CS(i)) being sampled at the basic sampling rate (rs) and quantized with the quantizing process being used to produce the level-discrete sample values (S1, . . . , Sn).
3. A method according to claim 1, wherein the at least one signal source specific code sequence (CS) is pseudo random noise.
4. A method according to claim 1, wherein the receiving step involving down conversion of an incoming high-frequency signal (SHF) to an intermediate frequency signal (SIF), the high-frequency signal (SHF) having a spectrum which is symmetric around a first frequency (fHF) and the intermediate frequency signal (SIF) having a spectrum which is symmetric around a second frequency (fIF) being considerably lower than the first frequency (fHF).
5. A method according to claim 4, further comprising the steps of:
determining a maximum frequency variation (fD) of the second frequency (fIF) due to Doppler-effects;
defining a Doppler frequency interval (fIF-min−fIF-max) around the second frequency (fIF), the Doppler frequency interval (fIF-min, fIF-max) having a lowest frequency limit (fIF-min) equal to the difference between the second frequency (fIF) and the maximum frequency variation (fD), and a highest frequency limit (fIF-max) equal to the sum of the second frequency (fIF) and the maximum frequency variation (fD);
dividing the Doppler frequency interval (fIF-min−fIF-max) into an integer number of equidistant (Δf) frequency steps (fIF-min, fIF-min+Δf, . . . , fIF-max); and
defining a frequency candidate vector (fIF-C) for each frequency step (fIF-min, fIF-min+Δf, . . . , fIF-max).
6. A method according to claim 5 further comprising the steps of:
determining an integer number of initial phase positions (φ0, . . . , φ7) for the frequency candidate vector (fIF-C), and
defining a carrier frequency-phase candidate vector (V(fIF-C, φC)) for each combination of carrier frequency candidate vector (fIF-C) and initial phase position (φ0, . . . , φ7).
7. A method according to claim 6 further comprising the steps of:
determining the number of elements (sn) in each carrier frequency-phase candidate vector (V(fIF-C, φC)); and
storing the carrier frequency-phase candidate vector (V(fIF-C, φC)) according to a data format being adapted to performing multiplication operations between the data word (d(k)) and a segment of a carrier frequency-phase candidate vector (V(fIF-C, φC)).
8. A method according to claim 7, wherein adapting of the data format involves adding at least one element to each segment of the carrier frequency-phase candidate vector (V(fIF-C, φC)) such that the segment attains a number of elements which is equal to the number of elements in the data word (d(k)), thus enabling a segment of the carrier frequency-phase candidate vector (V(fIF-C, φC)) and one of the at least one vector (SIF-I(k); SIF-Q(k)) to be processed jointly by at least one of a SIMD-operation (multiple-bits multiplications) and an XOR-operation (1-bit multiplications).
9. A method according claim 1 further comprising the steps of:
determining a maximum variation a code rate due to Doppler-effects, defining a Doppler rate interval (CRC-min−CRc-max) around a center code rate (CRc), the Doppler frequency interval having a lowest code rate limit (CRc-min) equal to the difference between the center code rate (CRc) and the maximum code rate variation (CRD), and a highest frequency limit (CRc-max) equal to the sum of the center code rate (CRc) and the maximum code rate variation (CRD);
dividing the Doppler rate interval (CRC-min−CRC-max) into an integer number of equidistant (ΔCR) code rate steps (CRC-min, CRC-min+ΔCR, . . . , CRc-max); and
defining a code rate candidate (CRc-c) for each code rate step (CRC-min, CRC-min+ΔCR, . . . , CRc-max).
10. A method according to claim 9 further comprising determining an integer number of possible initial code phase positions (0.0, . . . , 0.9) for each code rate candidate (CRc-c).
11. A method according to claim 10 further comprising defining, for each signal source specific code sequence (CS(i)), a set of combinations between code rate candidate (CRc-c) and code phase position (0.0, . . . , 0.9), each combination representing a code rate-phase candidate vector.
12. A method according to claim 11 further comprising generating, for each signal source specific code sequence (CS(i)), a set of code vectors (CV) by:
sampling each code rate-phase candidate vector with the basic sampling rate (rs) whereby a corresponding code vector (CV) is produced.
13. A method according to claim 1 further comprising generating a modified code vector (CVm) on basis of each code vector (CV) by:
copying a particular number of elements (Ee) from the end of an original code vector (CV) to the beginning of the modified code vector (CVm); and
copying the particular number of elements (Eb) from the beginning of the original code vector (CV) to the end of the code vector (CVm).
14. A method according to claim 13 further comprising storing, for each signal source specific code sequence (CS(i)), a set of modified code vectors ({CVm(CRc-c, Cph)}), where
each modified code vector (CVm) contains a number of elements (s1, . . . , sm) representing a sampled version of at least one full code sequence (CS),
a particular modified code vector (CVm) is defined for each combination of code rate candidate (CRc-c) and code phase position (Cph).
15. A method according to claim 14 further comprising adapting the data format of the modified code vectors (CVm) with respect to the data format of the at least one vector (SIF-I(k); SIF-Q(k)) derived from the data word (d(k)), such that a modified code vector (CVm) and one of the at least one vector (SIF-I(k); SIF-Q(k)) may be processed jointly by at least one of a SIMD-operation (multiple-bits multiplications) and an XOR-operation (1-bit multiplications).
16. A method according to claim 14 further comprising involving an initial acquisition phase and a subsequent tracking phase, wherein during the acquisition phase a set of preliminary parameters are established which are required for initiating a decoding of signals received during the tracking phase, a successful acquisition phase resulting in at least one signal source specific code sequence (CS) being identified and a transmitted signal being rendered possible to track, each of the at least one signal source specific code sequence (CS) being associated with tracking characteristics in the form of:
a modified code vector (CVm),
a carrier frequency candidate vector (fIF-C),
an initial phase position (φc),
a code phase position (Cph), and
a code index (CI) denoting a starting sample value for the modified code vector (CVm).
17. A method according to claim 16 wherein said tracking involves:
calculating, based on the tracking characteristics, a prompt pointer (Pp) for each modified code vector (CVm), the prompt pointer (Pp) indicating a code sequence start position, and an initial prompt pointer (Pp) being equal to the code index (CI): and
assigning, around each prompt pointer (Pp), at least one pair of early- and late pointers (PE, PL; PE1, PL1 PE2, PL2), where the early pointer (PE) specifies a sample value being positioned at least one element before the prompt pointer's (Pp) position, and the late pointer (PL) specifies a sample value being positioned at least one element after the prompt pointer's (Pp) position.
18. A method according to claim 17, wherein said tracking involves:
receiving a sequence of incoming level-discrete sample values (1210),
forming data words (d(1), . . . , d(N)) of the sample values (1210) such that each data word (d(k)) contains a number of elements which is equal to the number of elements (Sn) in each carrier frequency-phase candidate vector (V(fIF-C, φC)); calculating a relevant set of carrier frequency-phase candidate vectors (V(fIF-C, φC)) for the data word (d(k)); and
acquiring, for each carrier frequency-phase candidate vector (V(fIF-C, φC)) in the relevant set, a pre-generated in-phase representation (fIFI) and a quadrature-phase representation (fIFQ) of the vector (V(fIF-C, φC)) respectively.
19. A method according to claim 18, wherein said tracking involves:
multiplying each data word (d(k)) with the in-phase representation (fIFI) of the carrier frequency-phase candidate vector (V(fIF-C, φC)), in the relevant set to produce a first intermediate-frequency-reduced information word (SIF-I(k)), multiplying each data word (d(k)) with the quadrature-phase representation (fIFQ) of the carrier frequency-phase candidate vector (V(fIF-C, φC)) in the relevant set to produce a second intermediate-frequency-reduced information word (SIF-Q(k)).
20. A method according to claim 19, wherein said tracking involves:
multiplying the first intermediate-frequency-reduced information word (SIF-I(k)) with a modified code vector (CVm-p(k)) starting at a position indicated by the prompt pointer (Pp) to produce a first prompt-despread symbol string (ΛIp(k)), multiplying the first intermediate-frequency-reduced information word (SIF-I(k)) with a modified code vector (CVm-E(k)) starting at a position indicated by an early pointer (PE) to produce a first early-despread symbol string (ΛIE(k));
multiplying the first intermediate-frequency-reduced information word (SIF-I(k)) with a modified code vector (CVm-L(k)) starting at a position indicated by a late pointer (PL) to produce a first late-despread symbol string (ΛIL(k));
multiplying the second intermediate-frequency-reduced information word (SIF-Q(k)) with a modified code vector (CVm-p(k)) starting at a position indicated by the prompt pointer (Pp) to produce a second prompt-despread symbol string (ΛQp(k));
multiplying the second intermediate-frequency-reduced information word (SIF-Q(k)) with a modified code vector (CVM-E(k)) starting at a position indicated by the early pointer (PE) to produce a second early-despread symbol string (ΛQE(k)); and
multiplying the second intermediate-frequency-reduced information word (SIF-Q(k)) with a modified code vector (CVM-L(k)) starting at a position indicated by the late pointer (PL) to produce a second late-despread symbol string (ΛQL(k)).
21. A method according to claim 20, wherein said tracking involves deriving, for each despread symbol string, a resulting data word (DR-Ip(k), DR-IE(k), DR-IL(k), DR-Qp(k), DR-QE(k); DR-QL(k)).
22. A method according to claim 21 wherein said deriving comprises deriving the resulting data words (DR-Ip(k), DR-IE(k), DR-IL(k), DR-Qp(k), DR-QE(k); DR-QL(k)) by looking up a respective pre-generated value in a table.
23. A method according to claim 19, wherein multiplying comprises performing the multiplication between the data word (d(k)) and the in-phase representation (fIFI) of the carrier-frequency-phase candidate vector (V(fIF-C, φC)) respective between the data work (d(k)) and the quadrature-phase representation (fIFQ) of the carrier frequency-phase candidate vector (V(fIF-C, φC)) by means of at least one of a SIMD-operation (multiple-bits multiplications) and an XOR-operation (1-bit multiplications).
24. A method according to claim 19, wherein multiplying comprises performing the multiplication between the intermediate-frequency-reduced information words (SIF-I(k); SIF-Q(k)) and the modified code vectors (CVm-p, CVm-E; CVm-L) by means of at least one of a SIMD-operation (multiple-bits multiplications) and an XOR-operation (1-bit multiplications).
25. A method according to claim 19 further comprising propagating, in connection with completing the processing of a current data word (d(k)) and initiating the processing of a subsequent data word (d(k+1)):
a pointer (Pd) indicating a first sample value of the subsequent data word (d(k+1));
a group of parameters describing the relevant set of carrier frequency-phase candidate vectors (V(fIF-C, φC));
the relevant set of code vectors (CVm); and
prompt-, early-, and late pointers (PP, PE, PL).
26. A computer program directly loadable into the internal memory of a computer, comprising software for controlling the steps of claim 1 when said program is run on the computer.
27. A computer readable medium, having a program recorded thereon, where the program is to make a computer control the steps of claim 1.
28. A signal receiver for receiving navigation data signals transmitted in a navigation satellite system comprising:
a radio front end unit adapted to receive a continuous radio signal (SHF) and in response thereto produce a corresponding electrical signal (SIF) comparatively high frequency;
an interface unit adapted to receive the electrical signal (SIF) and in response thereto produce a sequence of sample values being divided into data words (d(k));
a digital processor unit adapted to receive the data words (d(k)) and in response thereto demodulate a data signal and including a memory means; and
a computer program according to claim 16 is loaded in the memory means.
29. A software receiver comprising:
a receiver capable of receiving a radio signal;
means for digitizing the radio signal; and
a software correlator capable of mixing the digitized radio signal to form a baseband signal using bit-wise parallelism.
30. The software receiver of claim 29 wherein said software correlator comprises:
means for computing correlations between the baseband signal and at least one pseudo-random number (PRN) code using the bit-wise parallelism.
31. The software receiver of claim 30 wherein said software correlator further comprises:
means for computing accumulations from the correlations using the bit-wise parallelism.
32. The software receiver of claim 31 further comprising:
application-specific code capable of computing navigation data using the accumulations.
33. The software receiver of claim 29 wherein said means for digitizing comprises:
means for down-converting the radio signal to an intermediate frequency; and
a digitizer capable of digitizing the intermediate frequency.
34. The software receiver of claim 33 wherein said digitizer produces at least one bit/sample.
35. The software receiver of claim 33 wherein said digitizer is an analog to digital converter.
US10/531,132 2002-10-15 2003-10-03 Spread spectrum signal processing Abandoned US20060013287A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/864,342 US8422601B2 (en) 2002-10-15 2007-09-28 Spread spectrum signal processing

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SE0203047A SE0203047D0 (en) 2002-10-15 2002-10-15 Spread spectrum signal processing
SE0203047.6 2002-10-15
PCT/SE2003/001544 WO2004036238A1 (en) 2002-10-15 2003-10-03 Spread spectrum signal processing

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/864,342 Continuation US8422601B2 (en) 2002-10-15 2007-09-28 Spread spectrum signal processing

Publications (1)

Publication Number Publication Date
US20060013287A1 true US20060013287A1 (en) 2006-01-19

Family

ID=20289273

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/531,132 Abandoned US20060013287A1 (en) 2002-10-15 2003-10-03 Spread spectrum signal processing
US11/864,342 Active 2027-04-04 US8422601B2 (en) 2002-10-15 2007-09-28 Spread spectrum signal processing

Family Applications After (1)

Application Number Title Priority Date Filing Date
US11/864,342 Active 2027-04-04 US8422601B2 (en) 2002-10-15 2007-09-28 Spread spectrum signal processing

Country Status (10)

Country Link
US (2) US20060013287A1 (en)
EP (2) EP1843167B1 (en)
JP (2) JP4921712B2 (en)
KR (1) KR101016928B1 (en)
CN (2) CN102109603A (en)
AT (1) ATE365926T1 (en)
AU (1) AU2003267903A1 (en)
DE (1) DE60314654T2 (en)
SE (1) SE0203047D0 (en)
WO (1) WO2004036238A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080095272A1 (en) * 2002-10-15 2008-04-24 Nordnav Technologies Ab Spread spectrum signal processing
US20080316926A1 (en) * 2007-06-22 2008-12-25 Microsoft Corporation Correlation-Based Rate Adaptation for Communication Networks
US20090304050A1 (en) * 2006-05-24 2009-12-10 Nokia Corporation Method in a CDMA Receiver Using Hardware and Software in Acquisition, Tracking and Hosting
US7961641B1 (en) * 2007-04-27 2011-06-14 Marvell International Ltd. Initial ranging power control algorithm for WiMAX mobile stations
US20160020821A1 (en) * 2014-07-21 2016-01-21 International Business Machines Corporation Correlating pseudonoise sequences in an simd processor
KR20190083294A (en) * 2018-01-03 2019-07-11 삼성전자주식회사 System and method for providing code modification for multipath improvement in gnss receivers
CN112649819A (en) * 2020-11-24 2021-04-13 中国科学院国家空间科学中心 High-dynamic spread spectrum signal capturing device and capturing method

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7010060B2 (en) 2003-01-10 2006-03-07 Cornell Research Foundation, Inc. Real-time software receiver
US7440493B2 (en) * 2004-12-29 2008-10-21 Nokia Corporation Multi-path detection method for CDMA receivers
EP1722487B1 (en) 2005-05-11 2011-07-06 Nordnav Technologies AB Spread spectrum correlator
US7498981B2 (en) * 2005-10-07 2009-03-03 The Charles Stark Draper Laboratory, Inc. Method and apparatus for real-time digital processing of satellite positional signals for fast acquisition and low SNR tracking
EP2066040A1 (en) * 2007-11-27 2009-06-03 Nemerix SA Multipath mitigation GNSS Receiver
DE602008005837D1 (en) 2008-02-20 2011-05-12 Cambridge Positioning Sys Ltd Processing of received satellite radio signals
FR2962227B1 (en) * 2010-07-01 2012-07-27 Inst Telecom Telecom Sudparis METHOD FOR REDUCING THE GLITENING OF A RECEIVER RECEIVING SIGNALS FROM TRANSMITTERS

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592173A (en) * 1994-07-18 1997-01-07 Trimble Navigation, Ltd GPS receiver having a low power standby mode
US5897605A (en) * 1996-03-15 1999-04-27 Sirf Technology, Inc. Spread spectrum receiver with fast signal reacquisition
US6407699B1 (en) * 2000-04-14 2002-06-18 Chun Yang Method and device for rapidly extracting time and frequency parameters from high dynamic direct sequence spread spectrum radio signals under interference
US20040213334A1 (en) * 2003-01-10 2004-10-28 Cornell Research Foundation, Inc. Real-time software receiver

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393046B1 (en) 1996-04-25 2002-05-21 Sirf Technology, Inc. Spread spectrum receiver with multi-bit correlator
EP0895599B1 (en) * 1996-04-25 2002-08-07 Sirf Technology, Inc. Spread spectrum receiver with multi-bit correlator
US5808582A (en) 1996-09-13 1998-09-15 Litton Consulting Group, Inc. Global positioning system receiver with improved multipath signal rejection
US6091785A (en) * 1997-09-25 2000-07-18 Trimble Navigation Limited Receiver having a memory based search for fast acquisition of a spread spectrum signal
US6366938B1 (en) * 1997-11-11 2002-04-02 Ericsson, Inc. Reduced power matched filter using precomputation
US6234799B1 (en) * 1998-04-06 2001-05-22 American Gnc Corporation Real-time IMU simulator
EP1054265A3 (en) 1999-05-10 2003-11-26 Sirius Communications N.V. Method and apparatus for software reconfigurable communication transmission/reception and navigation signal reception
US6400743B1 (en) * 1999-08-05 2002-06-04 Fuji Photo Film Co., Ltd. High-power semiconductor laser device having current confinement structure and index-guided structure
US6526322B1 (en) * 1999-12-16 2003-02-25 Sirf Technology, Inc. Shared memory architecture in GPS signal processing
US6839389B2 (en) * 2000-03-13 2005-01-04 Pri Research & Development Corp. Digital quadrature demodulation and decimation without multipliers
US6512803B2 (en) 2000-04-05 2003-01-28 Symmetricom, Inc. Global positioning system receiver capable of functioning in the presence of interference
EP1303766B1 (en) * 2000-06-27 2008-08-13 SiRF Technology, Inc. Combined parallel and sequential detection for gps signal acquisition
JP4820957B2 (en) * 2000-12-04 2011-11-24 モトローラ モビリティ インコーポレイテッド Receiver and method for compensating frequency error
AU2002228996A1 (en) 2000-12-20 2002-07-01 The Johns Hopkins University Gps receiver tracking system
US6535548B1 (en) * 2001-04-26 2003-03-18 Motorola, Inc. Mobile wireless communication devices for receiving spread spectrum signals and methods therefor
US6990140B2 (en) * 2001-05-17 2006-01-24 Trimble Navigation Limited Signal receiver using coherent integration in interleaved time periods for signal acquisition at low signal strength
US6775319B2 (en) * 2001-08-16 2004-08-10 Motorola, Inc. Spread spectrum receiver architectures and methods therefor
US6828935B1 (en) * 2002-07-19 2004-12-07 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Digitally synthesized phased antenna for multibeam global positioning
SE0203047D0 (en) * 2002-10-15 2002-10-15 Nordnav Technologies Ab Spread spectrum signal processing
DE602008005837D1 (en) * 2008-02-20 2011-05-12 Cambridge Positioning Sys Ltd Processing of received satellite radio signals

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592173A (en) * 1994-07-18 1997-01-07 Trimble Navigation, Ltd GPS receiver having a low power standby mode
US5897605A (en) * 1996-03-15 1999-04-27 Sirf Technology, Inc. Spread spectrum receiver with fast signal reacquisition
US6407699B1 (en) * 2000-04-14 2002-06-18 Chun Yang Method and device for rapidly extracting time and frequency parameters from high dynamic direct sequence spread spectrum radio signals under interference
US20040213334A1 (en) * 2003-01-10 2004-10-28 Cornell Research Foundation, Inc. Real-time software receiver

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080095272A1 (en) * 2002-10-15 2008-04-24 Nordnav Technologies Ab Spread spectrum signal processing
US8422601B2 (en) * 2002-10-15 2013-04-16 Nordnav Technologies Ab Spread spectrum signal processing
US20090304050A1 (en) * 2006-05-24 2009-12-10 Nokia Corporation Method in a CDMA Receiver Using Hardware and Software in Acquisition, Tracking and Hosting
US8964812B2 (en) * 2006-05-24 2015-02-24 Nokia Corporation Method in a CDMA receiver using hardware and software in acquisition, tracking and hosting
US7961641B1 (en) * 2007-04-27 2011-06-14 Marvell International Ltd. Initial ranging power control algorithm for WiMAX mobile stations
US20080316926A1 (en) * 2007-06-22 2008-12-25 Microsoft Corporation Correlation-Based Rate Adaptation for Communication Networks
US8102765B2 (en) * 2007-06-22 2012-01-24 Microsoft Corporation Correlation-based rate adaptation for communication networks
US20160020821A1 (en) * 2014-07-21 2016-01-21 International Business Machines Corporation Correlating pseudonoise sequences in an simd processor
US9584178B2 (en) * 2014-07-21 2017-02-28 International Business Machines Corporation Correlating pseudonoise sequences in an SIMD processor
KR20190083294A (en) * 2018-01-03 2019-07-11 삼성전자주식회사 System and method for providing code modification for multipath improvement in gnss receivers
KR102628084B1 (en) 2018-01-03 2024-01-22 삼성전자주식회사 System and method for providing code modification for multipath improvement in gnss receivers
CN112649819A (en) * 2020-11-24 2021-04-13 中国科学院国家空间科学中心 High-dynamic spread spectrum signal capturing device and capturing method

Also Published As

Publication number Publication date
JP4921712B2 (en) 2012-04-25
DE60314654T2 (en) 2008-02-28
CN102109603A (en) 2011-06-29
US20080095272A1 (en) 2008-04-24
CN1705893B (en) 2011-03-16
EP1843167B1 (en) 2017-11-15
EP1554599B1 (en) 2007-06-27
ATE365926T1 (en) 2007-07-15
DE60314654D1 (en) 2007-08-09
EP1843167A1 (en) 2007-10-10
SE0203047D0 (en) 2002-10-15
EP1554599A1 (en) 2005-07-20
AU2003267903A1 (en) 2004-05-04
JP2006503494A (en) 2006-01-26
WO2004036238A1 (en) 2004-04-29
US8422601B2 (en) 2013-04-16
KR20050053778A (en) 2005-06-08
KR101016928B1 (en) 2011-02-25
JP2010028875A (en) 2010-02-04
CN1705893A (en) 2005-12-07

Similar Documents

Publication Publication Date Title
US8422601B2 (en) Spread spectrum signal processing
EP1722487B1 (en) Spread spectrum correlator
US8351486B2 (en) Parallel correlator implementation using hybrid correlation in spread-spectrum communication
US20070024499A1 (en) Method of Cross-Correlation and Continuous Wave Interference Suppression for GPS Signal and Associated GPS Receiver
US7630430B2 (en) Method and apparatus for accelerating correlation processing of GPS signal
CN1303483A (en) Fast acquisition, high sensitivity GPS receiver
JP2005500731A (en) Spread spectrum receiver architecture and method
CN108897009B (en) BOC navigation signal receiver and code tracking method thereof
Tamazin et al. Robust fine acquisition algorithm for GPS receiver with limited resources
Manandhar et al. GPS signal acquisition and tracking-An Approach towards development of Software-based GPS Receiver
US7558312B2 (en) Parallel correlator implementation using block integration for spread-spectrum communication
KR102028118B1 (en) Method and apparatus for efficiently combining satellite navigation signals
JPH04232485A (en) Receiver of broad-area position measuring system
JP4805930B2 (en) Apparatus, method and computer program for signal collection using a common demodulation template
KR20110067908A (en) Apparatus for generating satellite navigation signal
JP2006217601A (en) Method for acquiring positioning signal of geographic localization system, receiver for geographic localization system and computer data carrier comprising program instruction for carrying out the method
KR101088536B1 (en) A method of correlating a sampled direct sequence spread spectrum signal with a locally provided replica
Sivani et al. Development of Acquisition Module for a Software Based IRNSS Receiver
KR100808922B1 (en) Method and Apparatus for Fast Signal Acquisition in Receiver
Dovis et al. Fully Software Implementations for Galileo Receiver
Ramachandran A GPS software receiver implementation on open-source platforms using USRP RF front-end
CN112764064A (en) Method and device for realizing pretreatment
Vulugundam et al. IMPLEMENTATION OF ACQUISITION ALOGORITHM FOR GLONASS SOFTWARE RECEIVER
JP2005031072A (en) Search method of gps correlated peak signal and system therefor

Legal Events

Date Code Title Description
AS Assignment

Owner name: NORDNAV TECHNOLOGIES AB, SWEDEN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:NORMARK, PER-LUDVIG;STAHLBERG, CHRISTIAN;REEL/FRAME:016980/0310

Effective date: 20050315

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION