Turbo and LDPC Codes: Implementation, Simulation, and Standardization
Turbo and LDPC Codes: Implementation, Simulation, and Standardization
Implementation, Simulation,
and Standardization
June 7, 2006
Matthew Valenti
Rohit Iyer Seshadri
West Virginia University
Morgantown, WV 26506-6109
[email protected]
Tutorial Overview
Channel capacity 1:15 PM
Valenti
Convolutional codes
– the MAP algorithm
Turbo codes
– Standard binary turbo codes: UMTS and cdma2000
– Duobinary CRSC turbo codes: DVB-RCS and 802.16
3:15 PM
LDPC codes Iyer Seshadri
– Tanner graphs and the message passing algorithm
– Standard binary LDPC codes: DVB-S2
Bit interleaved coded modulation (BICM) 4:30 PM
Valenti
– Combining high-order modulation with a binary capacity
approaching code.
EXIT chart analysis of turbo codes
Turbo and LDPC Codes
6/7/2006 2/133
Software to Accompany Tutorial
Iterative Solution’s Coded Modulation Library (CML) is a library for
simulating and analyzing coded modulation.
Available for free at the Iterative Solutions website:
– www.iterativesolutions.com
Runs in matlab, but uses c-mex for efficiency.
Supported features:
– Simulation of BICM
• Turbo, LDPC, or convolutional codes.
• PSK, QAM, FSK modulation.
• BICM-ID: Iterative demodulation and decoding.
– Generation of ergodic capacity curves (BICM/CM constraints).
– Information outage probability in block fading.
– Calculation of throughput of hybrid-ARQ.
Implemented standards:
– Binary turbo codes: UMTS/3GPP, cdma2000/3GPP2.
– Duobinary turbo codes: DVB-RCS, wimax/802.16.
– LDPC codes: DVB-S2.
R pax, yflog U
z
max S
T z
p( x )
2
p( x, y)
p( x ) p( y)
dxdy V
W
X Es
and the capacity is:
l a fq
C max I X ; Y
p( x )
maximized when
two signals are equally likely
Ia
X; Y f p ( x ): p 1/ 2
H (Y ) H ( N )
zaf
p y log 2 p( y)dy
1
2
b g
log 2 eNo
This term must be integrated numerically with
z
pY ( y) pX ( y) pN ( y) pX ( ) pN ( y )d
It is theoretically d
p ac ity Boun
1.0
impossible to operate BPSK Ca
in this region.
d
ou n
B
city
Spectral Efficiency
ap a
Code Rate r
nC
It is theoretically
n no
0.5
possible to operate
Sh a
in this region.
-2 -1 0 1 2 3 4 5 6 7 8 9 10
Eb/No in dB
Power Efficiency of Standard
Binary Channel Codes
d
p ac ity Boun
1.0
BPSK Ca Uncoded
BPSK
d
ou n
B
Iridium
city
Spectral Efficiency
1998
ap a
Code Rate r
nC
Pioneer
n no
1993
LDPC Code IS-95
2001 1991 Odenwalder
Chung, Forney, Voyager Convolutional
Richardson, Urbanke 1977 Codes 1976
Galileo:BVD
Galileo:LGA 1992
1996
Mariner
1969
arbitrarily low
BER: Pb 10 5
-2 -1 0 1 2 3 4 5 6 7 8 9 10
Eb/No in dB
Binary Convolutional Codes
D D Constraint Length K = 3
0/00
0/11 S2 = 01 0/10
Since k=1,
2m = 4 total states 2 branches enter
and 2 branches leave
each state
Turbo and LDPC Codes
6/7/2006 11/133
Trellis Diagram
Although a state diagram is a helpful tool to understand
the operation of the encoder, it does not show how the
states change over time for a particular input sequence.
A trellis is an expansion of the state diagram which
explicitly shows the passage of time.
– All the possible states are shown for each instant of time.
– Time is indicated by a movement to the right.
– The input data bits and output code bits are represented by a
unique path through the trellis.
0
1/ 1
1/1
1 1
S2
0/0
1
0/0
1 0/0 0/0
1/ 0 1/ 0
0 0
0/1
0/1
0/1
0/1
S1
1
1
1
1
1
1/ 11 11 11
1/ 1/ 1/
0/00 0/00 0/00 0/00 0/00 0/00
S0
i=0 i=1 i=2 i=3 i=4 i=5 i=6
xi
D D ri D D
1/11 S1 = 10 0/10
0/00
1/11 S2 = 01 0/10
1/01
S3
0/1 0/1 0/ 1
0 0 0
0
0/1
0
0/ 1
0/1
1 1
S2
1/0
1
1/0
1 1/0 1/0
0/ 0 0/ 0
0 0
1/1
1/1
1/1
1/1
S1
1
1
1
1
1
1/ 11 11 11
1/ 1/ 1/
0/00 0/00 0/00 0/00 0/00 0/00
S0
i=0 i=1 i=2 i=3 i=4 i=5 i=6
m = 2 tail bits
no longer all-zeros
must be calculated by the encoder
Convolutional Codewords
Consider the trellis section at time t.
1/01 – Let S(t) be the encoder state at time t.
S3 S3
0/1
0
– When there are four states, S(t) {S0, S1, S2, S3}
Let u(t) be the message bit at time t.
– The encoder state S(t) depends on u(t) and S(t-1)
0
0/1
S2 1
1/0 S2
0/ 0 Depending on its initial state S(t-1) and the final state
0 S(t), the encoder will generate an n-bit long word
– x(t) = (x1, x2, …, xn)
1 /1
S1 S1
1
1/
11 The word is transmitted over a channel during time t,
0/00 and the received signal is:
S0 S0
– y(t) = (y1, y2, …, yn)
– For BPSK, each y = (2x-1) + n
If there are L input data bits plus m tail bits, the overall
transmitted codeword is:
– x = [x(1), x(2), …, x(L), … x(L+m)]
And the received codeword is:
– y = [ y(1), y(2), …, y(L), …, y(L+m)]
Turbo and LDPC Codes
6/7/2006 17/133
MAP Decoding
The goal of the maximum a posteriori (MAP) decoder is to determine
P( u(t)=1 | y ) and P( u(t)=0 | y ) for each t.
– The probability of each message bit, given the entire received codeword.
These two probabilities are conveniently expressed as a log-likelihood
ratio:
P u (t ) 1 | y
(t ) log
P u (t ) 0 | y
S2
p1
p 1,2 S2
– where Sj(t) means that S(t)=Sj
p2
For each t,
,1
P(S (t 1) S (t ) | y ) 1
p 2,0
S1 S1
i j
p 0,1 Si S j
p0,0
S0 S0
The probability that u(t) = 1 is
P (u (t ) 1 | y ) P S (t 1) S
S i S j :u 1
i j (t ) | y
Likewise
P (u (t ) 0 | y ) P S (t 1) S
S i S j :u 0
i j (t ) | y
1,2
2
,1
Let i(t-1) = Probability of starting at state Si at
2,0
• i(t-1) i,j(t)
Prob. of being in state Sj(t), given y(1)…y(t)
1(t-1)
is found by adding the probabilities of the
two paths terminating at state Sj(t).
For example,
3(t)=1(t-1) 1,3(t) + 3(t-1) 3,3(t)
The values of α can be computed for every
state in the trellis by “sweeping” through the
trellis in the forward direction.
Turbo and LDPC Codes
6/7/2006 21/133
Computing
Likewise, is computed recursively.
3,3(t+1)
3(t) 3
,2 (t
+1
3(t+1) Prob. of path going through Sj(t+1) and
)
terminating at Si(t), given y(t+1), …, y(L+m)
2(t+1) – j(t+1) i,j(t+1)
Prob. of being in state Si(t), given y(t+1), …,
y(L+m) is found by adding the probabilities of
the two paths starting at state Si(t).
For example,
3(t) = 2(t+1) 1,2(t+1) + 3(t+1) 3,3(t+1)
The values of can be computed for every
state in the trellis by “sweeping” through the
trellis in the reverse direction.
Turbo and LDPC Codes
6/7/2006 22/133
Computing
Every branch in the trellis is labeled with:
i,j(t) = P( Si(t-1) Sj(t) | y(t) )
Let xi,j = (x1, x2, …, xn) be the word generated by the encoder when
transitioning from Si to Sj.
i,j(t) = P( xi,j | y(t) )
From Bayes rule,
i,j(t) = P( xi,j | y(t) ) = P( y(t) | xi,j ) P( xi,j ) / P( y(t) )
P( y(t) )
– Is not strictly needed because will be the same value for the numerator
and denominator of the LLR (t).
– Instead of computing directly, can be found indirectly as a normalization
factor (chosen for numerical stability)
P( xi,j )
– Initially found assuming that code bits are equally likely.
– In a turbo code, this is provided to the decoder as “a priori” information.
MUX
Parity
Output
RSC
#2
Nonuniform
Interleaver
Turbo code:
-6
10
d min 6
~
ad min w 3 2
~
cd min d min
10
-8
k 65536
E
0.5 1 1.5 2 2.5 3 3.5 4
Pb 9.2 10 5 Q 6 b
No
E b/No in dB
The Turbo-Principle
Turbo codes get their name because the decoder uses
feedback, like a turbo engine.
-4
10 6 iterations 3 iterations
-5
10 10 iterations
-6
10 18 iterations
-7
10
0.5 1 1.5 2
E b/No in dB
Summary of Performance Factors
and Tradeoffs
Latency vs. performance
– Frame (interleaver) size L
Complexity vs. performance
– Decoding algorithm
– Number of iterations
– Encoder constraint length K
Spectral efficiency vs. performance
– Overall code rate r
Other factors
– Interleaver design
– Puncture pattern
– Trellis termination
-3
AWGN Channel
10
-4
BER
10
-4
10
-5
10-6
10
-6
10
-8-7
10
10
0.5
0.5 1 1 1.5 1.5 2 2.5
2 3 2.5
Eb/No in dB
Characteristics of Turbo Codes
Turbo codes have extraordinary performance at low SNR.
– Very close to the Shannon limit.
– Due to a low multiplicity of low weight code words.
However, turbo codes have a BER “floor”.
– This is due to their low minimum distance.
Performance improves for larger block sizes.
– Larger block sizes mean more latency (delay).
– However, larger block sizes are not more complex to decode.
– The BER floor is lower for larger frame/interleaver sizes
The complexity of a constraint length KTC turbo code is the
same as a K = KCC convolutional code, where:
– KCC 2+KTC+ log2(number decoder iterations)
Turbo and LDPC Codes
6/7/2006 35/133
UMTS Turbo Encoder
Systematic
Input Output
Xk Xk
“Upper” Uninterleaved
RSC Parity Output
Zk
Encoder
Interleaved
“Lower” Parity
Interleaved
Interleaver Input RSC Z’k
X’k Encoder
X1 X2 X3 X4 X5 X6 X7 X8
X9 X10 X11 X12 X13 X14 X15 X16
X17 X18 X19 X20 X21 X22 X23 X24
X25 X26 X27 X28 X29 X30 X31 X32
X33 X34 X35 X36 X37 X38 X39 X40
X2 X6 X5 X7 X3 X4 X1 X8
X10 X12 X11 X15 X13 X14 X9 X16
X18 X22 X21 X23 X19 X20 X17 X24
X26 X28 X27 X31 X29 X30 X25 X32
X40 X36 X35 X39 X37 X38 X33 X34
Thus:
– X’1 = X40 X’2 = X26 X’3 = X18 …
– X’38 = X24 X’2 = X16 X’40 = X8
Turbo and LDPC Codes
6/7/2006 40/133
UMTS Constituent RSC Encoder
Systematic Output
(Upper Encoder Only)
Parity Output
(Both Encoders)
D D D
D D D
L 1
Code rate: r
3 L 12 3
{0,1} {-1,1} y r
BPSK
Modulator
a n 2a
2
Channel gain: a
– Rayleigh random variable if Rayleigh fading
– a = 1 if AWGN channel
Noise 2
1
3
E E
– variance is: 2r b 2 b
No No
Inputs:
u,i LLR’s of the data bits. This comes from the other decoder r.
c,i LLR’s of the code bits. This comes from the channel observations r.
Two output streams:
u,o LLR’s of the data bits. Passed to the other decoder.
c,o LLR’s of the code bits. Not used by the other decoder.
“Upper”
r(Xk) MAP
r(Zk) Demux
Decoder
Interleave
“Lower” Deinnterleave X k
zeros MAP
Demux Decoder
r(Z’k)
-3
10
2 iterations
BER
-4
10
-5
10 3 iterations
-6
10 10 iterations
-7
10
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Eb/No in dB
Log-MAP Algorithm:
Overview
Log-MAP algorithm is MAP implemented in log-domain.
– Multiplications become additions.
– Additions become special “max*” operator (Jacobi logarithm)
Log-MAP is similar to the Viterbi algorithm.
– Except “max” is replaced by “max*” in the ACS operation.
Processing:
– Sweep through the trellis in forward direction using modified
Viterbi algorithm.
– Sweep through the trellis in backward direction using modified
Viterbi algorithm.
– Determine LLR for each trellis section.
– Determine output extrinsic info for each trellis section.
0.2
log-MAP
0.1
-0.1
0 1 2 3 4 5 6 7 8 9 10
|y-x|
The Trellis for UMTS
Dotted line = data 0
Solid line = data 1
00
S0 S0 Note that each node has one each of
10 data 0 and 1 entering and leaving it.
S1 S1
The branch from node Si to Sj has
S2 S2 metric ij
S3 S3
ij X k (i, j )uk ,i X k (i, j )ck1,i Z k (i, j )ck,2i
S4 S4
data bit associated
S5 S5 with branch Si Sj The two code bits labeling
with branch Si Sj
S6 S6
S7 S7
F
bg GP X 1 I
3 3
X k ln
HP X
k
k 0 JK
4 4
n
max* i ij j
Si S j : X k 1
s
5 5
max* n i ij s
j
Si S j : X k 0
6 6
7 7
calculate
and over
this region.
-2
10
Fading
-3
10
AWGN
BER
-4
10
-5
10
-6
10
10 decoder iterations
-7
10
0 0.5 1 1.5 2 2.5 3
Eb/No in dB
cdma2000
cdma2000 uses a rate ⅓ constituent encoder.
– Overall turbo code rate can be 1/5, 1/4, 1/3, or 1/2.
– Fixed interleaver lengths:
• 378, 570, 762, 1146, 1530, 2398, 3066, 4602, 6138, 9210, 12282, or 20730
Systematic
Output Xi
First Parity
Output Z1,i
Second Parity
Output Z2,i
Data Input
Xi D D D
performance of
cdma2000 turbo code
in AWGN
-2 with interleaver length 1530
10
Bit Error Rate
-4
10
-8
10
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Eb/No in dB
Circular Recursive Systematic
Convolutional (CRSC) Codes
1/01 1/01 1/01 1/01 1/01 1/01
S3 S3
0/1 0/1 0/1 0/1 0/ 1 0/ 1
0 0 0 0 0 0
0
0
0
0/1
0/1
1
0/1
0/1
0/1
0/1
1 1 1 1
S2 1/0 1/0 1/0
1 1/0 1/0 1/0 S2
0/ 0 0/ 0 0/ 0 0/ 0 0/0 0/0
0 0 0 0 0 0
1/1
1/1
1/1
1 /1
1/1
1 /1
S1 S1
1
1
1
11 11 11 11 11 11
1/ 1/ 1/ 1/ 1/ 1/
0/00 0/00 0/00 0/00 0/00 0/00
S0 S0
CRSC codes use the concept of tailbiting.
– Sequence is encode so that initial state is same as final state.
Advantage and disadvantages
– No need for tail bits.
– Need to encode twice.
– Complicates decoder.
Turbo and LDPC Codes
6/7/2006 61/133
Duobinary codes
A
S1 S2 S3
W Y
-2
10
FER
-3
10
-4
10 Max-Log-MAP, unknown circulation state
log-MAP, unknown circulation state
log-MAP, known circulation state
-5
10
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Eb/No in dB
DVB-RCS:
0
Influence of Block Length
10 rate ⅓
N=48 max-log-MAP
N=64
-1 8 iterations
10 N=212
N=432 AWGN
N=752
-2
10
FER
-3
10
-4
10
-5
10
0 0.5 1 1.5 2 2.5 3 3.5
Eb/No in dB
DVB-RCS:
0
Influence of Code Rate
10 N=212
r=6/7
max-log-MAP
r=4/5
-1
r=3/4 8 iterations
10
r=2/3 AWGN
r=1/2
-2 r=2/5
10
r=1/3
FER
-3
10
-4
10
-5
10
0 1 2 3 4 5 6
Eb/No in dB
802.16 (WiMax)
The standard specifies an optional convolutional turbo code (CTC) for
operation in the 2-11 GHz range.
Uses same duobinary CRSC encoder as DVB-RCS, though without
output W.
A
S1 S2 S3
1 1 1 0 1 0 0
H 1 1 0 1 0 1 0
1 0 1 1 0 0 1
c-nodes
f0 f1 f2
v0 v1 v2 v3 v4 v5 v6
v-nodes
c-nodes
f0 f1 f2
v0 v1 v2 v3 v4 v5 v6
v-nodes
f0 =1 f1 =1 f2 =0
y0 =1 y1 =1 y2 =1 y3 =1 y4 =0 y5 =0 y6 =1
c0 =1 c1 =0 c2 =1 c3 =1 c4 =0 c5 =0 c6 =1
f0 =1 f1 =1 f2 =0
y0 =1 y1 =1 y2 =1 y3 =1 y4 =0 y5 =0 y6 =1
f0 =0 f1 =0 f2 =0
y0 =1 y1 =0 y2 =1 y3 =1 y4 =0 y5 =0 y6 =1
Step 3: Repeat 1 to 2 until all the parity checks are zero or a maximum
number of iterations are reached
f0 f1 f2
q10
q00 q01 q02
q11 q q31 q32 q51 q62
20 q22 q40
v0 v1 v2 v3 v4 v5 v6
y0 y1 y2 y3 y4 y5 y6
y0 y1 y2 y3 y4 y5 y6
Received code word (output of AWGN)
r13
r23
r00 r01
r02 r15 r26
r22 r03
r11
rr2010
v0 v1 v2 v3 v4 v5 v6
f0 f1 f2
q10 q32
q00 q02 q62
q01 q31 q40 q51
q20
q11 q22
v0 v1 v2 v3 v4 v5 v6
y0 y1 y2 y3 y4 y5 y6
cˆ H T 0
P (ci 0 | y, Si )
Qi log LLR of the ith code bit (ultimate goal of algorithm)
P ( c i 1| y , Si )
qij = log (qij(0)/qij(1))extrinsic info to be passed from v-node i to c-node j
qij Qi rji
– Make hard decision:
1 if Qi 0
cˆi
0 otherwise
Turbo and LDPC Codes
6/7/2006 87/133
Sum-Product Algorithm:
Notation
ij = sign( qij )
ij = | qij |
(x) = -log tanh(x/2) = log( (ex+1)/(ex-1) )= -1(x)
6
4
(x)
0
0 1 2 3 4 5 6
x
This greatly reduces complexity, since now we don’t have to worry about
computing the nonlinear function.
Note that since is just the sign of q, can be implemented by using XOR
operations.
Code #1:
-2 MacKay’s construction 2A
10
AWGN channel
BPSK modulation
Min-sum
-3
10
BER
-4
10
-5
10
-6 Sum-product
10
-7
10
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8
Eb/No in dB
Extrinsic-information Scaling
As with max-log-MAP decoding of turbo codes, min-sum decoding of LDPC
codes produces an extrinsic information estimate which is biased.
– In particular, rji is overly optimistic.
Code #1:
-2 MacKay’s construction 2A
10
AWGN channel
BPSK modulation
Min-sum
-3
10
BER
-4
10
-5 Min-sum
10 w/ extrinsic info scaling
Scale factor =0.9
-6 Sum-product
10
-7
10
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8
Eb/No in dB
Regular vs. Irregular LDPC codes
An LDPC code is regular if the rows and columns of H have uniform
weight, i.e. all rows have the same number of ones (dv) and all columns
have the same number of ones (dc)
– The codes of Gallager and MacKay were regular (or as close as possible)
– Although regular codes had impressive performance, they are still about 1 dB
from capacity and generally perform worse than turbo codes
An LDPC code is irregular if the rows and columns have non-uniform
weight
– Irregular LDPC codes tend to outperform turbo codes for block lengths of
about n>105
The degree distribution pair (λ, ρ) for a LDPC code is defined as
dv
( x) x
i2
i
i 1
dc
( x)
i 1
i x i 1
Construction 2A: M/2 columns have dv =2, with no overlap between any pair
of columns. Remaining columns have dv =3. As with 1A, the overlap between
any two columns is no greater than 1
For any LDPC code, there is a “worst case” channel parameter called the threshold such
that the message distribution during belief propagation evolves in such a way that the
probability of error converges to zero as the number of iterations tends to infinity
Density evolution is used to find the degree distribution pair (λ, ρ) that maximizes this
threshold
Richardson and Urbanke identify a rate ½ code with degree distribution pair
which is 0.06 dB away from capacity
– “Design of capacity-approaching irregular low-density parity-check codes”, IEEE
Trans. Inf. Theory, Feb. 2001
Chung et.al., use density evolution to design a rate ½ code which is 0.0045
dB away from capacity
– “On the design of low-density parity-check codes within 0.0045 dB of the Shannon
limit”, IEEE Comm. Letters, Feb. 2001
A common method for finding G from H is to first make the code systematic
by adding rows and exchanging columns to get the H matrix in the form H =
[PT I]
– Then G = [I P]
– However, the result of the row reduction is a non-sparse P matrix
– The multiplication c =[u uP] is therefore very complex
1 1 1 1 ... 1
1 1 1 1 ... 1
H2 1 1 and H 2T 1 ... 1
1 ... 1 ... 1
1 1 1
Then a systematic code can be generated with G = [I H1TH2-T].
It turns out that H2-T is the generator matrix for an accumulate-code (differential
encoder), and thus the encoder structure is simply:
u u
uH1TH -T
Multiply
2
by H1T
D
Similar to Jin & McEliece’s Irregular Repeat Accumulate (IRA) codes.
– Thus termed “Extended IRA Codes”
Turbo and LDPC Codes
6/7/2006 101/133
Performance Comparison
We now compare the performance of the maximum-length UMTS
turbo code against four LDPC code designs.
Code parameters
– All codes are rate ⅓
– The LDPC codes are length (n,k) = (15000, 5000)
• Up to 100 iterations of log-domain sum-product decoding
• Code parameters are given on next slide
– The turbo code has length (n,k) = (15354,5114)
• Up to 16 iterations of log-MAP decoding
BPSK modulation
AWGN and fully-interleaved Rayleigh fading
Enough trials run to log 40 frame errors
– Sometimes fewer trials were run for the last point (highest SNR).
-3
10
BER
-4
10
Code #1:
Code #3: Mackay 2A
-5
JWT Code #2:
10 R&U
Code #4:
IRA
-6
10
turbo
-7
10
0 0.2 0.4 0.6 0.8 1 1.2
Eb/No in dB
DVB-S2 LDPC Code
The digital video broadcasting (DVB) project was founded in 1993 by ETSI to
standardize digital television services
Normal frames support code rates 9/10, 8/9, 5/6, 4/5, 3/4, 2/3, 3/5, 1/2, 2/5,
1/3, 1/4
– Short frames do not support rate 9/10
DVB-S2 uses an extended-IRA type LDPC code
Valenti, et. al, “Turbo and LDPC codes for digital video broadcasting,” Chapter
12 of Turbo Code Application: A Journey from a Paper to Realizations,
Springer, 2005.
10 r=1/4
-3
10
-4
10
0 1 2 3 4 5
Eb/No in dB
FER for DVB-S2 LDPC Code
Short Frames in BPSK/AWGN
0
10
r=8/9
r=5/6
r=4/5
r=3/4
-1
10 r=2/3
r=3/5
r=1/2
r=2/5
r=1/3
r=1/4
FER
-2
10
-3
10
-4
10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5
Eb/No in dB
M-ary Complex Modulation
= log2 M bits are mapped to the symbol xk, which is
chosen from the set S = {x1, x2, …, xM}
– The symbol is multidimensional.
– 2-D Examples: QPSK, M-PSK, QAM, APSK, HEX
– M-D Example: FSK, block space-time codes (BSTC)
The signal y = hxk + n is received
– h is a complex fading coefficient.
– More generally (BSTC), Y = HX + N
Modulation implementation in the ISCML
– The complex signal set S is created with the CreateConstellation
function.
– Modulation is performed using the Modulate function.
f (y | x k )
log
f (y | x m )
x m S
log f (y | x k ) log f (y | x
x m S
m )
max( x, y ) f c y x
0.4
0.3
f c ( z ) log1 exp z )
fc(|y-x|)
0.2
0.1
-0.1
0 1 2 3 4 5 6 7 8 9 10
|y-x|
Capacity of Coded Modulation (CM)
Suppose we want to compute capacity of M-ary
modulation
– In each case, the input distribution is constrained, so there is no
need to maximize over p(x)
– The capacity is merely the mutual information between channel
input and output.
The mutual information can be measured as the following
expectation:
C I ( X ; Y ) E x k ,n log M log p(x k | y ) nats
Noise Generator
6 c ity
Capacity (bits per symbol)
pa 64QAM
Ca
ed
in
5 ts ra
con
U n
D
2- 16QAM
4
16PSK
3 8PSK
2
QPSK
1
BPSK
0
-2 0 2 4 6 8 10 12 14 16 18 20
Eb/No in dB
15
Capacity of M-ary Noncoherent FSK in AWGN
W. E. Stark, “Capacity and cutoff rate of noncoherent FSK
with nonselective Rician fading,” IEEE Trans. Commun., Nov. 1985.
M.C. Valenti and S. Cheng, “Iterative demodulation and decoding of turbo coded
M-ary noncoherent orthogonal modulation,” to appear in IEEE JSAC, 2005.
M=2
5
M=4
M=16
M=64
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Rate R (symbol per channel use)
15
10
Minimum Eb/No (in dB)
M=2
M=4
5
M=16
M=64
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Rate R (symbol per channel use)
BICM
Coded modulation (CM) is required to attain the
aforementioned capacity.
– Channel coding and modulation handled jointly.
– e.g. trellis coded modulation (Ungerboeck); coset codes (Forney)
Most off-the-shelf capacity approaching codes are binary.
A pragmatic system would use a binary code followed by
a bitwise interleaver and an M-ary modulator.
– Bit Interleaved Coded Modulation (BICM); Caire 1998.
u c' n cn Binary xk
Binary Bitwise to M-ary
Encoder Interleaver mapping
p c n 1 | y
p x k | y p y | x p[ x
k k ]
x k S n(1) x k S n(1)
n log log log
p cn 0 | y p x k | y p y | x k p[ xk ]
x k S n( 0 ) x k S n( 0 )
max*
(1)
log f y x k max*
(0)
log f y x k
x k S n x k S n
(1 )
– where S n represents the set of symbols whose nth bit is a 1.
(0)
– and S n is the set of symbols whose nth bit is a 0.
Turbo and LDPC Codes
6/7/2006 121/133
BICM Capacity
BICM transforms the channel into parallel binary
channels, and the capacity of the nth channel is:
C k E c ,n log( 2) log p (c k | y ) nats
n
p (c k | y )
log( 2) E cn ,n log nats
p ( c k 0 | y ) p (c k 1 | y )
p ( c k 0 | y ) p (c k 1 | y )
log( 2) E cn ,n log nats
p (c k | y )
p (c k 0 | y ) p (c k 1 | y )
log( 2) - E cn ,n log exp log exp log nats
p ( c k | y ) p ( c k | y )
p (c k 0 | y ) p ( c k 1 | y )
log( 2) - E cn ,n max* log , log nats
p (c k | y ) p ( c k | y )
log( 2) - E cn ,n max* 0, (1) ck k nats
nats
log(2) - E cn ,n max* 0, (1) ck k
k 1
nats
log(2) E cn ,n max* 0, (1) ck k
k 1
bits
1
log(2) k 1
E cn ,n max* 0, (1) ck k
Noise Generator
bits
E cn ,n max* 0, (1) ck k
k 1
0.6
0.5
0.4
0.3
0.2
0.1
0
-10 -5 0 5 10 15 20
Minimum Es/No (in dB)
BICM-ID
The conventional BICM receiver assumes that all bits in a
symbol are equally likely:
p x | y p y x
xS n(1) xS n(1 )
n log log
p x | y p y x
xS n( 0 ) xS n( 0 )
However, if the receiver has estimates of the bit
probabilities, it can use this to weight the symbol
likelihoods. p y x p(x | cn 1)
xS n(1)
n log
p y x p(x | c n 0)
xS n( 0 )
This information is obtained from decoder feedback.
– Bit Interleaved Coded Modulation with Iterative Demodulation
– Li and Ritcey 1999.
Turbo and LDPC Codes
6/7/2006 126/133
Mutual Information Transfer Chart
Now consider a receiver that has a priori information
about the code bits (from a soft output decoder).
Assume the following:
– The a priori information is in LLR form.
– The a priori LLR’s are Gaussian distributed.
– The LLR’s have mutual information Iv
Then the mutual information Iz at the output of the receiver
can be measured through Monte Carlo Integration.
– Iz vs. Iv is the Mutual Information Transfer Characteristic.
– ten Brink 1999.
0.9
0.8
0.4
0.3
0.2
0.1
0
0 5 10 15 20 25 30 35 40 45 50
variance
Mutual Information Characteristic
1
0.9 gray
SP
0.8 MSP
MSEW
0.7 Antigray
0.6
0.5
z
I
0.4 16-QAM
AWGN
0.3
6.8 dB
0.2
0.1
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Iv
EXIT Chart
1
16-QAM
0.9
AWGN
0.8 6.8 dB
adding curve for a FEC code
0.7 makes this an extrinsic information
transfer (EXIT) chart
0.6
0.5
z
I
0.4 gray
SP
0.3 MSP
MSEW
0.2 Antigray
K=3 Conv code
0.1
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Iv
EXIT Chart for
Space Time Block Code
1
16-QAM
0.9
8 dB
0.8
Rayleigh fading
0.7
0.6
0.5
z
I
0.4 1 by 1 MSP
2 by 1 Alamouti MSP
0.3 2 by 1 Alamouti huangNr1
2 by 2 Alamouti MSP
0.2 2 by 2 Alamouti huangNr2
K=3 Conv code
0.1
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Iv
EXIT Chart Analysis of Turbo Codes
PCCC (turbo) codes can
be analyzed with an EXIT
chart by plotting the mutual
information transfer
characteristics of the two
decoders.
Figure is from:
S. ten Brink, “Convergence
Behavior of Iteratively
Decoded Parallel
Concatenated Codes,”
IEEE Trans. Commun.,
Oct. 2001.