Sunteți pe pagina 1din 7

A Complex Channel Structure for Generic GNSS Signal Tracking

Th. Lueck, J. Winkel, M. Bodenbach IFEN GmbH, Germany, Poing

BIOGRAPHY Thorsten L uck studied Electrical Engineering at the Universities in Stuttgart and Bochum. He received a PhD (Dr.Ing.) from the University of the Federal Armed Forces in Munich in 2007 on INS/GNSS integration for rail applications. Since 2003 he is working for the IFEN GmbH in the receiver technology division as the head of R&D embedded systems. Winkel is head of receiver technology at IFEN J on O. GmbH since 2001. He studied physics at the universities in Hamburg and Regensburg. He received a PhD (Dr.-Ing.) from the University of the Federal Armed Forces in Munich in 2003 on GNSS modeling and simulations. Michael Bodenbach studied Communications Engineering at the University of Applied Sciences in Braunschweig/Wolfenb uttel. Since October 2003 he is working at IFEN GmbH in the receiver technology department focusing on hardware and FPGA development.

use of a composite BOC (CBOC) and AltBOC modulated signal. In addition, with GPS L2C a time division multiplex (TDM) between the L2C medium length and L2C long length spreading code is used, which generates the need to mask some portions of the received signal out of the correlation process, which otherwise would increase the noise level. This paper will summarize the different modulation techniques currently used or planned for satellite navigation signals. Based on this, their similarities and differences are analyzed with respect to the correlation process and the subsequent signal tracking. The objective of the paper is to dene a generic and efcient channel structure that is capable of tracking all known signal structures. Due to the large number of different modulation techniques of the current and future GNSS signals, several design variations of correlator channels are introduced and discussed. They can handle all of these different modulations, and switching between different signal structures is simply a matter of conguration. A trade-off in terms of implementation efciency is performed. Among the more interesting features introduced in those designs are the ability to track different sub-channels of the same carrier in one single channel. Simultaneous tracking of Galileo data and pilot channel is possible, as well as tracking pilot and data channel of GPS L2C in one single channel. Due to the complex structure, the same channel can also be used to correlate against the complex AltBOC modulated, wide band Galileo E5 signal. While the Galileo E1 and E6 spreading codes are based on optimized memory codes, especially the long code of the new GPS L2 civil signal with a length of 1.5 seconds or 767250 chips is far too big to be reasonably implemented as memory code. Therefore the complex channel also implements an interface to generated codes. This interface does not only allow to track generated codes like E5 (which can

ABSTRACT The modernization of existing and the implementation of new global and local navigation satellite systems introduce many new signals at different RF frequencies and modulations. Although the general structure of all these signals appears very different, it is still possible to dene a unied approach for signal acquisition and tracking. The present paper discusses a new structure for a hardware-based tracking channel to accommodate all various modulations currently available for GNSS signals. While the current GPS C/A code is simply a BPSK modulation, the up-coming GPS Block IIR-M and IIF, respectively will introduce a time multiplexed binary offset code (TMBOC) modulated signal. On the other hand Galileo makes

1.5 CBOC pilot 1 0.5 0 -0.5 -1 -1.5 -1 1.5 CBOC data 1 0.5 0 -0.5 -1 -1.5 -1 -0.5 0 0.5 1 -0.5 0 0.5 1

1.5 1 0.5 0 -0.5 -1 -1.5 1.5 1 0.5 0 -0.5 -1 -1.5

The signal on the Galileo E1 carrier of 1.57542 GHz according to OS SIS ICD [1], contains two linear signal components. In fact, there is another signal component on this carrier to realize the public regulated signal. However, for the purposes of this paper the Galileo L1 base band signal can be written as: 1 sE 1 (t) := (db (t)cb (t) scb (t) dc (t)cc (t) scc (t)) (1) 2 In the equation above cb (t) and cc (t) are the binary codes of the corresponding B- and C-components of the signal. The functions sc1 (t) represent the binary modulations for the CBOC B- and C-channels (gure 1). The data bit is denoted by db (t). The secondary code on the pilot channel is dened by dc (t). The CBOC digital subcarrier is dened by scb (t) scc (t) with scE 1,a scE 1,b and = 10 11 and = = 1 11 1.023M Hz = 6.138M Hz = = sign(sin(2fBOC (1,1) t)) sign(sin(2fBOC (6,1) t)) (4) (5) = = scE 1,a + scE 1,b scE 1,a scE 1,b (2) (3)

Fig. 1 CBOC: Weighted superposition of BOC(1,1) and BOC(6,1) however also be handled as memory code) or L2CL, but also to inject encrypted codes like Galileo public regulated service (PRS), encrypted commercial service (CS) or GPS P or W code for (semi-) code-less P-code tracking. Based on IFENs professional receiver series NavX-RPS 1000, which was already deployed for Galileo payload and in orbit testing and also acts as the ground reference receiver for the German Galileo Test Environment (GATE), the complex channel is implemented in FPGAs which are used for signal correlating. Tests based on simulated signals as well as on signal in space are presented.

