Contenuto principale

Galileo Signals

This page provides a technical specification of the Galileo signal structure, including modulation schemes and spreading codes, frequency bands, and navigation message formats, as defined in the Galileo Open Service Signal-In-Space Interface Control Document (OS SIS ICD) [1] and Galileo High Accuracy Service (HAS) SIS ICD [2].

Galileo is a European global navigation satellite system (GNSS) that provides a highly accurate and global positioning service. Galileo is interoperable with the Global Positioning System (GPS) and Global Navigation Satellite System (GLONASS) systems. This means a single receiver can use signals from all three systems simultaneously to calculate your position more accurately and reliably. The fully deployed Galileo system consists of 24 operational satellites, and up to 6 active spares, positioned in 3 circular Medium Earth Orbit (MEO) planes, with an orbital altitude of 23,222 km.

Frequency Plan

All Galileo satellites continuously transmit three independent code-division multiple access (CDMA) signals: E1, E5, and E6. The E5 signal is subdivided into two signals: E5a and E5b. To ensure wide bandwidth for transmission, the Galileo satellites distribute these navigation signals across three main frequency bands.

  • E1 Band (1575.42 MHz) — Centered at the same frequency as GPS L1, this band carries the Open Service (OS) signals.

  • E5 Band (1191.795 MHz) — A wideband signal that is further divided into E5a (1176.45 MHz) and E5b (1207.14 MHz) sub-bands.

  • E6 Band (1278.75 MHz) — Reserved for HAS and encrypted Commercial Services.

This figure shows the Galileo frequency plan.

Signal Components

Each frequency band contains these signal components, dedicated to different services.

  • Data Channel — Carries the navigation message, which includes satellite orbits, clock corrections, and system status. The data channel modulates the ranging code with data bits.

  • Pilot Channel — Contains only the ranging codes, and does not carry data. Because the channel has no data bits to cause phase inversions, the receiver can perform much longer coherent integration, significantly increasing the signal-to-noise (SNR) ratio. Pilot channels are essential for robust tracking in challenging conditions.

Services

Galileo offers four primary high-performance services designed for distinct user needs: OS, HAS, Public Regulated Service (PRS), and Search and Rescue (SAR).

This table summarizes the services Galileo offers.

ServiceFrequency BandsKey Features
OSE1, E5a, E5bFree, interoperable with GPS. Provides positioning and timing.
HASE6Precise corrections for < 20 cm accuracy.
PRSE1, E6Encrypted for government and security use.
SAR
  • Forward Link for distress alert — Ultra high frequency (UHF) at 406.05 MHz and E1

  • Return Link for acknowledgement — C-band at 6GHz and E1

Global emergency beacon detection and feedback.

Galileo Modulation Schemes

Galileo uses advanced modulation schemes to optimize spectral efficiency and multipath resistance.

CBOC for E1 Signal

The E1 signal uses composite binary offset carrier (CBOC) modulation. This technique combines BOC(1,1) and BOC(6,1) subcarriers. The addition of the higher frequency BOC(6,1) subcarrier narrows the correlation peak, which significantly improves tracking precision and multipath mitigation compared to standard binary phase shift keying (BPSK) modulation used in legacy GPS signals.

Galileo satellites transmit ranging signals for the E1 signal with the chip rates and subcarrier rates defined in this table.

Signal ComponentSubcarrier TypeSymbol Rate (symbols/s)Ranging Code Chip Rate (Mega chips per second - Mcps)

E1-B

CBOC, in-phase

250

1.023

E1-C

CBOC, in-phase

No data

Pilot component

1.023

AltBOC for E5 signal

The Galileo E5 signal uses alternative binary offset carrier (AltBOC) modulation to multiplex the E5a and E5b components into a single, high-bandwidth transmission centered at 1191.795 MHz. By using a complex subcarrier, AltBOC achieves a total bandwidth of 51.15 MHz while maintaining a constant envelope, which optimizes transmitter efficiency. This modulation scheme provides significant flexibility for receiver design. A high-performance receiver can process the entire wideband signal to achieve superior code tracking accuracy and multipath mitigation. A lower-complexity receiver can treat the E5a and E5b sidebands as independent quadrature phase shift keying (QPSK) signals. These individual sidebands are centered at 1176.45 MHz and 1207.14 MHz, respectively, enabling the receiver to isolate specific navigation messages or frequency bands as needed.

Galileo satellites transmit ranging signals for the E5 signal with the chip rates and subcarrier rates defined in this table.

SignalComponentSymbol Rate (symbols/s)Ranging Code Chip Rate (Mcps)

E5a

I

50

10.230

Q

No data

Pilot component

10.230

E5b

I

250

10.230

Q

No data

Pilot component

10.230

BPSK for E6 Signal

