180 likes | 205 Views
(Chapter 15): Concatenated codes. Length of concatenated code: n 1 n 2 Dimension of concatenated code: k 1 k 2 If minimum distances of component codes are d 1 and d 2 , respectively, then the concatenated code has minimum distance d 1 d 2 Decoding:
E N D
(Chapter 15): Concatenated codes • 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 distanced1d2 • 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 • Simple (classical, single-level) concatenation
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
Generalization of the model m may range from 1 to ”large” Permutes the order of channel symbols
Multilevel concatenated codes K1 N K2N KmN • 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) • K = Ki(ki- ki+1) • d(C) min{d(Bi)d(Ai)} • Multiple outer and inner codes
Multi-stage decoding • m-level multilevel concatenation: • Decode stage B1 [A1/A2] first,..., stage Bm Am last • Decode r = r(1) into a codeword b1 in B1 Inner decoding:Find closest word in [A1/A2] Outer decoding: Use inner decoder’s resultsSet i=2; • Let r(i) = r(i-1) – fi-1(bi-1). Decode r(i) into a codeword bi in BiSet i=i+1;If (im), repeat from 2.
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 • Decode r = r(1) into a codeword b1 in B1Inner decoding:Find closest word in [A1/A2] Outer decoding: Use inner decoder’s resultsSet i=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 BiSet i=i+1;If (im), repeat from 2.
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
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
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)
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}]
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
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
Iterative multistage MLD algorithm • Decoding algorithm (m=2-stage decoding) • 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. • 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. • 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), i0give the most likely codeword. Otherwise go to 4. • If coset label L(b(1), i)C: Best codeword found, so stop, otherwise proceed to 5. • If M(b(2 ),i)> M(b(2),i0), set i0=i and update tables and index i. Go to 3.
Example IMS-MLD • Can be generalized to an m-stage iterative procedure. • RM(3,7) = (128,64,16) code.
Convolutional inner codes • Can of course use convolutional codes as inner codes. Facilitates SD decoding • Example in book...
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
Suggested exercises • In principle: All Ch. 15 problems • But some rely on insight in the RM codes