Upload
adela-robinson
View
271
Download
2
Tags:
Embed Size (px)
1
(Chapter 15): Concatenated codes
• Simple (classical, single-level) concatenation
• Length of concatenated code: n1n2
• Dimension of concatenated code: k1k2
• If minimum distances of component codes are d1 and d2 , respectively, then the concatenated code has minimum distance d1d2
• Decoding:
• Two-stage: Decode (Hard decision out) inner code, then outer code
• Not optimum! Can decode up to approximately ¼ of min. dist.
• Good for decoding mixture of random and burst errors
2
Multiple Inner Codes
• Not necessary that all inner codes are identical• Justesen codes:
• n2 different inner codes
• Can show that a good class of codes can be constructed this way
• A class {Ci} of codes of increasing lengths ni is good if the normalized dimensions ki/ni and the normalized minimum distances di/ni are both bounded away from zero.
• A theoretical result; first known class of good codes
3
Generalization of the model
m may range from 1 to ”large”
Permutes the order of channel symbols
4
Example of interleaved serial concatenation
5
Multilevel concatenated codes• Multiple outer and inner codes • A1 A2...Am {0}
• ki dimension of Ai
• d(Ai) min.dist. of Ai
• [Ai/Ai+1] coset code: set of coset representatives; dimension ki - ki+1
• qi = 2ki-ki+1
• Bi code over GF(qi)
K1 N
K2 N
Km N
• K = Ki(ki - ki+1)
• d(C) min{d(Bi)d(Ai)}
6
Multi-stage decoding• m-level multilevel concatenation:
• Decode stage B1 [A1/A2] first,..., stage Bm Am last
1. Decode r = r(1) into a codeword b1 in B1 Inner decoding:Find closest word in [A1/A2] Outer decoding: Use inner decoder’s results
Set i=2;
2. Let r(i) = r(i-1) – fi-1(bi-1). Decode r(i) into a codeword bi in Bi
Set i=i+1;If (im), repeat from 2.
7
Soft decision multistage decoding
• Requires soft decision (and usually trellis based) decoding at each decoding stage
• Decode stage B1 [A1/A2] first,..., stage Bm Am last
1. Decode r = r(1) into a codeword b1 in B1
Inner decoding:Find closest word in [A1/A2] Outer decoding: Use inner decoder’s results
Set i=2;
2. Modify received vector r(i) : rj,l
(i) = rj,l(i-1) (1-2cj,l
(i-1))Decode r(i) into a codeword bi in Bi
Set i=i+1;If (im), repeat from 2.
8
Inner and outer decoding
• Inner decoder:
• Find the word (label) in each coset in [Ai/Ai+1] with largest metric for each symbol of the outer code
• Pass these metric tables to the outer decoder
• Outer decoder:
• Find word with largest metric
• Not MLD because of possible error propagation
• Simpler than known MLD algorithms for such codes
• Can be improved by passing a list of L candidates from one decoding stage to the next; and by selecting as the final decoded word the one wth the largest metric at the final stage
9
Code decomposition• Expressing a code in terms of a multilevel
concatenation -level decomposable code: can be expressed as a
-level concatenated code
• Some classical code constructions may be expressed in this way. This may facilitate decoding of such codes, and can provide SD decoding
• r-th order Reed-Muller code of length 2m, RM(r,m)
• Idea: Decompose trellis into trellises, each trellis significantly less complex than the original
10
Properties of RM(r,m)• v0=(1...1) of length 2m
• vi=(0...0, 1...1, 0...0, ....... , 1...1) (groups of length 2i-1)
• RM(r,m) is spanned by vectors: v0,v1, v2 , ..., vm,v1v2 ,
v1v3 , ..., vm-1vm, ...all products of degree up to r
• k(r,m) = 1+C(m,1)+...+C(m,r), q(r,m) = C(m,r)
• Minimum distance 2m-r
• RM(r,m) RM(r-1,m) ... RM(0,m) = {0,1} RM(-1,m) = {0}
• RM(m-1,m) is a single parity check code• RM(m-r-1,m) is the dual code of RM(r,m)
12
RM codes and interleaving
• RM(r,m) = {RM(0,)q(r,m-), RM(1,)q(r-1,m-),..., RM(,)q(r- ,m-)} {RM(r, m-), RM(r-1, m-),..., RM(r-, m-)} ...for any ,: 1 m-1, = for r>, =r for r .
• Example: RM(3,6) , a (64,42,8) code. Select = =3• RM(3,6) =
{RM(0,3)q(3,3), RM(1,3)q(2,3), RM(2,3)q(1,3),RM(3,3)q(0,3)} {RM(3, 3), RM(2, 3), RM(1, 3), RM(0, 3)}
• = {(8,1),(8,4)3, (8,7)3,(8,8)} {(8,8),(8,7),(8,4),(8,1)}= (8,1) [(8,8)/(8,7)] (8,4)3 [(8,7)/(8,4)] (8,7)3 [(8,4)/(8,1)] (8,8) [(8,1)/{0}]
13
Example
• RM(4,7) = (128,99,8) code. • Can show that trellis has max log state complexity of 19• Can be decomposed into 3-level concatenation• Subtrellises of lengths 16 and 8, at most 256 states
14
Another example
• RM(3,7) = (128,64,16) code.
• Can show that trellis has max log state complexity of 26
• Can be decomposed into 3-level concatenation
• Subtrellises of lengths 16 and 8, at most 512 states
15
Iterative multistage MLD algorithm• Decoding algorithm (m=2-stage decoding)
1. Compute best estimate b(1),1 of first decoding stage, and M(b(1),1).If coset label sequence L(b(1),1)C: Best codeword found, so stop, otherwise proceed to 2.
2. Second stage decoding, obtain L(b(2),1), M(b(2),1). Store b(1),1 and b(2),1. Set i0=1, i=2.
3. Calculate b(1),i and b(2),i. If M(b(2 ),i0)> M(b(1),i), decoding is finished, and b(1), i0 and b(2), i0 give the most likely codeword. Otherwise go to 4.
4. If coset label L(b(1), i)C: Best codeword found, so stop, otherwise proceed to 5.
5. If M(b(2 ),i)> M(b(2),i0), set i0=i and update tables and index i. Go to 3.
16
Example IMS-MLD
• Can be generalized to an m-stage iterative procedure.
• RM(3,7) = (128,64,16) code.
17
Convolutional inner codes
• Can of course use convolutional codes as inner codes. Facilitates SD decoding
• Example in book...
18
Concatenation of binary codes
• Also possible with binary outer codes (block or convolutional)
• More difficult to make statements about overall minimum distance
• Interleaver useful for increasing distance
• SISO algorithms useful
• Iterative decoding useful
• Serial concatenation/Parallel concatenation
19
Suggested exercises
• In principle: All Ch. 15 problems
• But some rely on insight in the RM codes