The E6 signal uses BPSK modulation. This modulation provides a balanced power spectrum centered at 1278.75 MHz. Galileo satellites transmit ranging signals for the E6 signal with the chip rates and symbol rates defined in this table.

Signal ComponentSymbol Rate (symbols/s)Ranging Code Chip Rate (Mcps)

E6-B

1000

5.115

E6-C

No data

Pilot component

5.115

Galileo Spreading Codes

Galileo spreading codes are pseudorandom noise (PRN) sequences that enable a receiver to distinguish between satellites and measure the time it takes for a signal to arrive. Each satellite transmits a unique code that acts as a digital fingerprint. By correlating the received signal with a local replica of these codes, a receiver can identify the specific satellite the signal came from and calculate its distance, or pseudorange, from the satellite.

Galileo uses a tiered code construction for its spreading sequences. The tiered structure consists of a primary code and a secondary code. The primary code is a fast sequence of chips, whereas the secondary code is a slower sequence that modulates the primary code. This tiered approach enables fast signal acquisition. A receiver first searches for the shorter primary code, which reduces the initial search space for the hardware. Once it has locked the primary code, the receiver identifies the secondary code. This process establishes the start of the full navigation frame. The secondary code extends the total code period. Longer periods enable extended coherent integration time. This extra time improves signal sensitivity in weak environments and ensures a stable lock for long-period tracking. This dual-layer structure facilitates both speed and high precision.

  • Primary Codes — Fast-chipping sequences unique to each satellite (SVID). These codes define the basic ranging precision.

  • Secondary Codes — Slower codes used to modify successive repetitions of a primary code. Each secondary chip lasts for one full period of the primary code.

  • Combination — The two codes are multiplied together using an XOR operation. This means the secondary code flips the polarity of the entire primary code sequence for each of its bits.

This figure shows a primary code of length N and chip rate fc, and a secondary code of length NS and chip rate fcs = fc/N. The figure refers to a duration of N chips as primary code epoch. In logical representation, the secondary code chips are sequentially XORed with the primary code. The operation always applies one chip of the secondary code per period of the primary code.

This table lists the code lengths for each signal component.

Signal ComponentPrimary Code Length (chips)Primary Code Chip Rate fc (Mcps)Primary Code Block Duration (ms)Secondary Code Length (bits)Secondary code rate fcsTiered Code Period (ms)
E1-B (Data)40921.0234N/AN/A4
E1-C (Pilot)40921.023425250 chips/s100
E5a-I (Data)10,23010.231201 kilo baud20
E5a-Q (Pilot)10,23010.2311001 kilo baud100
E5b-I (Data)10,23010.23141 kilo baud4
E5b-Q (Pilot)10,23010.2311001 kilo baud100
E6-B (Data)5,1155.1151N/AN/A1
E6-C (Pilot)5,1155.11511001 kilo baud100

As a real world example, consider the Galileo E1-C signal. On the E1-C pilot channel, the primary code is 4,092 chips long and repeats every 4 ms. This is modulated by a 25-bit secondary code. The result is a total code period of 100 ms (25 ✕ 4 ms), providing high robustness without sacrificing the speed of the initial signal search.

For detailed information on the spreading code characteristics, see Galileo OS SIS ICD v2.1 section 3 in [1].

Galileo Message Format

Galileo uses three primary navigation message formats: integrity navigation message (I/NAV), freely accessible navigation message (F/NAV), and commercial navigation message (C/NAV). These messages contain essential data like satellite orbits and clock corrections. Each message type supports different signal bands and user requirements.

Message TypeSignal ComponentCoded Symbol Rate (bps)
F/NAVE5a-I50
I/NAVE5b-I and E1-B250
C/NAVE6-B1000

The complete navigation message data is transmitted on each data component as a sequence of frames. A frame consists of several subframes, and a subframe in turn consists of several pages. The page is the basic structure used to build the navigation message.

F/NAV Message

The E5a-I signal component transmits the F/NAV message. The F/NAV message uses a hierarchical format to organize the navigation data.

  • Frame — A complete F/NAV frame consists of 12 subframes, totaling 600 seconds (10 minutes).

  • Subframe — A subframe contains 5 pages and lasts 50 seconds.

  • Page — One F/NAV page consists of one word. At a transmission rate of 50 bits per second (bps), each page takes 10 seconds to broadcast.

  • Word — F/NAV word is the basic data unit that carries the actual navigation data. Each word contains 244 bits of payload, and consists of these parts, in order:

    • Page Type — A 6-bit field that identifies the page content.

    • Navigation Data — A 208-bit field that contains the navigation data such as, satellite vehicle identifier (SVID), clock correction, ionospheric correction, signal health, and ephemeris.

    • Cyclic Redundancy Check (CRC) — A 24-bit field used to detect potential bit errors.

    • Tail — A 6-bit field used to reset the forward error correction (FEC) decoder.

    The convolution encoder takes the 244‑bit F/NAV word as input and generates 488 encoded bits. The 12-bit sync bits are then added to the 488 encoded bits to form a 500-bit sequence, which forms a F/NAV page.

