OPS Forum Codes and Turbocodes 24.06.2005

2,707 views

Published on

Codes and Turbo Codes: a (short) survey on Telemetry Channel Coding

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,707
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
131
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

OPS Forum Codes and Turbocodes 24.06.2005

  1. 1. OPS-G Forum, ESOC, 24th June 2005 Codes and Turbo Codes: a (short) survey on Telemetry Channel Coding Gian Paolo Calzolari OPS-GIB 1
  2. 2. Coding Theory v Coding Theory deals with representing the information using codes. It covers: compression, secrecy, and error-correction. Our main topic today will be error-correcting codes (ECC) a subtopic of Information Coding Theory developed from work by Claude Shannon in 1948. v Our main problem: a stream of information, in the form of 0’s and 1’s, shall be transmitted over a communications channel. In such a channel errors can occur in the channel with the effect that some 0’s can turn into 1’s and vice versa. Information Transmission Information data source Channel (+Noise) data sink OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 2
  3. 3. Channel Coding v Channel Coding tries to guarantee that transmitted bits are received without errors. v Error-Detecting Codes allow the receiver to realize that an error has occurred (but not which error) and possibly to request retransmission. Classical example: parity bit. v Forward Error Correction Codes allow the receiver to deduce what the transmitted data must have been. v This is achieved by encoding source information to add additional information, (redundancy) that can be used to detect, and perhaps correct, errors. The Code Rate measures the amount of redundancy added. v More redundancy è more errors detected & corrected, but decreased efficiency in transmission. v ECC’s are developed using algebra, geometry and statistics! v Using (Telemetry) Channel Coding a digital receiver system can detect and reconstruct an erroneous transmitted message, without requesting a retransmission. OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 3
  4. 4. Channel Coding Scenario Bit Domain Symbol Domain Noise Information b Channel Modulation data source Coding s SNR Transmision Channel Information b' Channel Demodulation data sink Decoding s' v The Symbol to Noise Ratio (SNR) describes the probability that a transmitted symbol (s) may be received altered (s‘ ). It is usually measured in Energy per bit divided by the Noise density Eb/N0. v Modulation is also important, but please ignore it (today only J). OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 4
  5. 5. The Bit Error Rate (BER) R=7/8 F=8920 bits Systematic PCTC v Diagrams like this are used to Partially systematic PCTC measure and compare the performances of Codes. 0 Floor Systematic PCTC 10 Floor partially systematic PCTC -1 10 The (Post Error Correction) -2 10 v -3 10 10 -4 BER is the probability of making an error in the bit “i”; -5 10 -6 BER i.e. it measures unsuccessful 10 -7 10 decoding for bits. -8 10 -9 10 In Telemetry we are more -10 10 -11 v interested in the Frame Error 10 -12 10 2 3 4 5 6 7 8 Rate (FER) that measures Eb/N0 (dB) unsuccessful decoding for The Best: low Energy frames. and fewest errors! OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 5
  6. 6. Two Major Forms of Channel Coding v Linear Codes (aka Block v Convolutional Codes: Codes): each codeword is coding and decoding are built as a linear sequential. For each combination of the incoming bit a given information messages. number of output bits is Generally, the complete generated. Easy coding encoded message is and decoding but, for the needed before starting serial nature, a decoding decoding. Easy to error may propagate to implement but difficult several decoded bits. decoding. Decoding can start before receiving the complete encoded Information Bits Redundant Bits message. OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 6
  7. 7. CCSDS Options for Channel Coding v The CCSDS Recommendation 1) Convolutional Code Rate ½ for Telemetry Channel Coding has the purpose of establishing 2) Reed-Solomon Code E=16 a common Recommendation for space telemetry channel coding 3) [Traditional] systems to provide cross- Concatenated Code 1+2 support among missions and facilities of member Agencies. 4) Turbo Codes v Candidate codes have been 5) Punctured Convolutional selected in the years according to the identified requirements. Codes v Thorough technical analysis is 6) Reed-Solomon Code E=8 needed to give the most convenient solutions for the 7) [General] Concatenated space missions scenarios. Codes v This is what CCSDS is doing. OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 7
  8. 8. Option #1: Convolutional Code Rate ½ v It has been the first standardized one. It has Rate ½ (in CCSDS since 1984). Two output bits for each incoming bit (2*BW). v The code is not systematic; i.e. the output stream does not contain the input stream in clear. v It allows a easy hardware implementation and a fixed decoding time well suited for HW implementation. v Convolutional Encoding rate ½ allows at least 5 dB less power (for BPSK or QPSK transmission)! v Higher rates (i.e. with less redundancy) created by puncturing have been added to CCSDS in 2001 (see later). C1(1),-C2(1),C1(2 ),-C2(2), … C2 will be “negated” before transmission OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 8
  9. 9. A Note on Andrew Viterbi v In April 1967, Andrew J. Viterbi published a famous paper on his technique for the decoding of convolutional codes [see "Error Bounds for Convolutional Codes and an Asymptotically Optimum Decoding Algorithm," IEEE Transactions on Information Theory, Volume IT-13, pages 260-269]. v Despite Viterbi Decoding is just one algorithm for the decoding of convolutional codes, it became common use to use terms as “Viterbi encoding”, “Viterbi decoding”, etc. even when the Viterbi algorithm is not used. OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 9
  10. 10. Convolutional (Viterbi) Decoding v The convolutional encoder is a Current Output Output simple state machine and State Symbol if Symbol if decoding is performed using a Input=0 Input = 1 trellis diagram. v Each time a pair of channel 0-00 00 11 symbols received, a metric to measure the “Hamming distance" 1-01 11 00 between what we received and 2-10 10 01 the other pairs we could have received is computed. There are 3-11 01 10 only two possibilities each time. v The number of bit positions in State which two Codewords differ is 0 … called HAMMING DISTANCE. 1 … v Finally the path with the lowest accumulated Error Metric is 2 … selected: i.e. Maximum Likelihood 3 … is applied. OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 10
  11. 11. Likelihood is not Certainty v To be sure that the guess of the Convolutional Decoder is the sent Frame, a Frame Error Control Field (FECF) shall be used for Frame Validation. v FECF uses a cyclic redundancy check (CRC). v FECF is a 16-bits field computed according to a given law. When decoded, the error detection syndrome S(X) will be zero if no error is detected and non-zero if an error is detected. v The FECF allows no correction! v The error position is unknown and the “bad frame” is unusable. This is always true for bad frames! v The CRC code can reliably detect incorrect frames with an undetected error rate of around 2-15 ~ 10-5. OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 11
  12. 12. Decoding Approach: Splitting Hairs? +4D +2D 0 -2D -4D v In decoding we may decide IF s’ > 0 3 bits THEN bit = 1 ELSE bit = 0 quantization v This is “hard-decision”. v Alternatively, we may use quantization and provide output proportional to the value received in input. Each single bit is then represented by a value of many bits saying “how strong” the bit is. v This is “soft-decision”. A Viterbi decoder with 3 or 4 bits quantization performs about 2 dB better than hard-decision! OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 12
  13. 13. Option #2: Reed-Solomon Code E=16 v This is a powerful burst error correcting code. v A R-S symbol consist of 8 bits! v The E=16 option can correct 16 R-S symbols in error per codeword. A E=8 option (with less redundancy) was added in 2001 (see later). v This is a systematic code. This results in a systematic Codeblock: (255,223) when E = 16. v The Code Rate is 223/255 = 0.8745 (i.e. almost 7/8) v Shorter information sizes allowed by Virtual Fill. Transmitted Codeblock: 255 symbols Telemetry Frame (Uncoded): 223 symbols 32 RS Checksymbols OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 13
  14. 14. The concept behind Linear Codes Valid Representations v Alphabet is restricted. v Example “Phonic Alphabet”: You would not allow the words Love and Dove in the Set of Set of all possible Code Word, but rather only words Love and Pigeon. Same meaning, more differences. Set of Code v In channel coding the increase Words in differences is achieved by adding redundancy (i.e. extra bits). v The number of bit positions in which two Codewords differ is Possible Representations called HAMMING DISTANCE. OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 14
  15. 15. Can Reed-Solomon be better? v Symbol interleaving is accomplished in a manner functionally described with the aid of figure below. v Data bits to be encoded into a single Reed-Solomon Codeblock enter at the port labeled ‘IN’. Switches S1 and S2 are synchronized together and advance from encoder to encoder in the sequence 1,2, . . ., I, 1,2, . . ., I, . . ., spending one R-S symbol time (8 bits) in each position. v The allowable values of interleaving depth are I=1, 2, 3, 4, 5, and 8. The Frame Size varies accordingly; I.e. = 223*I OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 15
  16. 16. Why Interleaving? v Spreading the bytes around makes the correctable burst even greater! v The Interleaver “breaks up” error bursts at the output of the convolutional decoder. OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 16
  17. 17. Option #3: Concatenated RS+Convolutional Input Reed-Solomon Convolutional Modulator Encoder Encoder Channel Output Reed-Solomon Convolutional Demodulator Decoder Decoder v Where a greater coding gain is needed than can be provided by the convolutional code or Reed-Solomon code alone, a concatenation of the convolutional code as the inner code with the Reed-Solomon code as the outer code may be used for improved performance. v The Code Rate is ½*223/255 = 0.8745/2= 0.437 OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 17
  18. 18. Is all of this worth? i.e. Coding Gain v This Frame Error Rate figure (for RS Interleaving Depth = 5) is taken from the historical “Telemetry Channel Coding Standard” ESA PSS-04-103 Issue 1 September 1989. v R-S is better than no coding (PSK), VD (with soft bits) is better that R-S and Concatenated (VD+R-S) is better than VD! v Obvious question: v Should than we use always the Concatenated Coding Scheme? [The answer later…..] OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 18
  19. 19. Option #4: Turbo Codes Only one frame Interleaver buffer OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 19
  20. 20. Principle behind Turbo Codes Input block (e.g. a Frame) Bit "n" Bit "n" Encoder #1 "Rn" Interleaver Redundancy-bit for Bit "n" (8920 Bits) Redundancy-bit for Bit "m" Bit "m" Encoder #2 "Rm" 3 Bits v The interleaver spreads the redundant bits in several positions, even far away from the information. bit. v As the interleaving size is normally large, maximum likelihood decoding is out of question for complexity reasons. However, a suboptimal decoder implementing multiple iterations around a maximum a posteriori (MAP) decoder can operate very close to the theoretical bounds. The re-use of decoded stuff (i.e. the iterations) is the reason for the Turbo adjective. v Soft input soft output (SISO) decoders for the constituent codes are used. OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 20
  21. 21. Turbo Codeblocks Systematic (i.e. original) bits OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 21
  22. 22. Turbo Codes: The Structure v Constituent encoders: two binary systematic recursive convolutional encoders with rate 1/4 and 16 states. v Block sizes: 1784,3568, 7136, 8920 (and 16384). v Interleaver: analytical (proposed by C. Berrou, inventor of Turbo Codes) v Nominal turbo code rates (1/r): 1/2, 1/3, 1/4, and 1/6 v The four nominal rates (1/2, 1/3, 1/4, and 1/6) are obtained by varying the puncturing patterns v Rate 1/6 is obtained by puncturing the resulting 1/8 code v Termination: four trellis steps v Actual turbo code rates: ((8920/ (8924 * r)), with r=2,3,4, and 6. v Longer frames give better performances. v As for Convolutional Codes, the FECF is mandatory for Frame Validation. OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 22
  23. 23. Performance of Turbo Codes (N=8920) Coding Gain against Simulation results N=8920 CCSDS Concatenated 1.E+00 Coding. 1.E-01 Rate Improvement dB 1.E-02 @ FER = 10-4 ½ 1.7 1.E-03 1/3 2.3 B.E.R.-F.E.R. 1.E-04 B.E.R. ¼ 2.5 1.E-05 1/3 Detectable 1/6 2.6 1/2 F.E.R. 1/6 1/4 F.E.R. 1.E-06 Note in the figure the 1.E-07 relationship between 1.E-08 BER and FER curves. -0.7 -0.5 -0.3 -0.1 0.1 0.3 0.5 0.7 0.9 1.1 1.3 1.5 1.7 1.9 2.1 2.3 2.5 2.7 Eb/N0 [dB] OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 23
  24. 24. Simulation results - N=1784 Simulation results N=1784 1.E+00 1.E-01 1.E-02 B.E.R.-F.E.R. 1.E-03 1.E-04 1/2 1/3 1/6 1/4 B.E.R. 1.E-05 Detectable F.E.R. F.E.R. 1.E-06 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 1.6 Eb/N0 [dB] OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 24
  25. 25. Simulation results - N=3568 Simulation results N=3568 1.E+00 1.E-01 1.E-02 This point is 0.1 dB 1.E-03 B.E.R.-F.E.R. 1.E-04 better that it was for 1/4 1.E-05 1/2 1/6 1/3 N=1784. 1.E-06 B.E.R. Detectable F.E.R. F.E.R. 1.E-07 1.E-08 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 Eb/N0 [dB] OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 25
  26. 26. Simulation results - N=7136 Simulation results N=7136 1.E+00 1.E-01 1.E-02 1.E-03 B.E.R.-F.E.R. 1.E-04 1.E-05 1/3 1/6 1/2 1.E-06 1/4 1.E-07 B.E.R. Detectable F.E.R. 1.E-08 F.E.R. 1.E-09 -0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 Eb/N0 [dB] OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 26
  27. 27. Simulation results - N=8920 Simulation results N=8920 1.E+00 This 1.E-01 point is 0.4 dB 1.E-02 better that it was for 1.E-03 B.E.R.-F.E.R. 1.E-04 N=1784. 1.E-05 1/3 1/2 1.E-06 1/6 1/4 B.E.R. Detectable F.E.R. 1.E-07 F.E.R. 1.E-08 -0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 Eb/N0 [dB] OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 27
  28. 28. Options #5, #6 and #7: Extending the Concatenated Scheme v The traditional Reed-Solomon is (255,223) with 8 bits per R-S symbol and E=16 R-S symbol error correction capability; v A new Reed-Solomon (255,239) with E=8 R-S symbol error correction capability has been added (after studying also E=4 and E=2) for near-Earth applications; v The traditional Convolutional Code has a code rate 1/2. v Punctured Convolutional Codes rates 2/3, 3/4, 5/6 and 7/8 have been added (after studying more cases). v More concatenated rates are then possible. OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 28
  29. 29. Option #5: Punctured Convolutional Codes v The output stream is punctured to allow Code Rates 2/3, ¾, 5/6 and 7/8. 7/8 C1: 1 0 0 0 1 0 1 C1(1) v By puncturing, some output bits are C2: 1 1 1 1 0 1 0 C2(1) deleted and not transmitted. C2(2) C2(3) C2(4) Rate C1: 1 0 C1(1) C2(1) C2(2) ... C1(5) 2/3 C2: 1 1 C2(6) C1(7) ... Rate C1: 1 0 1 C1(1) C2(1) C2(2) 3/4 C2: 1 1 0 C1(3) ... C2 is not “negated” before transmission OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 29
  30. 30. BER vs. FER for punctured convolutional codes OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 30
  31. 31. Option #6: Reed-Solomon Code E=8 v The E=8 option can correct 8 R-S symbols in error per codeword. v This is a systematic code. This results in a systematic Codeblock: (255,239) when E = 8. v The Code Rate is 239/255 = 0.937 (i.e. almost 15/16) Transmitted Codeblock: 255 symbols Telemetry Frame (Uncoded): 239 symbols 16 RS Checksymbols v The E=16 option gave: Transmitted Codeblock: 255 symbols Telemetry Frame (Uncoded): 223 symbols 32 RS Checksymbols OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 31
  32. 32. Reed-Solomon Variations on Interleaving depth 5: BER vs. FER OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 32
  33. 33. Bit Error Rate for Concatenated Systems: Interleaving depths 1 & 5 OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 33
  34. 34. BER vs. FER for Concatenated systems Interleaving depth 5 OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 34
  35. 35. BER for New Concatenations Interleaving Depth 5 OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 35
  36. 36. FER for New Concatenations Interleaving Depth 5 OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 36
  37. 37. ESA Systems for Channel Coding v Some ESA Ground Stations are 1) Convolutional Code Rate ½ still using the CDS2(A) developed by Terma. This is 2) Reed-Solomon Code E=16 supporting the first 3 options. 3) [Traditional] v TCDS, developed by BAE and Concatenated Code embedded in the IFMS, is now the baseline for ESA Stations. 4) Turbo Codes It supports the first 3 options. 5) Punctured Convolutional v The ESA Turbo Decoder, Codes developed by Space Engineering, is a prototype for 6) Reed-Solomon Code E=8 Turbo Codes. 7) [General] Concatenated v TCDS extensions are envisaged Coding for the future. OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 37
  38. 38. Channel Coding Usage v Most of CCSDS and ESA missions till 1) Convolutional Code today have used and are using Rate ½ successfully Options #1, #2 or #3. 2) Reed-Solomon Code v Turbo Codes were validated on a E=16 SMART-1 experiment by the Turbo 3) [Traditional] Decoder in Vilspa. Rosetta is able to Concatenated Code implement Turbo Codes if the link situation will require it. Bepi Colombo 4) Turbo Codes has baselined an option for Turbo 5) Punctured Codes. Convolutional Codes v Gaia is likely to use the Convolutional 6) Reed-Solomon Code Code Rate ¾ (or perhaps the Rate 7/8 E=8 depending on constraints). 7) [General] Concatenated Coding OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 38
  39. 39. Before concluding… I could/should have mentioned also: Synchronization & Randomization v v Coding vs. Modulation v Ongoing studies for CCSDS Orange Books on Serially Concatenated Convolutional Codes. And Low Density Parity Check Codes. v The ECSS limitations. v Telecommand Channel Coding. v Etc. but time limits did not allow it. v REFERENCES: v TELEMETRY CHANNEL CODING CCSDS 101.0-B-6 (traditional – not maintained - Blue Book) v TM SYNCHRONIZATIONAND CHANNEL CODING CCSDS 131.0-B-1 (new restructured Blue Book) OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 39
  40. 40. Considerations to select Coding v Choose coding scheme based on your scenario and types of errors expected: – Burst errors vs. random bit errors – Ability to retransmit (detect only) – Expected/acceptable error rate – Must trade bandwidth for error protection – More complex coding schemes will provide more error protection at the expense of delay encoding/ decoding at source/ destination – Real-time systems must balance error protection with tolerable coding delay OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 40
  41. 41. Forward Error Correction Optimization 1. Describe the Channel/Noise --- External 2. Describe requirements and limitations for your system(s) 3. Suggest Coding Scheme 4. Suggest Decoding Scheme 5. Measure BER & FER 6. If BER/FER is not satisfactory (small enough according to your scenario) restart from step #3. OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 41
  42. 42. The best coding scheme… v …only depends on your needs and environment. v …for “all the seasons” does not exist. v Thank you for the attention! OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari Codes & Turbo Codes 42

×