18
1 (Chapter 15): Concatenated codes Simple (classical, single-level) concatenation 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: 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

1 (Chapter 15): Concatenated codes Simple (classical, single-level) concatenation Length of concatenated code: n 1 n 2 Dimension of concatenated code:

Embed Size (px)

Citation preview

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