INTRODUCTION Current wide spread navigation systems for personal navigation use or car navigation only know GPS. However, there is a broad spectrum of upcoming or even available signals, that have a more complex signal structure as a simple binary phase shift keying (BPSK). Recently designed signals are time multiplexed (e.g. GPS L2C), time multiplexed binary offset code modulated (TMBOC) or composite signals like Galileo CBOC and AltBOC.

fBOC (1,1) fBOC (6,1)

On the E6 carrier of 1.278750 GHz, a similar signal as on E1 is transmitted however without subcarrier modulation: 1 sE 6 (t) := (db (t)cb (t) dc (t)cc (t)) 2 (6)

SIGNAL DEFINITIONS From the Galileo signal denition, all signals transmitted own at least a data bearing signal and a dataless pilot signal. While the signals on E1 and E6 are composed in anti-phase binary phase shift keying (BPSK) with (E1) or without (E6) binary subcarrier (binary offset carrier, BOC), the data and pilot on E5a and E5b each are composed in quadrature phase shift keying (QPSK). In fact, E5a and E5b are generated coherently on the E5 carrier using a 8-PSK or - equivalently - AltBOC modulation.

Again, cb (t) and cc (t) are the (encrypted) binary codes of the corresponding B- and C-components of the signal while the data bit is denoted by db (t) and the secondary code by dc (t). Please note, that in addition to the signal in equation (6), the PRS signal is modulated on the same carrier. The most challenging signal of Galileo however is the E5 signal, modulating four different binary codes using the AltBOC modulation:
sE5 (t)
1 ( = 2 2

(eE5a-I (t)+jeE5a-Q (t))[scE5-S (t)j scE5-S (tTs,E5 /4)]+ (eE5b-I (t)+jeE5b-Q (t))[scE5-S (t)+j scE5-S (tTs,E5 /4)]+ ( eE5a-I (t)+j e E5a-Q (t))[scE5-P (t)j scE5-P (tTs,E5 /4)]+ ( eE5b-I (t)+j e E5b-Q (t))[scE5-P (t)+j scE5-P (tTs,E5 /4)])

(7)

Using the same notation as in [1], eE5a-I (t) and eE5b-I (t) denote the two data channels whereas eE5a-Q (t) and eE5b-Q (t) represent the two pilot channels. The dashed signal components e E5x-Y represent product signals and are owed to the constant envelope character of the complete signal. The sub-carrier functions are represented by scE5-S for the single signals and scE5-P for the product signals. Following [1], the subcarrier for the single signals is a four-valued approximation of the cosine function. For the purpose of this paper, the subcarrier can be considered as pure binary (sign of cosine function) or real cosine function depending on doing AltBOC demodulation or side band tracking. In this context, it is worth to say, that the AltBOC modulation allows to acquire and track the E5a and E5b signals as two separate sidebands; in this way, data and pilot channel of either E5a or E5b can be treated as QPSK modulation on the E5a or E5b sideband carrier of 1.17645 GHz or 1.20714 GHz respectively. The product signals carry no useful information and can thus be neglected. This way, the E5 signal sE 5 (t) can be written as 1 sE5 (t) = ( 2 2 (eE5a-I + eE5b-I )sccos + j (eE5b-I eE5a-I )scsin (eE5a-Q eE5b-Q )scsin + j (eE5a-Q + eE5b-Q )sccos ) (8) or - when decomposed to its real and imaginary components - as 1 sE5 (t) = ( 2 2 ((eE5a-I + eE5b-I )sccos + (eE5a-Q eE5b-Q )scsin ) +j ((eE5a-Q + eE5b-Q )sccos + (eE5b-I eE5a-I )scsin ) ) (9) with sccos (t) scsin (t) = = scE5-S (t) scE5-S (t Ts,E5 /4) with

