1 / 27

DVB-S2 LDPC Encoder Example (L . Schirber 2/21/13 )

DVB-S2 LDPC Encoder Example (L . Schirber 2/21/13 ). DVB-S2 LDPC encoding is illustrated via an example: a sample "half-rate", short-frame ( N = 16,200) encoder is constructed following the standard [2].

cece
Download Presentation

DVB-S2 LDPC Encoder Example (L . Schirber 2/21/13 )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DVB-S2 LDPC Encoder Example (L. Schirber 2/21/13) DVB-S2 LDPC encoding is illustrated via an example: a sample "half-rate", short-frame (N = 16,200) encoder is constructed following the standard [2]. The code's parity check matrix (A) is analyzed and plotted. BER simulations (BPSK over AWGN) suggest very good performance. TOPICS Result: Half-rate, Short Frame DVB-S2 A Matrix: Decoder Performance Background and Review Introduction to DVB-S2 Encoding LDPC Codes: Traditional Encoding [1],[3] "Repeat Accumulate" (RA) Codes are LDPC Codes [1] DVB-S2 LDPC Encoding [2] Example: N = 16200, R = 1/2 Parity Check Matrix Analysis [1] Error Correction Coding: Mathematical Methods and Algorithms, by Moon (2005) [2] ETSI EN 302 307 v1.2.1 (2009-08) Digital Video Broadcasting (DVB); Second generation framing structure,channel coding and modulation systems for Broadcasting, Interactive Services, News Gathering and other broadband satellite applications (DVB-S2) [3] Gallager, "Low-Density Parity-Check, Codes", MIT Press, (1963) Page 1

  2. LDPC Code Comparison: Gallager-type Constructions vs. DVB-S2 A Matrix previous results 11/11 new result 2/13 The DVB-S2 results, though preliminary, suggest exceptional performance - rivaling the Density Evolution limit - as suggested by the cyan points and line. Page 2

  3. Introduction to DVB-S2 Encoding (from [2]) BCH encoder LDPC encoder m c g(x) A • A DVB-S2 code uses a concatenation of a BCH code (a cyclic, linear block code) with a LDPC or low-density, parity-check code. • "Low-density" here means sparse in 1s in the parity check matrix (A). • This LDPC code can be described and encoded more efficiently (than by traditional methods) as a "Repeat-Accumulate" - "RA" for short - code. • A BCH encoding is done first, taking as given the generatorpolynomialg(x) (as selected by the DVB-S2 user via the code rate R and (short or long) frame length N) for a systematic cyclic code as described in [1]. • However, this encoding is not discussed further here. • Instead we describe how to construct the parity check matrix A first for a simple RA code example, then for a DVB-S2 example. Page 3

  4. Definition of a LDPC Code • Definition 15.1 A low density parity check code is a linear block code that has a very sparse parity check matrix A. • The column weights of A are the weights wc of each column, the row weights of A are the weights wr of each row. • An LDPC code is regular if the column weights (wc) for each column are the same, and the row weights (wr) for each row are the same.

  5. wr wr wr Random Construction of a Regular, Parity Check Matrix [from1] • Example 15.2 One way to build a (wc ,wr)-regular LDPC matrix of size M by N is as follows. First construct a M/wc by N, sparse, (0,1) "base" matrix A0 as below: • Then construct A by stacking random column permutations of A0 :

  6. Determining the Generator Matrix from the Parity Check Matrix • For encoding we need generator matrix G ; we’re given parity check matrix A. A complication is that A may not have linearly independent rows. • Problem: Determine G, the N by K generator matrix for the linear block code given A, the M by N parity check matrix. (Assume codeword c is a column vector of length N. Use H to denote a parity check matrix in systematic form, A for a general parity check matrix.) • solution [1]: Using Gaussian elimination with column pivoting as necessary (with binary arithmetic) determine an M  M matrix Ap-1 so that • If such a matrix Ap-1 doesn’t exist, form H by truncating the linearly dependent rows from Ap-1 A. Here, define K = N - M + O where O counts the rows omitted; hence, in either case we write H = HN - K  N . • Having found H, form G from A2 , a N-K by K matrix.

  7. Remarks on the Traditional LDPC Encoding Procedure • This non-systematic encoding procedure has been found to be impractical for moderately large (code length N > 5000) codes. • The procedure for determining G the generator matrix from A the parity check matrix, in particular, involves a procedure akin to "Gaussian elimination modulo 2", which becomes difficult for large N. • Even if G can be constructed, it will generally not be sparse (like A), leading to increased complexity for recovering the actual message from the codeword estimate. • Because of this methods for systematic encoding (the message is contained in the codeword) for LDPC codes have been developed. • Moon discusses a few of these (constructions based on "finite geometries" or "Latin rectangles", for example) in section 11 of Chapter 15. • Here we investigate the Repeat Accumulate variant for LDPC matrix construction and encoding.

  8. Example: RA Encoder (1 of 2) • These bits pass through the interleaver, which produces the output sequence (x1' =x1, x2' =x4, x3' =x6, x4' =x2, x5' =x3, x6' =x5) accumulator • Then the accumulator produces the running sum output (modulo 2). (q,1) repetition code  permute p m + D • Example 15.11 (from [1]): Consider a systematic RA code on K = 2 message bits with a (3,1) repetition code. The interleaver is  = (1,4,6,2,3,5). • Two message bits arrive at the encoder and are replicated 3 times: Page 8

  9. Example: RA Encoder (2 of 2) Tanner graph p1 p2 p3 p4 p5 p6 or z5 z1 z2 z4 z3 z6 accumulator m2 m1 • The p vector is appended to m to form the codeword c: (q,1) repetition code  permute p m + D Example 15.11 (continued) We can re-arrange these equations as checks. Page 9

  10. Generator and Parity Check Matrices: RA Encoder (1 of 5) accumulator (q,1) repetition code  permute p m + D • ProblemConsider a systematic RA code on K = 2 message bits with a (3,1) repetition code, as in the previous example. The interleaver is  = (1,4,6,2,3,5). Determine the parity check matrix A and generator matrix G, and use the example to infer the general formulas. • solution: Here we have K = 2 bits in a message, q = 3 for the repetition count, leading to N= qK + K = 8 bits in the codeword. The K message bits are repeated in the codeword. We find matrix representations for the steps in the encoding process, and combine them to form G.A can be expressed in terms of the matrices used to form G. Page 10

  11. Generator and Parity Check Matrices: RA Encoder (2 of 5) • 2. Permute w using the given permutation .  uniquelydetermines "exchange" matrix E. • We have a systematic RA code on K = 2 message bits with a (3,1) repetition code. The interleaver is  = (1,4,6,2,3,5). • 1. A message m of K = 2 bits is repeated q = 3 times to give w, represented as a multiplicaton by a D or "duplicate" matrix: Page 11

  12. Generator and Parity Check Matrices: RA Encoder (3 of 5) • 4. Form codeword c from message m and parity p vectors. We have c = Gm, where G can be expressed as below. • 3. Accumulate the result in parity vector p by forming the running sum modulo 2 of the permuted w'. Page 12

  13. Generator and Parity Check Matrices: RA Encoder (4 of 5) • 5. Form G from D,E, and S. The product ED will be used as a submatrix in A. Page 13

  14. Generator and Parity Check Matrices: RA Encoder (5 of 5) • 6. Form A from ED and the inverse of S. This inverse has a banded diagonal form, with a second string of 1s below the diagonal. Page 14

  15. Remarks on the Example RA Encoder (1 of 2) • The parity check matrix can also be expressed in terms of the 3 matrices. For a systematic generator we see that Ac = 0 equations can be expressed as below The encoding steps can be described in terms of multiplications (mod 2) of 3 matrices, D for duplicate, E for exchange, and S for sum: Page 15

  16. Remarks on the Example RA Encoder (2 of 2) Tanner graph p1 p2 p3 p4 p5 p6 z5 z1 z2 z4 z3 z6 m2 m1 • This is a regular RA code, as each message bit is repeated the same number of times. An irregular RAcode repeats the message bits a variable (but known) number of times. The Tanner graph can be constructed from the parity check matrix, leading in our example to the graph below. Page 16

  17. Irregular RA Encoder Example Tanner graph: Irregular RA code p1 p2 p3 p4 p5 p6 p7 z7 z6 z5 z1 z2 z4 z3 m2 m1 We add another parity check and another connection to the second bit to create an irregular RA code. Page 17

  18. DVB-S2 LDPC Encoding Algorithm • We next describe how P is organized, first outlining the general case. • P is organized into "blocks" of 360 columns, where the ones in the first column of each block are found from a row in a table B.1, B.2, ..., or tB.11 for the normal frames, or C.1, C.2, ..., or C.10 for the short frames. The other ones in the columns of the block fall on "lines" from the starting indices for the block, as we show next. BCH encoder LDPC encoder c m g(x) A The DVB-S2 LDPC encoder uses a construction similar (but not identical) to an irregular RA code. We construct the A matrix from two submatrices. The second S -1 has the familiar form of a banded diagonal matrix, and the first - which we refer to as P - is formed from the tables and formulas in the ETSI documentation. Page 18

  19. P Matrix for a Short Frame with R = 1/2 (N = 16200, K = 7200) • The general formula to find the jth index of a one in column kof matrix P depends on N, K, cell array B, and parameter q. Here N = 16200, K = 7200, and q = 25. % copy entries in Table C.4 (R = 1/2) into cell array B B{1} = [20 712 2386 6354 4061 1062 5045 5158]; B{2} = [21 2543 5748 4822 2348 3089 6328 5876]; B{3} = [22 926 5701 269 3693 2438 3190 3507]; B{4} = [23 2802 4520 3577 5324 1091 4667 4449]; B{5} = [24 5140 2003 1263 4742 6497 1185 6202]; B{6} = [0 4046 6934]; B{7} = [1 2855 66]; B{8} = [2 6694 212]; B{9} = [3 3439 1158]; B{10} = [4 3850 4422]; B{11} = [5 5924 290]; B{12} = [6 1467 4049]; B{13} = [7 7820 2242]; B{14} = [8 4606 3080]; B{15} = [9 4633 7877]; B{16} = [10 3884 6868]; B{17} = [11 8935 4996]; B{18} = [12 3028 764]; B{19} = [13 5988 1057]; B{20} = [14 7411 3450]; The table C.4 (R=1/2) entries in row i determine the ones in block i(360 columns) of the P matrix. Here P has K = 7200 columns, so there are 20 blocks. Page 19

  20. Ones in P Matrix: First Block (360 Columns) >> jj = find(P(:,1))' jj = 21 713 1063 2387 4062 5046 5159 6355 >> jj = find(P(:,2))' jj = 46 738 1088 2412 4087 5071 5184 6380 >> jj = find(P(:,360))' jj = 688 1038 2362 4037 5021 5134 6330 8996 B{1} = [20 712 2386 6354 4061 1062 5045 5158];

  21. Ones in P Matrix: Second Block (Columns 361 to 720) >> jj = find(P(:,361))' jj = 22 2349 2544 3090 4823 5749 5877 6329 >> jj = find(P(:,362))' jj = 47 2374 2569 3115 4848 5774 5902 6354 >> jj = find(P(:,720))' jj = 2324 2519 3065 4798 5724 5852 6304 8997 B{2} = [21 2543 5748 4822 2348 3089 6328 5876];

  22. Ones in P Matrix: Block = 20 (Columns 6841 to 7200) >> jj = find(P(:,6841))' jj = 15 3451 7412 >> jj = find(P(:,6842))' jj = 40 3476 7437 >> jj = find(P(:,7199))' jj = 3401 7362 8965 >> jj = find(P(:,7200))' jj = 3426 7387 8990 B{20} = [14 7411 3450]

  23. DVB-S2 Example: Building the A Matrix ( 1 of 2) "inverse of Sum" matrix S-1 "parity" matrix P = We draw P and S -1. Combining them (side-by-side) produces A. Page 23

  24. DVB-S2 Encoding Example: A Matrix ( 2 of 2) The parity check matrix A for N = 16,200 and R = 1/2 is irregular. Page 24

  25. Parity Check Matrix Analysis: Gallager's N = 20 Code, (N = 20, M =15, K = 7) Row overlap matrix A matrix Histogram of Overlaps Histogram of Codeword Weights dmin = 6

  26. Parity Check Matrix Analysis: Half-Rate, Short Frame DVB-S2Code, (N = 16200, M=9000, K = 7200) Row overlap matrix A matrix Histogram of Overlaps Histogram of Codeword Weights dmin 7826

  27. DVB-S2 Encoding: Systematic Generator The generator matrix can be determined from the P and S inverse matrices. Page 27

More Related