Upload
esaesoc-darmstadt-germany
View
2.005
Download
3
Tags:
Embed Size (px)
DESCRIPTION
Codes and Turbo Codes: a (short) survey on Telemetry Channel Coding
Citation preview
OPS-G Forum, ESOC, 24th June 2005
1
Codes and Turbo Codes: a (short) survey on
Telemetry Channel Coding
Gian Paolo CalzolariGian Paolo CalzolariOPSOPS--GIBGIB
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
2
Coding Theoryv 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 data source
Information data sink
Transmission Channel (+Noise)
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
3
Channel Codingv 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.CalzolariCodes & Turbo Codes
4
Channel Coding Scenario
Information data source
Channel Coding
Modulation
Demodulation Channel Decoding
Information data sink
Transmision Channel
Bit Domain Symbol Domain
b
s
Noise
SNR
b’
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 ☺).
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
5
The Bit Error Rate (BER)
The Best: low Energy and fewest errors!
v Diagrams like this are used to measure and compare the performances of Codes.
v The (Post Error Correction) BER is the probability of making an error in the bit “i”; i.e. it measures unsuccessful decoding for bits.
v In Telemetry we are more interested in the Frame Error Rate (FER) that measures unsuccessful decoding for frames.
2 3 4 5 6 7 810-1210-1110-1010-910-810-710-610-510-410-310-210-1100
Systematic PCTC Partially systematic PCTC Floor Systematic PCTC Floor partially systematic PCTC
R=7/8 F=8920 bits
BE
R
Eb/N0 (dB)
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
6
Two Major Forms of Channel Coding
v Linear Codes (aka Block Codes): each codeword is built as a linear combination of the information messages. Generally, the complete encoded message is needed before starting decoding. Easy to implement but difficult decoding.
v Convolutional Codes: coding and decoding are sequential. For each incoming bit a given number of output bits is generated. Easy coding and decoding but, for the serial nature, a decoding error may propagate to several decoded bits. Decoding can start before receiving the complete encoded message.Information Bits Redundant Bits
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
7
CCSDS Options for Channel Coding
v The CCSDS Recommendation for Telemetry Channel Coding has the purpose of establishing a common Recommendation for space telemetry channel coding systems to provide cross-support among missions and facilities of member Agencies.
v Candidate codes have been selected in the years according to the identified requirements.
v Thorough technical analysis is needed to give the most convenient solutions for the space missions scenarios.
v This is what CCSDS is doing.
1) Convolutional Code Rate ½ 2) Reed-Solomon Code E=163) [Traditional]
Concatenated Code 1+24) Turbo Codes5) Punctured Convolutional
Codes6) Reed-Solomon Code E=87) [General] Concatenated
Codes
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
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).
C2 will be “negated” before transmission
C1(1),-C2(1),C1(2 ),-C2(2), …
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
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.CalzolariCodes & Turbo Codes
10
Convolutional (Viterbi) Decodingv The convolutional encoder is a
simple state machine and decoding is performed using a trellis diagram.
v Each time a pair of channel symbols received, a metric to measure the “Hamming distance" between what we received and the other pairs we could have received is computed. There are only two possibilities each time.
v The number of bit positions in which two Codewords differ is called HAMMING DISTANCE.
v Finally the path with the lowest accumulated Error Metric is selected: i.e. Maximum Likelihoodis applied.
10013-1101102-1000111-0111000-00
Output Symbol if Input = 1
Output Symbol if Input=0
Current State
State0123
…………
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
11
Likelihood is not Certaintyv 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.CalzolariCodes & Turbo Codes
12
Decoding Approach: Splitting Hairs?
v In decoding we may decide IF s’ > 0 THEN bit = 1 ELSE bit = 0
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!
+4D
+2D
-2D
-4D
0
3 bits quantization
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
13
Option #2: Reed-Solomon Code E=16v 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.
Telemetry Frame (Uncoded): 223 symbols 32 RS Checksymbols
Transmitted Codeblock: 255 symbols
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
14
The concept behind Linear Codes
Possible Representations
Valid Representations
Set of all possible words
Set of Code Words
v Alphabet is restricted.v Example “Phonic Alphabet”:
You would not allow the words Love and Dove in the Set of Code Word, but rather only Love and Pigeon. Same meaning, more differences.
v In channel coding the increase in differences is achieved by adding redundancy (i.e. extra bits).
v The number of bit positions in which two Codewords differ is called HAMMING DISTANCE.
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
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.CalzolariCodes & Turbo Codes
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 convolutionaldecoder.
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
17
Option #3: Concatenated RS+Convolutional
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
ModulatorReed-SolomonEncoder
Demodulator
Channel
ConvolutionalEncoder
Reed-SolomonDecoder
ConvolutionalDecoder
Input
Output
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
18
Is all of this worth? i.e. Coding Gainv 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.CalzolariCodes & Turbo Codes
19
Option #4: Turbo Codes
Onlyone
framebuffer
Interleaver
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
20
Principle behind Turbo Codes
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.
Encoder #1
Encoder #2
Redundancy-bit for Bit "n"
Redundancy-bit for Bit "m"
Bit "n"
"Rn"
"Rm"Bit "m"
Bit "n"
Interleaver(8920 Bits)
3 Bits
Input block (e.g. a Frame)
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
21
Turbo Codeblocks
Systematic(i.e. original)
bits
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
22
Turbo Codes: The Structurev 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/6v The four nominal rates (1/2, 1/3, 1/4, and 1/6) are obtained by
varying the puncturing patternsv Rate 1/6 is obtained by puncturing the resulting 1/8 code
v Termination: four trellis stepsv 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.CalzolariCodes & Turbo Codes
23
Simulation results N=8920
1.E-08
1.E-07
1.E-06
1.E-05
1.E-04
1.E-03
1.E-02
1.E-01
1.E+00
-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.7Eb/N0 [dB]
B.E
.R.-F
.E.R
.
B.E.R.
DetectableF.E.R.F.E.R.
1/6
1/4
1/3
1/2
Performance of Turbo Codes (N=8920)Coding Gain against CCSDS Concatenated Coding.
Note in the figure the relationship between BER and FER curves.
2.61/62.5¼ 2.31/31.7½
Improvement dB @ FER = 10-4
Rate
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
24
Simulation results N=1784
1.E-06
1.E-05
1.E-04
1.E-03
1.E-02
1.E-01
1.E+00
-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]
B.E
.R.-
F.E
.R.
B.E.R.
Detectable F.E.R.
F.E.R.
1/6 1/4 1/31/2
Simulation results - N=1784
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
25
Simulation results - N=3568Simulation results N=3568
1.E-08
1.E-07
1.E-06
1.E-05
1.E-04
1.E-03
1.E-02
1.E-01
1.E+00
-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]
B.E
.R.-
F.E
.R.
B.E.R.
Detectable F.E.R.
F.E.R.
1/6
1/41/2
1/3
This point is 0.1 dB better that it was for N=1784.
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
26
Simulation results - N=7136Simulation results N=7136
1.E-09
1.E-08
1.E-07
1.E-06
1.E-05
1.E-04
1.E-03
1.E-02
1.E-01
1.E+00
-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]
B.E
.R.-F
.E.R
.
B.E.R.
Detectable F.E.R.
F.E.R.
1/6
1/4
1/31/2
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
27
Simulation results - N=8920Simulation results N=8920
1.E-08
1.E-07
1.E-06
1.E-05
1.E-04
1.E-03
1.E-02
1.E-01
1.E+00
-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]
B.E
.R.-
F.E
.R.
B.E.R.
Detectable F.E.R.
F.E.R.
1/6 1/4
1/3 1/2
This point is 0.4 dB better that it was for N=1784.
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
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.CalzolariCodes & Turbo Codes
29
Option #5: Punctured Convolutional Codesv The output stream is punctured to
allow Code Rates 2/3, ¾, 5/6 and 7/8. v By puncturing, some output bits are
deleted and not transmitted.
C2 is not “negated” before transmission
Rate 2/3
C1(1) C2(1) C2(2) ...C1: 1 0C2: 1 1
Rate 3/4
C1(1) C2(1) C2(2) C1(3) ...
C1: 1 0 1 C2: 1 1 0
7/8 C1(1) C2(1) C2(2) C2(3) C2(4) C1(5) C2(6) C1(7) ...
C1: 1 0 0 0 1 0 1C2: 1 1 1 1 0 1 0
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
30
BER vs. FER for punctured convolutionalcodes
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
31
Option #6: Reed-Solomon Code E=8
v The E=16 option gave:
Telemetry Frame (Uncoded): 239 symbols 16 RS Checksymbols
Transmitted Codeblock: 255 symbols
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)
Telemetry Frame (Uncoded): 223 symbols 32 RS Checksymbols
Transmitted Codeblock: 255 symbols
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
32
Reed-Solomon Variations on Interleaving depth 5: BER vs. FER
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
33
Bit Error Rate for Concatenated Systems: Interleaving depths 1 & 5
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
34
BER vs. FER for Concatenated systems Interleaving depth 5
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
35
BER for New ConcatenationsInterleaving Depth 5
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
36
FER for New ConcatenationsInterleaving Depth 5
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
37
ESA Systems for Channel Coding
v Some ESA Ground Stations are still using the CDS2(A)developed by Terma. This is supporting the first 3 options.
v TCDS, developed by BAE and embedded in the IFMS, is now the baseline for ESA Stations. It supports the first 3 options.
v The ESA Turbo Decoder, developed by Space Engineering, is a prototype for Turbo Codes.
v TCDS extensions are envisaged for the future.
1) Convolutional Code Rate ½ 2) Reed-Solomon Code E=163) [Traditional]
Concatenated Code4) Turbo Codes5) Punctured Convolutional
Codes6) Reed-Solomon Code E=87) [General] Concatenated
Coding
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
38
Channel Coding Usage
v Most of CCSDS and ESA missions till today have used and are using successfully Options #1, #2 or #3.
v Turbo Codes were validated on a SMART-1 experiment by the Turbo Decoder in Vilspa. Rosetta is able to implement Turbo Codes if the link situation will require it. Bepi Colombohas baselined an option for Turbo Codes.
v Gaia is likely to use the Convolutional Code Rate ¾ (or perhaps the Rate 7/8 depending on constraints).
1) Convolutional Code Rate ½
2) Reed-Solomon Code E=16
3) [Traditional] Concatenated Code
4) Turbo Codes5) Punctured
Convolutional Codes6) Reed-Solomon Code
E=87) [General]
Concatenated Coding
OPS-G Forum, ESOC, 24th June 2005, G.P.CalzolariCodes & Turbo Codes
39
I could/should have mentioned also:v Synchronization & Randomizationv Coding vs. Modulationv 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.
Before concluding…
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.CalzolariCodes & Turbo Codes
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.CalzolariCodes & Turbo Codes
41
Forward Error Correction Optimization
1. Describe the Channel/Noise --- External2. Describe requirements and limitations for your
system(s)3. Suggest Coding Scheme4. Suggest Decoding Scheme5. Measure BER & FER6. 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.CalzolariCodes & Turbo Codes
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!