25 % Power Data Channel

75 % Power Pilot Channel

Fig. 2 Time multiplex of BOC(1,1) and BOC(6,1) component on pilot as proposed for GPS L1-C or less complex GNSS signals. Beginning with Block IIRM, several new signals on the GPS payload are introduced. From these, for the intention of this paper, the TMBOC and L2CS signals are of more interest. TMBOC is the GPS counterpart of Galileo L1 CBOC. While CBOC uses a weighted superposition of BOC(1,1) and BOC(6,1), TMBOC uses time multiplex to induce a BOC(6,1) signal on the pilot signal: 1 sL1C (t) = eL1C-I (t)dL1C-I (t)x(t) 2 + eL1C-Q (t) TMBOC(6, 1, 4/33) (10)

TMBOC(6, 1, 4/33) =

x(t) if y (t) if

t S1 t S2

(11)

and x(t) being a BOC(1,1) subcarrier transmitted during S1 and y (t) being a BOC(6,1) subcarrier transmitted during S1 S2 , where S = 29 4 (gure 2) [2]. 2 The GPS L2CS signal as dened in [4] is a time multiplexed signal of the medium length (20ms) L2-CM code and the 1.5 second long L2-CL code. Both codes are submitted at 511.5e3 chips per second leading to a combined chip rate of 1.023e6 cps. While the chip length of the L2CM code with 10230 chip is similar to the Galileo E5 codes and can be handled by memory, the 767250 chip long L2CL code must be generated.

Several publications already proposed mechanisms to track the AltBOC pilot channel or to demodulate the F/NAV or I/NAV navigation message carried by E5a-I and E5b-I respectively [3, 6]. However, they do not consider the different secondary codes on the pilot channels. In the subsequent sections, an appropriate channel structure will be presented which can also handle these secondary codes. However, beneath the so far given signal denitions for Galileo, we will proceed with the denitions of other more

GENERAL COMPLEX CHANNEL ARCHITECTURE This section starts with an overview of the proposed generic, complex channel architecture. How this structure is used to track the different complex GNSS signals is shown in subsequent sections. The basic idea for the proposed channel structure is, to track both - pilot and data channel - coherently in one hardware channel and doing so for all complex GNSS signals.

Number of N I /Q correlators Code memory 2


D

Number of N I /Q correlators Code 1 + Code 2


S1 S2 C ENB

Code memory 2
S1 S2

Multiplexer

Multiplexer D

Code memory 1 Code NCO Chip resolution Code bits Source select register

ENB

Code memory 1 Code NCO Chip Code resolution bits

Code 1 Code 2

Source select register Correlation Correlation Sub modulationmask 1


S1 Multiplexer D

Sub modulationmask 1
S1

Multiplexer D

Integrate & Dump

Integrate & Dump

Sub modulationmask 2

S2 C ENB

Sub modulationmask 2

S2 C ENB

Multiplexer

Modulationmask select register

Modulationmask select register

S1 S2 C ENB

Sampled Input

Carrier wipe off

I data Q data

Sampled Data

Carrier wipe off

I data Q data

Carrier NCO

Cycle counter

Carrier NCO

Cycle counter

