This document provides an overview of modern forward error correction (FEC) techniques used in satellite communications (SATCOM). It discusses the motivation for using FEC to combat various link impairments. It then reviews various FEC schemes including block codes, convolutional codes, turbo codes, and compares their performance. Turbo codes are shown to provide the best performance, approaching the theoretical Shannon limit, allowing for reduced transmitter power and bandwidth compared to older FEC schemes. The document concludes that while newer codes like turbo codes offer close to optimal performance, simpler block and convolutional codes also provide good performance for their lower complexity.
3. 3
Motivation
Objective: Get as low of a Bit Error Ratio (BER) as possible
Impedances to this goal in SATCOM links:
– Rain fade
– Ionospheric effects (e.g. TEC, scintillation)
– Multipath effects
– Sunspots
– Operator Error (e.g. putting HPA above saturation)
These effects compromise link quality, lower
the received Eb/No and thus increase BER!
4. 4
Overview of FEC
FEC = Forward Error Correction
– Why Forward? It is subjective…
Code bits are added (directly or indirectly) to the
information bits, creating redundancy in the
transmitted symbols
i1 i2 i3 i4 i5 i6 i7
c1 c2 c3 c4 c5 c6 c7
ix= information bits
cx= code bits
*Example of rate ½ block code
6. 6
Overview of FEC (cont’d)
Fundamental flavors of FEC:
• Old-school
– Block Codes (BCH, Reed-Solomon)
– Convolutional Codes (Viterbi decoding)
• New-school
– Turbo Codes (1993)
• BER performance of 10
-5
at an Eb/No of 0.7dB using only a
1/2 rate code5
• Much excitement over this development
• Most modern FEC work is in this field
[5] C. Berrou, A. Glavieux, and P. Thitimajshima, “Near Shannon limit error-
correcting coding and decoding: turbo codes,” Proceedings of ICC ’93,
(Geneva, Switzerland), pp. 1064-1070, May 1993.
7. 7
Overview of FEC
Block Codes
• Operate on blocks of
incoming data
• Matrix transformation of
information bits; Similar to
block cipher
• Examples:
– Hamming
– BCH
– Golay
– Reed-Solomon
xGy =
yGHS =
Generator
Matrix
Syndrome
(Tells which
bits are wrong)
Coded
sequence
Information
sequence
Parity-check
matrix
Hamming Code Encoder and Decoder
8. 8
Overview of FEC
Convolutional Codes
• Operates bit-by-bit on incoming data; similar to
a stream cipher
+
+
Data Sequence
Code
Sequence
Shift Register
Mod-2
addition
Mod-2
addition
R=1/2 K=3 Convolutional Encoder
9. 9
Overview of FEC
Convolutional Codes
• Viterbi decoder
– Maximum-likelihood
decoding procedure
for convolutional codes
– A trellis is used to
determine information
code by monitoring
distance between
received sequence
and a traversed path
00
01
10
11
State Time à
R=1/2 Viterbi Decoding Trellis
10. 10
Overview of FEC
Turbo Codes
• Some block, some convolutional
• Better performance for a given BER than
conventional Viterbi, Reed Solomon
• Two main types of Turbo Codes
– Turbo Product Coding (TPC)
• Concatenation of two block codes
– Recursive Systematic Convolutional (RSC) Turbo
coding
(also known as Turbo Convolutional Coding, or TCC)
• Two RSC encoders, separated by an interleaver, for
encoding and multiple iterations of algorithm for decoding.
11. 11
Overview of FEC
Turbo Product Codes
Code 1 used for row
encoding
Code 2 used for column
encoding
Turbo Product encoder and decoder [9]
Rows and Columns
Iteratively Decoded
Using knowledge of
Code 1 and Code 2
12. 12
Overview of FEC
Turbo Convolutional Codes (RSC)
Input u is sent as x (the
systematic portion)
Two RSC-encoded streams
y1 & y2 also sent (the
convolutional portion)
Rate 1/3 Turbo Convolutional encoder and decoder [8]
x, y1, and y2 used
to regenerate original
data
14. 14
Performance of FEC Schemes
What are we looking for?
Typical figure of merit is the
Coding Gain over uncoded BPSK/
QPSK
Coding gain is the difference in
Eb/No between two FEC
schemes [4]
Baseline curve is given by:
0
2/
N
E
QpBER b
eQPSKBPSK == Example:
Rate 12/23 Golay Code Performance [8]
15. 15
Performance of FEC Schemes
The Q-function
The Q function is defined as the
area under the tail of the Gaussian
probability density function (PDF):
∫
∞
−
=
x
dt
t
exQ 2
2
2
1
)(
π
16. 16
Link Budget
• Coding gain allows for room in the link budget
• Typical Satellite Link Budget is as follows
– EIRP in dBw, d in km, f in MHz, B in Hz
• Coding gain from FEC allows for reduction in
– EIRP, which can save money (smaller PA, lower
power consumption) and reduce interference
– B, which can allow same link quality and data rate into
a smaller spectrum than without coding
)log(10)log(20)log(202.196
0
Bfd
T
G
EIRP
N
Eb
−−−++=
17. 17
Performance of FEC Schemes
Differential encoding
(no FEC)
Notice the curve is that of
theoretical uncoded
BPSK/QPSK times about
a factor of two
(1 bit error corrupts two
received bits)
Differential Encoding Only [3]
18. 18
Performance of FEC Schemes (cont’d)
Golay code
Rate 12/23
12/23 Golay Code [8]
Coding Gain
@ 10
-5
BER:
2.2 dB
19. 19
Performance of FEC Schemes (cont’d)
Convolutional
encoding
w/ Viterbi
Decoding
Rate
1/2
3/4
7/8
Coding Gain
@ 10
-5
BER:
4.8 dB
3.3 dB
2.3 dB
20. 20
Performance of FEC Schemes (cont’d)
Turbo Product
Coding
Rate 3/4
Coding Gain
@ 10
-5
BER:
6.4 dB
21. 21
Performance of FEC Schemes (cont’d)
Turbo Product
Coding
Rate 7/8
Coding Gain
@ 10
-5
BER:
5.6 dB
22. 22
Performance of FEC Schemes (cont’d)
Turbo Product
Coding
Rate
1/2
0.95
Coding Gain
@ 10
-5
BER:
7.1 dB
3.8 dB
23. 23
Performance of FEC Schemes (cont’d)
Turbo Product
Coding
Rate
5/16
21/44
Coding Gain
@ 10
-5
BER:
7.8 dB
7.2 dB
Note:
This is BPSK only
24. 24
Performance of FEC Schemes (cont’d)
TCC (RSC) and TPC comparison [8]
Turbo Convolutional
Coding outperforms
Turbo Product Coding
But, TCC is more
complex to implement
(Nothing is for free…)
Coding Gain
@ 10
-5
BER:
8.5 dB
25. 25
Summary
• FEC is required for reliable data communications
at reasonable powers and antenna sizes over
compromised channels
• New coding schemes such as Turbo Codes are
getting closer to the Shannon limit and allowing
designers to user smaller PA’s and antennas,
and allowing use of less bandwidth
• Block and Convolutional codes still provide a
reasonable complexity, cost, and performance
tradeoff