Professional Documents
Culture Documents
Space Engineering S.p.A., via dei Berio 91, 00155 Roma Italy
Phone. +39 06 225951, Fax. +39 06 2280739, botticchio@space.it, burzigotti@space.it, richichi@space.it
3
DSP SYSTEMS, via dell'Orsa Maggiore 21, 00144 Roma Italy, mc4759@mclink.it
Abstract
Present work describes the algorithmic design and show the performance of a Turbo
Decoder aimed for low Eb/No working points (near Shannon limit) that was purposely
design to work in a pragmatic approach with the following constellations QPSK, 8PSK,
16APSK, 16QAM. This Turbo Codec is based on a pure Turbo Codes implementation
without the need of additional Reed Solomon Outer Codec.
1 Overview
Turbo codes, first introduced in 1993, are a new way to construct concatenated codes able to
achieve near Shannon-limit error correction in terms of BER. The presence of large interleavers and
iterative feedback decoding allow reaching these results thanks to relatively simple structure.
In a first issue turbo codes have been presented in parallel fashion, made up by two RSCs
(Recursive Systematic Codes) and an interleaver. The progress of the study gets possible different
choices in number, type and concatenation of coders to obtain solutions with different performances
and complexity (both during encoding and decoding phase). Today a serial concatenation seems to
allow better performance, yielding lower error floors than parallel concatenated codes (PCCC).
Also, they usually employ constituent encoders with lower complexity (less states) leading to a
remarkably simpler decoding algorithm.
In order to improve the bandwidth efficiency it is also possible to cascade a high-level modulator,
as alternative to traditional TCM (trellis code modulation).
In the following Figure 1 an general scheme for a codulator (coder and modulator) is depicted.
Particularly, in our study-case the encoder is a TURBO encoder, the source produces equally
probable binary symbols (0/1), the modulator is a QPSK, 8PSK, 16PSK or 16QAM.
The quantities shown in the previous Figure 1 are related by the following relationships:
Rs
Re =Rs/rc
Rm = Re/M = Rs/(Mrc) = Rs/r
The parameter rc characterizes the encoder in terms of bandwidth and error correcting capability; it
means how much redundancy is introduced.
2 Logic Structure
The presence of a multilevel modulation involves a first choice about the turbo encoder: in literature
both "pragmatic" and "ad-hoc" encoders are present. The bottom refers to turbo-coder related to the
(known) modulation, with a direct mapping of encoder outputs to the constellation points. Being
assigned a source rate and the code rate rc, the modulation and the mapping rule are selected
together to obtain the prefixed channel symbol rate Rm.
A "pragmatic" solution, instead, is completely independent from the modulation and, then, from Rm,
with a major flexibility: it is possible to fix the code rate and modulation independently; the correct
channel symbol rate is achieved with an appropriate puncturing pattern. The advantage of a
"pragmatic" solution lies in its flexibility, being sources with different rates accepted without
needing for heavy modification. The present design of Turbo is aimed to work with different
modulation (QPSK, 8PSK, 16APSK, 16QAM) achieving a number of spectral efficiency, but just
the puncturer has to be modified. The payment is a slightly lower performance.
In the present paper we refer to a "pragmatic" SCCC1 solution, characterized by the presence of an
outer 16-state convolutional coder, a puncturer, an interleaver and an inner differential encoder, a
pure Turbo without needing for concatenated code (such Reed-Solomon).
The main purpose of the interleaver is to avoid error patterns. After the corrections in one
dimension (first decoder) the remaining errors should be spread becoming correctable error patterns
in the second dimension (second decoder). The error correction capability of turbo code will
approach that of product code.
Input Register
size K
Outer
(Convolutional)
Encoder
Puncturer
Inner
(Differential)
Encoder
Interleaver
rate 1/2
row-column
Interleaver
Modulation
rate 1/1
The Turbo is made out of two convolutional codes serially concatenated using 16-states (outer
code) and 2-states (inner code). A triangular, asymmetric S-random interleaver with fixed length
12000 bits is used. The structure for different supported coding rates and modulation is shown in
the following Table 1.
Table 1. Different modulation parameters design.
Modulation
FEC Rate
[r]
QPSK
1/2
3/4
2/3
5/6
3/4
7/8
8-PSK
16-APSK
(16-QAM)
Spectral
efficiency
[] (bps/Hz)
0.994
1.491
1.988
2.486
2.983
3.480
Channel symbols
per block [F]
Information bits
per block [K]
6000
6000
4000
4000
3000
3000
5996
8996
7996
9996
8996
10496
Table 2. Target Eb/N0 for different spectral efficiencies with 8PSK modulation.
Code rate
Spectral
Efficiency
2/3
3/4
4/5
2
2.25
2.4
Eb/N0 Capacity
Standard
[dB]
6.45
7.33
7.75
2.77
3.67
4.29
Const.
Capacity
1 dB worse
than const.
capacity
3.14
4.04
4.65
4.14
5.04
5.65
4.45
5.33
5.75
In order to set the performance specifications for the project, we have evaluated the Eb/N0 in dB
required to obtain a quasi error free information flow at the input of the MPEG multiplexer. We
based on the DVB standard document [2] but since in our case the spectral efficiencies are different
from the DVB standard (lacking Reed-Solomon encoder), we have interpolated linearly the values
reported in [2].
An example is summarized in Table 2 where the 3rd column represent the Eb/N0 given by the
standard, the 4th column the value of Eb/N0 induced by capacity, the 5th the block-size constrained
bound for interleaver size 12,000 and BER=10-10, the 6th the values at 1 dB from constrained
capacity with block size 12,000, and the 7th the agreed objectives of Eb/N0 yielding a 2 dB gain
with respect to the standard.
3 Encoder
This section simply reports the chosen encoders constituting TURBO. The outer encoder is the first
that bits meet, while the outer is just before the channel interleaver.
3.1
r = 1/1
k0=1 , n0=1
S={S0,S1}
U={U0}
S0
z-1
C={C0}
S0
U=0
U=1
C0
U0
S1
t=k
S1
t=k+1
The choice of so a simple inner encoder is made in orders to minimize the presence of floor during
decoding. It can be shown that the outer code rate (ro) must be as lower as possible, then inner code
rate (ri) as greater as possible: rc = ri * r0 .
As the inner code rate is 1/1 it prevents this code be systematic.
3.2
Outer convolutional encoder
The scheme in Figure 4 represents the recursive convolutional encoder. It is a 16-states machine with
a code rate fixed to 1/2.
r = 1/2
U0
C0
z-1
z-1
z-1
z-1
C1
4 Decoder
In literature a number of decoding algorithm are known, but just ML (Maximum Likelihood) and
MAP (Maximum A Posteriori) are implemented for their performance; both of them are studied to
be implemented in turbo decoders.
The ML algorithm, known also as Viterbi algorithm minimizes the probability of code word error
but not the single symbol error. During the decoding process only the probability of most likely
sequences is calculated and compared to obtain survivor for the sequent step. No information about
the symbol is calculated but just that of the whole sequence. Even if solutions, such as SOVA, were
proposed to modify and to improve the original ML algorithm making possible the exchange of
"soft" information about the single symbol probability, they still remain sub-optimal solution.
The MAP, instead, is a more complicated algorithm (then with a major implementation complexity)
that points to the minimization of symbol error through the maximization of the a-priori knowledge
of single symbol probability.
The basic feature of turbo decoders is the feedback of information elaborated during the process. A
complete decoding is carried out after a number of decoding iteration on the same block of input
symbols.
NOT used
From soft
channel
interleaver
6 bit quantization
8 bit quantization
P(C2,I)
P(C2,O)
SISO
6
8
INNER
(differential)
P(U2,O)
DE-
P(C1,I)
8 INTERLEAVER
DEPUNCTURER
SISO
OUTER
(convolutional)
P(U1,I)
P(U2,I)
INTERLEAVER
P(C1,O)
8
PUNCTURER
P(U1,O)
The constituent blocks, labeled SISO (Soft Input - Soft Output), implement a recursive exchange of
information one to other in order to have the knowledge on information bits grown. No hard
decision is made during the decoding process but "soft" information is calculated that is a
"weighted" decision.
The SISO block accepts as input the a priori probability of information bits and coded bits from a
previous estimation and outputs their update version toward the next block.
The APP algorithm is based on the calculation of probabilities associated to trellis. Particularly, the
scope of the decoder is to allow a decision based on comparison of the probability that bit is 1 and
the probability that bit is 0. It is possible to obtain that comparison one shot simply modifying the
original algorithm and propagating llr2 values.
5 Implementation
The Turbo Codec was implemented using the architecture and the fast prototyping system shown
below.
The Codec implementation had a maximum rate of 2Mbps with 7 iterations.
Changing the Coder rate we could experience at 400Kbps up to 30 iterations.
P(u = 1)
log
P(u = 0)
RAM
1
27
c1
RAM
3
RAM
(c)
(c)
c0
8
RAM
2
(c)
27
27
MUX
27
MUX
MUX
27
27
MUX
M
U
X
192
192
192
192
M
U
X
192
192
192
llr(c1)
llr(c0)
ACS - PE
k(c)
9
k(s)
k(s)
12
12
MAX-MIN
k(s)
12
k(c)
9
12
M
U
X
k+1(s)
CORR
12
MSB
k(s)
LUT
12
MAX
12
k-1(s)
prog bus
FPGA1
Connection
FPGA
(Frame Sync)
clk 20 MHz
SHARK6
BOARD
R
A
M
R
A
M
FPGA
40 MHz
ALTERA
EP20K1500E1X
decoded_out
decoded_out_valid
MS1
0x480000 - 0x480FFF
FPGA6
start_read
llr_ready
llr_valid
/ 24 llr
prog_wrb
prog_rdb
prog_csb
/16 prog_addr
/16 prog_data
:
2
Soft
Demodulator
SIMM
SISO+
Interleaver+
De-Interleaver
FPGA5
SIMM
MS
2
decoded_out_valid
decoded_out
MS1
0x481000 - 0x481FFF
MS1
0x482000 - 0x482FFF
/ 5 I,Q
IQ_vaild
fs_sync
start_read
/ 24 llr
llr_valid
llr_ready
DSP 6
SHARC
prog bus
UART inteface
BER Meter
MS0
ALTERA
DSP BUILDER
PROFESSIONAL
DEVELOPMENT BOARD
External PC
UART
clk 20 MHz
FPGA3
PC LPT1
interface
decoded_out_valid
decoded_out
clk 20 MHz
6 Performances
The Turbo Codec performance measured from the HW demonstrator is shown for rate 2/3 and 4/5
in terms of BER, FER and PER.
BER/EbNo 2/3
4.50
4.40
4.30
4.20
4.10
4.00
3.90
3.80
3.70
3.60
3.50
3.40
3.30
3.20
3.10
3.00
1.00E+00
1.00E-01
MEASURED BER
1.00E-02
1.00E-03
1.00E-04
1.00E-05
1.00E-06
EbNo
0.1
0.01
FER
PER
vPER
0.001
0.0001
0.00001
EbNo
4.40
4.30
4.20
4.10
4.00
3.90
3.80
3.70
3.60
3.50
3.40
3.30
3.20
3.10
3.00
STATISTICS 2/3
BER/EbNo 4/5
1.00E-01
1.00E-02
MEASURED BER
1.00E-03
1.00E-04
1.00E-05
1.00E-06
1.00E-07
1.00E-08
1.00E-09
EbNo
STATISTICS 4/5
0.1
0.01
FER
0.001
PER
vPER
0.0001
0.00001
0.000001
0.0000001
EbNo
5.40
5.30
5.20
5.10
5.00
4.90
4.80
4.70
4.60
4.50
5.75
5.70
5.65
5.60
5.55
5.50
5.45
5.40
5.35
5.30
5.25
5.20
5.15
5.10
5.05
5.00
4.95
4.90
4.85
4.80
4.75
4.70
4.65
1.00E+00
7 Conclusion
The designed and implemented Turbo Codec is aimed for close to Shannon Limits performances
uniformly with the Pragmatic approach for the QPSK, 8-PSK, 16-APSK, 16-QAM digital
modulation approaches. The Codec has been implemented using off the shelf HW fast prototyping
systems and could be used for the next generation DVB-S2 application with an overall 2dB
improvement with respect to DVB-S1 (first generation).
8 List of Acronyms
APP
A Posteriori Probability
RSC
Recursive Systematic Code
SCCC
Serially Concatenated Convolutional Code
SISO
Soft Input Soft Output
SOVA
Soft Output Viterbi Algorithm
9 References Documents.
[1] S.Benedetto, D.Divsalar, G.Montorsi, F.Pollara, "A Soft-Input Soft-Output APP Module for
iterative Decoding of Concatenated Codes", IEEE Communication Letters, Vol.1, NO.1, January
1997.
[2] Digital Viedo Broadcasting (DVB): Framing structure, channel coding and modulation for
Digital Satellite News Gathering (DSNG) and other contribution applications by satellite. European
Telecommunication Standard, prEN 301 210, January 1998.