Fig. 3 Complex Channel Structure In this context, even the AltBOC pilot channel shall be tracked using the same receiver channel: instead of tracking data and pilot, here both pilot channels will be tracked coherently. In general the generic channel consists of at least one CodeNCO, one Carrier-NCO, a number of L so-called submodulation masks, a number of M primary code memories and and a number of N complex correlators as shown in gure 3. The upper bits of the Code-NCO are used to address the reference bit in the code memory while the lower bits dene the chip resolution of the Code-NCO. The Carrier-NCO is used for carrier wipe-off, addressing a sine- or cosine lookup table. The width of the CarrierNCO is chosen such to enable down-conversion of the E5a or E5b side band signal to base band in one step for side band tracking. The reference bit is masked with the subcarrier modulation mask. This enables to generate the local replica with a binary offset carrier. As the subcarrier modulation mask supports 2 bits, not only the binary offset carrier but also a blanking is possible. This is essential for time multiplexed signals to prevent from correlating noise into the accumulator during submission of the other time multiplexed signal component. The more or less trivial product of reference chip and subcarrier modulation mask (masked reference chip, see above) is fed to the complex correlator as two bits, where the real and imaginary sample is multiplied and accumulated. The end of correlation is signaled by the wrap-logic of the Code-NCO and causes the correlation value to be transmitted to a latch register, before the accumulator is reset to zero. While typically the subcarrier modulation mask is constant over the integration time, for the TMBOC signal (GPS L1C), a switching logic must be available to switch between the BOC(1,1) and BOC(6,1) subcarrier modulation mask. This is performed by a simple Modulation Mask Multiplex Register, that if enabled switches between two subcarrier modulation masks on a dened pattern. The length of this register is therefore dened by the length of

Fig. 4 Complex Channel Structure with time-multiplex and code algorithmic the periodic BOC(1,1)/BOC(6,1) pattern (gure 4). For maximum degree of freedom, each complex correlator can be assigned to any of the subcarrier modulation mask register, code memory and modulation mask multiplex register. With a minimum of two subcarrier modulation mask register, two code memories and one multiplex register the (as of now) complete signal spectrum of modern GNSS signals can be tracked as demonstrated below.

Tracking CBOC and MBOC Galileo CBOC and GPS MBOC both have the same spectrum, however the generation of the signal is different: GPS CBOC makes use of time multiplex to inject a BOC(6,1) subcarrier modulation while Galileo uses weighted superposition. Therefore the optimal tracking strategy is different too. To track the signal the best strategy therefore is to generate the local replica in exact the same way as the payload does. For TMBOC this means a time multiplexed version of the local replica with BOC(1,1) and BOC(6,1) sections, while the best performance for CBOC is to reproduce the weighted superposition. As a generation of the weighted superposition is not feasible with acceptable complexity, this would mean additional correlators for each tracking point - one complex correlator correlating against the BOC(1,1) signal and another pair correlating against the BOC(6,1) signal component. Also possible but with degraded signal performance the correlation against a time multiplexed replica as used for TMBOC is feasible. The proposed channel structure allows any of the mentioned implementations to track the TMBOC signal. Time Multiplex is achieved by assigning the time multiplex register as well as two subcarrier modulation register to any desired correlator. Beginning with the start

Number of N I /Q correlators Code GAL L 1-C


S1 S2 C ENB

Number of N I /Q correlators

Multiplexer D

Code GAL L 1-C


S1 S2

Multiplexer D

Code GAL L 1-B Code NCO Chip Code resolution bits Source select register

Code GAL L 1-B Code NCO Chip Code resolution bits Source select register
Correlation

ENB

Correlation Sub modulationmask 1 BOC(1,1) Sub modulationmask 2 BOC(6,1)


Multiplexer S1 S2 C ENB D

Sub modulationmask 1 BOC(1,1) Sub modulationmask 2 BOC(6,1)


Multiplexer

Multiplexer S1 S2 C ENB D

Integrate & Dump

Integrate & Dump

Modulationmask select register 4/33

S1 S2 C ENB

Modulationmask select register

Sampled Input

Carrier wipe off

I data Q data

Sampled Input

Carrier wipe off

I data Q data

Carrier NCO

Cycle counter

Carrier NCO

Cycle counter

