Improved EGNOS Decoding with the List Viterbi Algorithm Matthias van der Staay1, Heinz Mathis2 1
Information Management Technology AG Gewerbestrasse 8, 9470 Buchs, Switzerland
[email protected] 2
Institute for Communication Systems, HSR University of Applied Sciences Oberseestrasse 10, 8640 Rapperswil, Switzerland
[email protected]
Abstract— The transmitted information of the European geostationary navigation overlay service (EGNOS) is protected against bit errors by an error-correcting rate ½ convolutional code and an additional cyclic redundancy check (CRC). To decode the signal after the tracking procedure, an ordinary Viterbi algorithm [1] and a CRC decoding algorithm to verify the received EGNOS message has usually been used. Measurements with real signals have shown that there is a frame error rate (FER) of 1% at C/N0 = 35dB-Hz after the Viterbi decoder. However, most GNSS receivers are able to track the EGNOS signal down to C/N0 = 30dB-Hz. Therefore, there is a potential of about 5dB to improve the EGNOS decoding algorithm. We propose to improve the performance of the EGNOS decoding by using the list Viterbi algorithm (LVA) instead of the conventional Viterbi algorithm. Keywords— EGNOS, list Viterbi algorithm, Iterative decoding, Channel coding
I. INTRODUCTION Several wireless systems, for example GSM, GPRS and DVB-S, use a serially concatenated code system for channel coding. The reason for using a serially concatenated coding procedure is the combination of the error correcting ability of a convolutional and the error detecting capacity of a block code. In the light of the most recent knowledge, these systems can be efficiently improved by an iterative decoding procedure [2,3]. The idea of iterative decoding is to combine the inner and the outer decoder instead of isolating their tasks. This means that the two decoders of a concatenated code system talk together and share their knowledge about the bit probabilities; this is exactly what turbo codes do [4]. This work shows how EGNOS can be improved by using recent trends in channel coding. After introducing EGNOS itself, a short introduction about the list Viterbi algorithm (LVA) is given to understand the proposed algorithm. The LVA can be used for the acquisition and the tracking, whereas the corresponding decoding procedures are described individually. There is an additional section on turbo decoding of EGNOS, which shows how the turbo-decoding principle improves
EGNOS. A comparison between a turbo-code-based and a list-Viterbi-based decoding procedure is also included in this work. II. EGNOS DATA STRUCTURE An EGNOS frame consists of four parts: The preamble (8 bits), the messagetype (6 bits), the information (212 bits) and the CRC checksum (24 bits). The preamble of the EGNOS frames is defined by 0x9AC653 and is subdivided into three parts, which are distributed over three frames.
Fig.1. An EGNOS frame consists of the preamble, the message type, the data and a 24bit checksum, a total of 250 bits.
The preamble, the message type and the information bits are used to produce the CRC checksum by a shorted cyclic n = 250, k = 226 block code. This code enables the detection of errors in the received frame. After the computation of the CRC code a length m = 6 rate ½ convolutional code adds redundancy to protect the frame against bit errors. The initial state of the convolutional code is given by the previous frames; therefore the shift register has not to be initialized. III. THE LIST VITERBI ALGORITHM N. Seshadri et al. [5] proposed a simple way to improve serially concatenated code systems that consist of a convolutional and an error-detecting code. Their work contains a summary of the serial and parallel list Viterbi algorithms as well as an analysis of data transmission applications. A list Viterbi decoding algorithm (LVA) provides a rank ordered list of the L globally best paths through a trellis. Whereas the parallel algorithm (PLVA) produces the L paths simultaneously, the serial algorithm (SLVA) does so iteratively with the knowledge of the previously found paths. For the sake of illustration, a trellis with four states shall be used to explain the principle of the SLVA.
The SLVA starts with the best path (the most likely sequence of length n), all costs and the surviving branches of the Viterbi algorithm [1] (Figure 2).
branches have to be checked; the branches from the best and the second best path. If the second best path is completely different from the best path (worst case), n branches of the best and n branches of the second best path have to be checked. Therefore the computational cost rises with L2. IV. ACQUISITION OF EGNOS WITH THE LVA Before the decoding algorithm of EGNOS can start, the following steps are carried out: The detection of the parity bits, the estimation of the parity bit alignment and the synchronization of the EGNOS frames (Figure 5). 1ms Samples IP
Fig.2. Trellis diagram with the best path (bold, solid) and the surviving branches (solid). The dashed lines are the nonsurviving branches. This information is provided by the VA. 2ms
Parity bit sync.
Knowing that the second best path only once leaves the best path, the problem of searching the second best path reduces itself to finding the branch which joins the best path at some state. To find the branch that joins from the second best to the best path, the unused branches at each state of the best path (called candidates for the second best path) have been checked for their additional cost (Figure 3).
4ms Parity bit alignment
P1 P2
P1 P2
P1 P2
Frame (1s)
Frame sync.
1
1
Fig.5. The detection of the parity bits, the estimation of the parity bit alignment and the synchronization of the EGNOS frames.
Fig.3. Trellis diagram with the best path (bold, solid), the surviving branches (solid) and the new candidates for the second best path (bold, dashed).
If the candidate with the lowest additional cost is known (at transition step i = T), the second best path follows the best path from i = n back to i = T+1, the candidate with the lowest additional cost at transition step T, and the surviving branches from i = T-1 all the way back to i = 1.
Fig.4. Trellis diagram with the best and the second best path (bold, solid), the survival paths (solid) and the candidates for the third best path (bold, dashed).
The third best and all following l-best paths can be evaluated with the same procedure as the second best path has been found. For the third best path, additional
A. Paritybit synchronization To describe the parity bit synchronization procedure, the vector IP is defined by IP = [IP(1), IP(2), ..., IP(Q)], whereas IP(q) is the correlation result between the downconverted EGNOS signal and the PRN sequence. The parity bits can be synchronized by building the scalar product of IP(2·q) · IP(2·q-1) and IP(2·q) · IP(2·q+1) for q = {1, 2, …, Q/2}. If 2∙
⋅
2∙
1 2∙ 1, 2, … , /2
⋅
2∙
1
the parity bits have been successfully synchronized. That means, the parity bits start at (2·q-1) and end at 2·q. B. Detection of the parity bit alignment To detect the alignment of the parity bits two Viterbi algorithms can be initialized. The first one with the parity alignment [p1 p2] and the second one with [p2 p1]. The path with the lowest cost was initialized with the right alignment with high probability. C. Frame synchronization An EGNOS frame can be found by looking for one of the three preambles (or its inversion) in the decoded data stream. The data can be decoded by the introduced SLVA with the following procedure: First, the data will be decoded by the VA over two frames. If no preamble can be found, the (l+1)th sequence can be used to search one of the three preambles again. A preamble has been found if both the following is met: One of the preambles is included. The CRC check of the corresponding message is successful.
The procedure is shown in Figure 6. If no preamble can be found until the Lth sequence, the frame synchronization has failed. In this case this process should be repeated for the next 1000 bits.
Fig.6. The proposed decoding procedure of EGNOS with the SLVA.
A workaround to decode the CRC code by a SISO algorithm is to use the procedure proposed by Di-Ping Chou et al. [9]. By reducing the dimensions of the CRC codespace, it gets feasible to calculate the a posteriori probability of the remaining bits. The nb suspect bits (that is how they are called in [9]) are selected by their certainty, which is given by the log likelyhood ratio (LLR). The drawback of this algorithm is that after decoding there is extrinsic information only about the nb selected bits available. Therefore the iterative turbo code based algorithm loses its strength and is far away from its potential performance (for a practical size nb). VII. SIMULATION AND MEASUREMENTS The additional gain of the EGNOS decoding procedure with the SLVA and the turbo based algorithm has been verified with Monte Carlo simulations and practical experiments. For the practical experiments, real EGNOS signals were received and processed.
FER
V. TRACKING OF EGNOS WITH THE LVA The data of the EGNOS messages can be iteratively decoded as it is done during the frame synchronization. After decoding with the Viterbi algorithm, the CRC checksum can be used to detect a failed decoded codeword. Instead of discarding the received information, A. Monte Carlo Simulations Figure 8 and 9 show the frame error rate (FER) in the SLVA can be used to produce the next lth best path through the trellis. If this sequence is a valid codeword, dependency of the energy-to-noise ratio in two different the correct word has been found with high probability. computational complexity scenarios. Otherwise the outer decoder asks the inner decoder for -1 10 the next (l+1)th sequence. A final integrity check could be VA done by one of the three 8-bit preambles 0x9A, 0xC6 TC and 0x53. A decoding failure is defined if l = L for an LVA unsuccessful CRC check. To serve its purpose, the serial algorithm is used, because the outer decoder asks -2 the inner decoder for the next (l+1)th sequence only if the 10 th l best path is found to be in error.
VI. TURBO DECODING OF EGNOS Another way to improve the decoding procedure of EGNOS is to use the principle of the so called Turbo Codes [6]. The convolutional code and the cyclic block code build a serially concatenated code system, which can be decoded by an iterative procedure with two BCJR decoders [7]. The problem of decoding EGNOS with an iterative decoder based on turbo codes, is the MAP (maximum a posteriori) decoding of the cyclic redundancy check. The regular trellis representation of the EGNOS-CRC has 2n-k = 224 states, therefore there are approximately 1011 operations needed to decode the CRC code with the LOG MAP algorithm [8].
-3
10 -0.5
0
0.5
1 SNR [dB]
1.5
2
2.5
Fig.8. Monte Carlo simulation with a high computational complexity scenario (L = 120, nb = 7). Approximately 5·106 operations per second are needed to decode the EGNOS messages in real-time. -1
10
VA TC LVA
FER
The computational complexity of the LVA is equal to the one of the Viterbi algorithm for high C/N0; for low C/N0 it increases with L2 whereas for L < 100 it is still smaller than the one of an iterative decoder, based on turbo codes (discussed in Section VI), of the same additional gain.
-2
10
-3
10 -0.5
Fig.7. EGNOS decoding with an iterative, turbo code based algorithm. The left BCJR decoder uses the codebook of the convolutional code and the right decoder walks through the trellis of the shorted cyclic block code.
0
0.5
1 SNR [dB]
1.5
2
2.5
Fig.9. Monte Carlo simulation with a low computational 5 complexity scenario (L = 20, nb = 3). Approximately 5·10 operations per second are needed to decode the EGNOS messages in real-time.
The Monte Carlo simulations (Figure 8 and Figure 9) are generated by the following principle:
1. Generate 226 databits and append the 24bit CRC checksum. 2. Encode the frame with the EGNOS convolutional encoder. 3. Add AWGN to the encoded bits. 4. Decode with one of the two proposed decoders. 5. Check if the data has been correctly decoded.
results in a FER of 1% already at a C/N0 = 32.5db-Hz instead of the 35dB-Hz for the conventional Viterbi algorithm. 0
10
VA Measurement LVA Measurement, L = 20 VA Simulation LVA Simulation, L = 20
-1
10 FER
The steps one to five have been carried out 100’000 times for every SNR= [-0.5, 0.5, 1.5, 2.5] dB to build the frame error rate. B. Real-data experiments The real-data experiments were only carried out with the LVA. During these experiments a Spirent GPS simulator was used to generate the GPS signals at fixed C/N0. The absolute C/N0 after the tracking algorithm was estimated by SNR
/
33
33
where PN can be calculated by correlating the demodulated signal with a PRN sequence that is not in phase. The power of (PS+PN) is the power of the signal after correlating and integrating, which has been used for decoding the data of EGNOS. To verify the additional gain of the LVA, numerous frames where decoded at different C/N0 with the VA and the LVA. After decoding, the frames which were in error were counted, to build, according to a Monte Carlo simulation, a frame error probability. The problem of the practical experiment is, that a robust tracking algorithm has to be found, which allows to track the signal down to C/N0 = 30dB-Hz. But, the algorithm which was used was only able to track the signal down to 35dB-Hz. Therefore some noise has been added after the tracking algorithm to verify the full potential of the LVA. However, more sophisticated tracking algorithms, which were outside the scope of the work presented, are able to track the signal down to C/N0 = 30dB-Hz.
-2
10
-3
10
Number of samples
[3] 1500
[4]
[5] 32
33
34
35 36 C/N0 [dB-Hz]
37
38
39
40
Fig.10. The number of decoded frames, which has been used to build the frame error rate from Figure 11.
Figure 11 shows the results of the measurements compared with the simulation of Figure 9. There is a gain of nearly 2.5dB at 1% frame error rate, i.e., the decoding of EGNOS messages using the proposed LVA
35
36
37
REFERENCES
[2]
0 31
33 34 C/N0 [dB-Hz]
For the verification of the additional gain by the LVA, an EGNOS receiver was built and fed with real signals. With the knowledge that conventional GNSS receivers are able to track the EGNOS signal down to 30dB-Hz, it has been shown that one can expect the same gain in practice as in simulation.
2000
500
32
VIII. CONCLUSIONS This work shows how EGNOS reception can be improved by using recent advances in channel coding. There are two possibilities to improve the decoding procedure of EGNOS. The first method uses the LVA in combination with the CRC checksum. With a trial and error decoding principle the proposed algorithm improves the reception of EGNOS by about 2.5dB. The second method uses a turbo-code-based iterative decoder, which can only be used in a suboptimal way, because the soft decoding of the CRC cannot be done efficiently.
2500
1000
31
Fig.11. Potential of using the LVA instead of the VA to decode the EGNOS messages.
[1]
3000
30
[6]
[7]
[8]
[9]
A. J. Viterbi, “Error Bounds for Convolutional Codes and an Asymptotically Optimum Decoding Algorithm,” IEEE Transactions on Information Theory, Vol. IT-13, pp. 260-269, 1967. F. Volker, “Turbo-Detection for GSM-Systems – Channel Estimation, Equalization and Decoding,” Universität Ulm, 2000. M. Lamarca, J. Sala and A. Martinez, “Iterative Decoding Algorithms for RS-Convolutional Concatenated Codes,” ESA, 2001. C. Berrou, A. Glavieux and P.Thitimajshima, “Near Shannon Limit Error - Correcting Coding and Decoding: Turbo-Codes,” IEEE, 1993. N. Seshadri and C. W. Sundberg, “List Viterbi Decoding Algorithms with Applications,” IEEE Transactions on Communications, Vol. 42, No. 2/3/4, pp. 313-323, 1994. E. Boutillon, C. Douillard and G.Montorsi, “Iterative Decoding of Concatenated Convolutional Codes,” Proceedings of the IEEE, vol. 95, No. 6, 2007. L. Bahl, J. Cocke, F. Jelinek, and J. Raviv, “Optimal decoding of linear codes for minimizing symbol error rate,” IEEE Trans. Inform. Theory, vol. IT-20, pp. 284-2137, March 1974. P. Robertson, E. Villebrun and P. Hoeher, “A Comparison of Optimal and Sub-Optimal MAP Decoding Algorithms Operating in the Log Domain,” IEEE, 1995. D. Chou and S. G. Wilson, “Soft-Decision Decoding of CRC Codes,” IEEE, 1991.