Spread spectrum signal processing
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.
Claims
exact text as granted — not AI-modified1 . A method of processing spread spectrum signals comprising:
receiving a continuous signal (S IF ) of a comparatively high frequency; sampling the continuous signal (S IF ) at a basic sampling rate (r s ), whereby a resulting sequence of time discrete signal samples (S[s i ]) 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 (s 1 , . . . , S n ); 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 (S IF ), a multitude of code vectors (CV; CV m ) 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 (CV m-E , CV m-P ; CV m-L ) of the code vectors (CV; CV m ) with at least one vector (S IF-I (k); S IF-Q (k)) derived from the data word (d(k)).
2 . A method according to claim 1 , wherein each code vector (CV; CV m ) represents a particular signal source specific code sequence (CS(i)) being sampled at the basic sampling rate (r s ) and quantized with the quantizing process being used to produce the level-discrete sample values (S 1 , . . . , S n ).
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 (S HF ) to an intermediate frequency signal (S IF ), the high-frequency signal (S HF ) having a spectrum which is symmetric around a first frequency (f HF ) and the intermediate frequency signal (S IF ) having a spectrum which is symmetric around a second frequency (f IF ) being considerably lower than the first frequency (f HF ).
5 . A method according to claim 4 , further comprising the steps of:
determining a maximum frequency variation (f D ) of the second frequency (f IF ) due to Doppler-effects; defining a Doppler frequency interval (f IF-min −f IF-max ) around the second frequency (f IF ), the Doppler frequency interval (f IF-min , f IF-max ) having a lowest frequency limit (f IF-min ) equal to the difference between the second frequency (f IF ) and the maximum frequency variation (f D ), and a highest frequency limit (f IF-max ) equal to the sum of the second frequency (f IF ) and the maximum frequency variation (f D ); dividing the Doppler frequency interval (f IF-min −f IF-max ) into an integer number of equidistant (Δf) frequency steps (f IF-min , f IF-min +Δf, . . . , f IF-max ); and defining a frequency candidate vector (f IF-C ) for each frequency step (f IF-min , f IF-min +Δf, . . . , f IF-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 (f IF-C ), and defining a carrier frequency-phase candidate vector (V fφ (f IF-C , φ C )) for each combination of carrier frequency candidate vector (f IF-C ) and initial phase position (φ 0 , . . . , φ 7 ).
7 . A method according to claim 6 further comprising the steps of:
determining the number of elements (s n ) in each carrier frequency-phase candidate vector (V fφ (f IF-C , φ C )); and storing the carrier frequency-phase candidate vector (V fφ (f IF-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 fφ (f IF-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 fφ (f IF-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 fφ (f IF-C , φ C )) and one of the at least one vector (S IF-I (k); S IF-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 (CR C-min −CR c-max ) around a center code rate (CR c ), the Doppler frequency interval having a lowest code rate limit (CR c-min ) equal to the difference between the center code rate (CR c ) and the maximum code rate variation (CR D ), and a highest frequency limit (CR c-max ) equal to the sum of the center code rate (CR c ) and the maximum code rate variation (CR D ); dividing the Doppler rate interval (CR C-min −CR C-max ) into an integer number of equidistant (ΔCR) code rate steps (CR C-min , CR C-min +ΔCR, . . . , CR c-max ); and defining a code rate candidate (CR c-c ) for each code rate step (CR C-min , CR C-min +ΔCR, . . . , CR c-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 (CR c-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 (CR c-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 (r s ) whereby a corresponding code vector (CV) is produced.
13 . A method according to claim 1 further comprising generating a modified code vector (CV m ) on basis of each code vector (CV) by:
copying a particular number of elements (E e ) from the end of an original code vector (CV) to the beginning of the modified code vector (CV m ); and copying the particular number of elements (E b ) from the beginning of the original code vector (CV) to the end of the code vector (CV m ).
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 ({CV m (CR c-c , Cph)}), where
each modified code vector (CV m ) contains a number of elements (s 1 , . . . , s m ) representing a sampled version of at least one full code sequence (CS), a particular modified code vector (CV m ) is defined for each combination of code rate candidate (CR c-c ) and code phase position (Cph).
15 . A method according to claim 14 further comprising adapting the data format of the modified code vectors (CV m ) with respect to the data format of the at least one vector (S IF-I (k); S IF-Q (k)) derived from the data word (d(k)), such that a modified code vector (CV m ) and one of the at least one vector (S IF-I (k); S IF-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 (CV m ), a carrier frequency candidate vector (f IF-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 (CV m ).
17 . A method according to claim 16 wherein said tracking involves:
calculating, based on the tracking characteristics, a prompt pointer (P p ) for each modified code vector (CV m ), the prompt pointer (P p ) indicating a code sequence start position, and an initial prompt pointer (P p ) being equal to the code index (CI): and assigning, around each prompt pointer (P p ), at least one pair of early- and late pointers (P E , P L ; P E1 , P L1 P E2 , P L2 ), 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.
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 (S n ) in each carrier frequency-phase candidate vector (V fφ (f IF-C , φ C )); calculating a relevant set of carrier frequency-phase candidate vectors (V fφ (f IF-C , φ C )) for the data word (d(k)); and acquiring, for each carrier frequency-phase candidate vector (V fφ (f IF-C , φ C )) in the relevant set, 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.
19 . A method according to claim 18 , wherein said tracking involves:
multiplying each data word (d(k)) with the in-phase representation (f IFI ) of the carrier frequency-phase candidate vector (V fφ (f IF-C , φ C )), in the relevant set to produce a first intermediate-frequency-reduced information word (S IF-I (k)), multiplying each data word (d(k)) with the quadrature-phase representation (f IFQ ) of the carrier frequency-phase candidate vector (V fφ (f IF-C , φ C )) in the relevant set to produce a second intermediate-frequency-reduced information word (S IF-Q (k)).
20 . A method according to claim 19 , wherein said tracking involves:
multiplying the first intermediate-frequency-reduced information word (S IF-I (k)) with a modified code vector (CV m-p (k)) starting at a position indicated by the prompt pointer (P p ) to produce a first prompt-despread symbol string (Λ Ip (k)), multiplying the first intermediate-frequency-reduced information word (S IF-I (k)) with a modified code vector (CV m-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 (S IF-I (k)) with a modified code vector (CV m-L (k)) starting at a position indicated by a late pointer (P L ) to produce a first late-despread symbol string (Λ IL (k)); multiplying the second intermediate-frequency-reduced information word (S IF-Q (k)) with a modified code vector (CV m-p (k)) starting at a position indicated by the prompt pointer (P p ) to produce a second prompt-despread symbol string (Λ Qp (k)); multiplying the second intermediate-frequency-reduced information word (S IF-Q (k)) with a modified code vector (CV M-E (k)) starting at a position indicated by the early pointer (P E ) to produce a second early-despread symbol string (Λ QE (k)); and multiplying the second intermediate-frequency-reduced information word (S IF-Q (k)) with a modified code vector (CV M-L (k)) starting at a position indicated by the late pointer (P L ) 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 (D R-Ip (k), D R-IE (k), D R-IL (k), D R-Qp (k), D R-QE (k); D R-QL (k)).
22 . A method according to claim 21 wherein said deriving comprises deriving the resulting data words (D R-Ip (k), D R-IE (k), D R-IL (k), D R-Qp (k), D R-QE (k); D R-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 (f IFI ) of the carrier-frequency-phase candidate vector (V fφ (f IF-C , φ C )) respective between the data work (d(k)) and the quadrature-phase representation (f IFQ ) of the carrier frequency-phase candidate vector (V fφ (f IF-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 (S IF-I (k); S IF-Q (k)) and the modified code vectors (CV m-p , CV m-E ; CV m-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 (P d ) 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 fφ (f IF-C , φ C )); the relevant set of code vectors (CV m ); and prompt-, early-, and late pointers (P P , P E , P L ).
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 (S HF ) and in response thereto produce a corresponding electrical signal (S IF ) comparatively high frequency; an interface unit adapted to receive the electrical signal (S IF ) 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.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.