Fig. 5 Tracking Galileo L1 / GPS L1-C with time multiplex of the rst chip of the primary code, the multiplex register is circularly shifted. The state of the current rst bit denes whether to apply the rst or second subcarrier modulation register. The length of the multiplex register then denes the length of the multiplex sequence and the possible relations between subcarrier one and subcarrier two (e.g. 33 bit length with 4/33 BOC(6,1) and 29/33 BOC(1,1) for TMBOC) (gure 5). Weighted Superposition can be realized by assigning two correlator at the same position with the same reference code (code memory) but different subcarrier modulation register. This way, one correlator can correlate against the BOC(1,1) component while another correlator correlates against the BOC(6,1) component. The weighted superposition can then be processed on the integrated signal by the subsequent processing steps typically in software. While this approach promises the best performance, it requires the highest complexity, as for each tracking point two correlators are required, thus six correlators for early, prompt and late for each, data and pilot channel and at least one or two additional correlators to implement the bump jump algorithm (gure 6). Suboptimal tracking for CBOC can be implemented by choosing a subset of the correlators as dened before, e.g. by using a BOC(1,1) conguration for the prompt correlator and a BOC(6,1) conguration for early and late correlators. In addition instead of using pure BOC(6,1) conguration for early-late, a time multiplexed conguration may be used [5].

Fig. 6 Tracking Galileo L1 without time multiplex


Number of N I /Q correlators Code GAL E5a-Q Code GAL E5b-Q Code NCO Chip Code resolution bits Source select register Correlatio n
Multiplexer S1 S2 C ENB D

Code 1 + Code 2
S1 S2

Multiplexer D

Code 1 Code 2

ENB

Sub modulationmask 1 BOCc(15,10) Sub modulationmask 2 BOCs (15,10)


Multiplexer

Integrate & Dump

Modulationmask select register

S1 S2 C ENB

Sampled Input

Carrier wipe off

I data Q data

Carrier NCO

Cycle counter

Fig. 7 Tracking Galileo AltBOC code of the pilot channels - modulated with cosine and sine binary subcarrier respectively - can be used as local replica. However, this will lead to a multilevel code with values [2, 0, 2]. On the other hand, due to the different secondary codes on E5a-Q and E5b-Q, the complete 100ms code sequence will have to be available in the hardware and will have to be searched for acquisition. Therefore, it seems to be better to either correlate against both - sum and difference both modulated with sine and cosine subcarrier, or to correlate against each individual pilot code, each modulated again with sine and cosine subcarrier. The decision, which value to take into account or which operation to perform on the integrated values can then be performed by subsequent base band processing in software. In any case, four correlators are necessary to perform this operation per tracking point, leading to 12 correlators for early-prompt-late, neglecting any necessary sidelobe detectors (bump jumper). However, as soon as tracking is established and the secondary code phase is known, the correct sign of the combined secondary code can be predicted and thus only half of the correlators are needed. In this case, six correlators are

AltBOC tracking For tracking of the AltBOC pilot channel, according to equation (8) either the sum and difference of the primary

Number of N I /Q correlators Code Generator Code GPS L2CL Code GPS L2CM Code NCO Chip resolution Code bits Source select register Correlation Sub modulationmask 1 BOC(1,1) Sub modulationmask 2 BOC(6,1)
Multiplexer S1 S2 C ENB D

Number of N I /Q correlators AES AES Engine Engine


D

Multiplexer S1 S2 C ENB

Code GAL E6-B Code GAL E6-C

E6-B xor Cypher


S1 S2

Multiplexer D

E6-C xor Cypher

ENB

Code NCO Chip resolution

Code bits Source select register Correlation Sub modulationmask 1


S1 Multiplexer D

Integrate & Dump

Integrate & Dump

Sub modulationmask 2

S2 C ENB

Multiplexer

Modulationmask select register

Modulationmask select register

S1 S2 C ENB

Sampled Input

Carrier wipe off

I data Q data

Sampled Input

Carrier wipe off

I data Q data

Carrier NCO

Cycle counter

Carrier NCO

Cycle counter

Fig. 8 Tracking time-multiplexed signal (e.g. L2C) enough for tracking and another four for sidelobe detection, leading to ten correlators to track the entire AltBOC pilot.

Fig. 9 Tracking encrypted signal (Galileo CS) gure 8). Thus all subsequent processing steps (subcarrier modulation, time multiplex, etc.) stay the same as the code is read from memory allowing the same channel to be used for memory as well as for generated codes. However, now the code is not constant any more but cyclic overwritten by the code generator. The correlation time in hardware is dened by the used address range of the memory. Long coherent integration must be performed by subsequent software modules. This way also an external generated, eventually classied code (like Galileo public regulated service, PRS) can be injected into the process ow for correlation, given that the external code generator is clocked by a Code NCO derived clock. Another use of the algorithmic unit as used for AltBOC (green block in gure 7) is to xor a cypher bit with the primary code from the code memory. With the cypher engine clocked by the Code NCO, an encrypted spreading code can be generated to correlate against the encrypted Galileo commercial service (CS) signal.