This figure represents the F/NAV message structure, and indicates the duration of each entity.

I/NAV Message

The E1-B and E5b-I signal components transmit the I/NAV message. The I/NAV message uses a hierarchical format to organize the navigation data.

  • Frame — A complete I/NAV frame consists of 24 subframes, totaling 720 seconds (12 minutes).

  • Subframe — A subframe contains 15 pages and lasts 30 seconds.

  • Page — The Galileo OS SIS ICD v2.1 standard [1] defines two types of I/NAV pages. Each page consists of two equal parts, where the first half is an even part and the second half is an odd part.

    • Nominal Page — Consists of one even and one odd part, 1 second each in duration. The E5b-I and E1-B components, each transmit one part over the same frequency, sequentially. Each page takes a total of 2 seconds to broadcast.

    • Alert Page — Consists of one even and one odd part, 1 second each in duration. The E5b-I and E1-B components each transmit one part over the same epoch, resulting in a total broadcast time of 1 second per page.

    Each page contains 10-bit sync field followed by a 240-symbol long I/NAV encoded page part, which can be the even or the odd part.

  • Page Part — Consists of 114-bit long uncoded page part which can be an even or odd part, followed by a 6-bit long tail. The convolution encoder takes the 120‑bit I/NAV word as input and generates 240 encoded bits. After encoding, append the 10 sync bits to the 240 encoded bits to form a 250‑bit sequence, which forms the I/NAV page.

This figure represents the I/NAV message structure, and indicates the duration of each entity.

C/NAV Message

The E6-B signal component transmits the C/NAV message for HAS. The C/NAV message uses a hierarchical format to organize the navigation data.

  • C/NAV Page — A C/NAV page contains 1000 symbols and lasts for exactly 1 second. These 1000 symbols consists of these components.

    • Preamble — A 16-symbol long preamble used for synchronization.

    • Data Payload — 984 encoded symbols, which translate to 492 uncoded bits per second.

  • Data Payload — This 492-bit data payload consists of these fields.

    • Header — A 14-bit long field.

    • HAS Page — A 448-bit field containing the core HAS information.

    • CRC and Tail — A 24-bit CRC to ensure data is error free, followed by a 6-bit Tail.

  • HAS Page — Each 448‑bit HAS page is composed of a 24‑bit HAS page header and a 424‑bit HAS encoded page field. Each page contains a complete set of corrections for a specific group of satellites.

    The HAS encoded pages are portions of the encoded HAS messages.

  • HAS Message — A complete HAS message contains corrections for dozens of satellites. A full HAS message is too large to fit into a single 1-second C/NAV page. The data is divided into several blocks, each fitting into the 448-bit HAS page data field of a single C/NAV page.

Galileo Signal Generation

This section explains the step-by-step process for creating Galileo E1 and E5 signals.

For an example, see Galileo Waveform Generation. Alternatively, you can use the galileoWaveformGenerator object to create all Galileo signals.

This plot shows the spectrum for the E1, E5, and E6 Galileo baseband signals.

Spectrum plot of all three Galileo baseband signals.

Generate E1 Signal

To generate a Galileo E1 waveform, you must use the E1-B and E1-C components, both located on the in-phase (I) branch.

  • E1-B component — Consists of I/NAV data transmitted at 250 bps. Each bit is 4 milliseconds long.

  • E1-C component — Contains no data and is a pilot signal.

  1. Generate the primary code for E1-B and E1-C, both at a frequency of 1.023 MHz, which results in 4092 chips per code block. Each code block has a 4 millisecond duration.

  2. Spread the I/NAV data with the E1-B primary code to produce spread symbols. Independently modulate these spread symbols using the BOC(1,1) and BOC(6,1) techniques. Form the E1-B waveform by linearly combining the binary offset carrier (BOC) modulated signals for E1-B with factors ɑ and β, at values of sqrt(10/11) and sqrt(1/11) respectively.

  3. For E1-C, use a secondary code at 250 chips per second, with each code block containing 25 chips. Spread the E1-C secondary code with the primary code to produce spread symbols. Independently modulate these spread symbols using the BOC(1,1) and BOC(6,1) techniques. Form the E1-C waveform by linearly combining the binary offset carrier (BOC) modulated signals for E1-C with factors ɑ and (values defined in step 2).

  4. Combine the E1-B and E1-C waveforms to produce the Galileo E1 waveform using this equation: E1 = (E1B - E1C)/√2.

Generate E5 Signal

