OPS Forum Codes and Turbocodes 24.06.2005 - Presentation Transcript
OPS-G Forum, ESOC, 24th June 2005
Codes and Turbo Codes:
a (short) survey on
Telemetry Channel Coding
Gian Paolo Calzolari
OPS-GIB
1
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Option #4: Turbo Codes
Only
one
frame Interleaver
buffer
OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari
Codes & Turbo Codes
19
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
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
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
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
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
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
BER vs. FER for punctured convolutional
codes
OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari
Codes & Turbo Codes
30
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
Reed-Solomon Variations on Interleaving
depth 5: BER vs. FER
OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari
Codes & Turbo Codes
32
Bit Error Rate for Concatenated
Systems: Interleaving depths 1 & 5
OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari
Codes & Turbo Codes
33
BER vs. FER for Concatenated systems
Interleaving depth 5
OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari
Codes & Turbo Codes
34
BER for New Concatenations
Interleaving Depth 5
OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari
Codes & Turbo Codes
35
FER for New Concatenations
Interleaving Depth 5
OPS-G Forum, ESOC, 24th June 2005, G.P.Calzolari
Codes & Turbo Codes
36
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
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
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
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
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
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
0 comments
Post a comment