L2CS tracking The easiest way for a one-bit channel to track a time multiplexed signal is to double the length of each chip. However, during the second half of each doubled chip, the correlator will correlate signal where no signal is available - thus doubling noise. By implementing a 2 bit reference input for the correlator, a zero value becomes valid, where no energy is accumulated in the correlator. Due to the 2-bit subcarrier modulation mask, this mask can also be used to blank the second half of the chip to zero. As two code memories and two subcarrier modulation masks are available in the proposed channel, any one correlator can be assigned to one code memory and a subcarrier modulation mask blanking the second half, and any other correlator can be assigned to the other code memory and a subcarrier modulation mask blanking the rst half, this way allowing to track both - data and pilot channel of L2-CS within one channel. While the integration time of the correlator must be chosen to be less or equal one data bit of the navigation message, the pilot signal can be coherently accumulated over longer time periods using coherent software accumulation.

CONCLUSION The presented channel structure allows to acquire and track all current and (up to now known) future GNSS signals. Especially the combined (data and pilot) signals are supported, regardless of their modulation: Colinear phase multiplexed signals Galileo OS (E1, CBOC) Galileo CS (E6) Time multiplexed signals GPS TMBOC GPS L2-CS Multiphase wide-band signals AltBOC

TRACKING OF LONG CODES The proposed complex channel primarily supports memory based codes. However, memory is limited at least in congurable hardware or ASICs. Code length of more than 16kBit thus are hardly feasible. To encounter this drawback, a code generator for longer codes must be used. The code generator - clocked by the Code NCO - can generate each chip writing it to the memory address as addressed by the Code NCO (Code bit, see

The combination of code memory and sub-carrier modulation can be individually assigned to each correlator as well as the use of an algorithmic combination of codes or code and external signal (cypher bit) and a time-multiplex of subcarrier modulation. Thus the same hardware structure can be used for all hardware channels and individually congured to perform the user dened tasks allowing great exibility with only minimal additional hardware effort with respect to a specialized channel, e.g. for TMBOC or AltBOC. Implemented in IFENs professional receiver, the presented channel structure was used to realize PRS capabilities with an external code generator as well as the ability to track the commercial service for the Galileo Payload Test System (PTS). Using the same underlying hardware structure, combined pilot and data channel tracking with CBOC as well as AltBOC tracking was demonstrated in IFENs latest receiver platform.

REFERENCES [1] Galileo Open Service. Technical Report Draft 1, ESA, February 2008. [2] Jos e-Angel Avila-Rodr guez, Stefan Wallner, G unther W. Hein, Jean-Luc Issler, A. R. Pratt, J. R. Owen, J. W. BGetz, C. J. Hegarty, Capt. S. Lenahan, J. J. Rushanan, A. L. Kraay, and T. A. Stansell. MBOC: The new optimized spreading modulation recommended for GALILEO L1 OS and GPS L1C. In Position, Location, And Navigation Symposium, 2006 IEEE/ION, pages 883892, San Diego, CA, USA, April 2006. The Institute of Navigation. [3] Neil Gerein. Hardware architecture for processing GALILEO alternate binary offset carrier (AltBOC) signals, July 2005. [4] GPS Joint Program Ofce. Interface Specication ISGPS-200, D edition, 7 March 2006. [5] Olivier Julien, C. Macabiau, Jos e-Angel AvilaRodr guez, Stefan Wallner, Matteo Paonni, Guenter W. Hein, Jean-Luc Issler, and Lionel Ries. On Potential CBOC/TMBOC Common Receiver Architectures. Forth Worth, Texas, September 2007. The Institute of Navigation. [6] Wim De Wilde, Jean-Marie Sleewaegen, and Gonzalo Seco Granados. Method and device for demodulating galileo alternate binary offset carrier (Alt-BOC) signals, February 2009.