To generate the Galileo E5 signal, with a center frequency of 1191.795 MHz, you must create F/NAV and I/NAV data in accordance with the Galileo standard [1]. The E5a component, with a center frequency of 1176.45 MHz, and the E5b component, with a center frequency of 1207.14 MHz, are complex baseband signals. To produce the E5 signal, you must combine them using AltBOC modulation. To generate an E5a signal, follow these steps.

  • The E5a signal consists of an in-phase component (E5aI) and a quadrature-phase (Q) component (E5aQ).

  • The chip rate of the primary ranging code for E5aI is 10.23 MHz and the code repeats after every 10230 chips. Thus, each code block of E5aI is of 1 millisecond duration.

  • The secondary code for E5aI is at 1 kilo baud rate. So, each chip of the secondary code is of 1 millisecond duration and the code repeats for every 20 chips.

  • Tiered code formation for E5aI — The primary ranging code is XORed with the secondary code. This results in an effective code block length of 20 milliseconds, matching the duration of one F/NAV data bit.

  • Data spreading for E5aI — The F/NAV data bit is spread using the tiered code formed by the E5aI primary and secondary codes. The F/NAV data rate is 50 bps, resulting in 20 milliseconds per bit.

  • E5aQ component waveform generation — The chip rate of the primary ranging code for E5aQ is 10.23 MHz and the code repeats after every 10230 chips. Thus, each code block of E5aI is of 1 millisecond duration. The secondary code for E5aQ is at 1 kilo baud rate. So, each chip of the secondary code is of 1 millisecond duration and the code repeats for every 100 chips. Because there is no data on E5aQ component, the output after creation of tiered code is mapped on the quadrature branch by mapping bit 0 to +1 and bit 1 to -1.

Similarly, the generation of E5b signal involves these steps.

  • The E5b signal consists of an in-phase component (E5bI) and a quadrature-phase component (E5bQ).

  • The chip rate of the primary ranging code for E5bI is 10.23 MHz and the code repeats after every 10230 chips. Thus, each code block of E5bI is of 1 millisecond duration.

  • The secondary code for E5bI is at 1 kilo baud rate. So, each chip of the secondary code is of 1 millisecond duration and the code repeats for every 4 chips.

  • Tiered code formation for E5bI — The primary ranging code is XORed with the secondary code. This results in an effective code block length of 4 milliseconds, matching the duration of one I/NAV data bit.

  • Data spreading for E5bI — The I/NAV data bit is spread using the tiered code formed by the E5bI primary and secondary codes. The I/NAV data rate is 250 bps, resulting in 4 milliseconds per bit.

  • E5bQ component waveform generation — The chip rate of the primary ranging code for E5bQ is 10.23 MHz and the code repeats after every 10230 chips. Thus, each code block of E5bI is of 1 millisecond duration. The secondary code for E5bQ is at 1 kilo baud rate. So, each chip of the secondary code is of 1 millisecond duration and the code repeats for every 100 chips. Because there is no data on E5bQ component, the output after creation of tiered code is mapped on the quadrature branch by mapping bit 0 to +1 and bit 1 to -1.

To generate a constant envelope E5 signal, use the AltBOC technique to multiplex the E5a and E5b signals.

Generate E6 Signal

To generate a Galileo E6 waveform, you must use the E6-B and E6-C components, both located on the I-phase branch. To generate an E6 signal, follow these steps.

  1. Generate the primary code for E6-B and E6-C, both at a frequency of 5.115 MHz, which results in 5115 chips per code block. Each code block has a 1 millisecond duration.

  2. Spread the C/NAV data with the E6B primary code using an XOR operator, to produce spread symbols.

  3. For E6C, use a 100-chip secondary code, where one chip lasts for 1 ms at a code rate of 1 kilo baud. Spread the E6C secondary code with the primary code using an XOR operator, to produce spread symbols.

  4. For each multiplexed stream from points 2 and 3, map bit 0 to +1 and bit 1 to –1. This process converts the binary data into baseband symbols.

  5. Use this equation to combine the E6-B and E6-C waveforms to produce the Galileo E6 waveform.

    E6 = (E6B - E6C)/sqrt(2)

See Also

|

Topics

References

[1] European GNSS Service Centre (GSC). Galileo Open Service Signal-In-Space Interface Control Document. OS SIS ICD v2.1. GSC, November 2023. https://www.gsc-europa.eu/sites/default/files/sites/all/files/Galileo_OS_SIS_ICD_v2.1.pdf.

[2] European GNSS Service Centre (GSC). Galileo High Accuracy Service Signal-In-Space Interface Control Document. HAS SIS ICD v1.0 https://www.gsc-europa.eu/sites/default/files/sites/all/files/Galileo_HAS_SIS_ICD_v1.0.pdf.