Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
The SPA on the Tanner graph • qj,lx,(i) = P(vl = x |check sums Al \ {hj} at ith iteration} • j,lx,(i) = P(sj=0| vl = x,{vt:tB(hj)\{l}}) tB(hj)\{l} qj,tvt,(i) • qj,lx,(i+1) = j,l(i+1) ht Al \ {hj} t,lx,(i) vl x,(i+1 qqj,lj,lx,(i) j,lx,(i) ) + sj 1 The sum-product decoding algorithm • Initialization • i=0 • For each pair (j,l) such that hj,l = 1, • qj,l0,(i) = pl0 ,qj,l1,(i) = pl1 • (Assume implicit message passing) a) For each l and for each hj Al compute j,lx,(i) ), x{0,1} b) For each j and for each l such that hj Al compute qj,lx,(i+1) , and P (i+1)(vl = x | y ), for x{0,1}. c) Determine the hard decisions based on P (i+1)(vl = x | y ) for each l, and form the syndromes. If there remain parity check failures and if iImax, set i=i+1 and repeat from a) d) Output hard decisions based on the previous step. 2 Complexity of the SPA • Number of multiplications per iteration: • O(2J+4n) • Linear in the number of 1-entries in H • Number of logarithm operations per iteration: • O(n) 3 Alternative SPA description • Update extrinsic information at each decoding iteration 4 Alternative SPA description • Modified channel value matrix 5 6 Design of LDPC codes Requirements: • Satisfy conditions of the LDPC definition • Provide good performance when used with a specified decoder • Random codes: Determine the connections of the bipartite Tanner graph by using a (pseudo)random algorithm observing the degree distribution of the code-bit vertices and the parity check vertices • Regular • Irregular • Graph theoretic codes • Combinatorial codes • Codes from finite geometries • Other algebraic constructions 7 An introduction to Euclidean geometries • • • • • • • • The m-dimensional Euclidean geometry over GF(2s) EG(m, 2s) consists of the set of all m-tuples (a0,...,am-1) such that each component ai GF(2s) Each m-tuple (a0,...,am-1) is called a point If a = (a0,...,am-1), then the set of 2s points {a: GF(2s)} is a line which contains the origin (0,...,0) Let L = {a: GF(2s)} be a line and b be a point not on L. We say that a and b are linearly independent. In general, a line in EG(m, 2s) is given by {b+a: GF(2s)} . Two linearly independent points are connected by exactly one line Two different lines have either zero or one point in common Given a point a EG(m, 2s) there are exactly (2ms -1)/(2s -1) lines that intersect in the point a The total number of lines in EG(m, 2s) is 2(m-1)s(2ms -1)/(2s -1) 8 Type-I geometry-Q LDPC codes • • • • • • • Q: a finite geometry with n points p1,...,pn and J lines L1,...,LJ : • Each line has points • Each point lies on lines L1,...,LJ • Two points are connected by exactly one line • Two lines are either disjoint or they intersect at exactly one point Incidence vector of L, vL=(v1,...,vn) GF(2) n : vi = 1 iff pi L Then w(vL) = HQ(1) = Jn matrix with • Rows: the incidence vectors of all lines in Q : row weight • Columns corresponding to the n points of Q : column weight Then no pair of rows have more than one 1 in common And no pair of columns have more than one 1 in common 9 Type-I geometry-Q LDPC code. Type-I geometry-Q LDPC: Properties • • Minimum distance + 1 Tanner graph: • Regular; Each of the n code bit nodes have degree and each of the J check nodes have degree . • No cycles of weight 4 • Does contain cycles of weight 6 (Exercise 17.23) 10 Type-II geometry-Q LDPC codes • • • • • Q: a finite geometry with n points p1,...,pn and J lines L1,...,LJ : • Each line has points • Each point lies on lines • Two points are connected by exactly one line • Two lines are either disjoint or they intersect at exactly one point Intersecting vector of p, vp=(v1,...,vJ) GF(2)J : vi = 1 iff p Li Then w(vL) = HQ(2) = [HQ(1)]T= nJ matrix with • Rows: intersecting vectors of all points in Q : row weight • Columns: incidence vectors of all lines in Q : column weight • Then no pair of rows have more than one 1 in common • And no pair of columns have more than one 1 in common 11 Type-II geometry-Q LDPC code. Companion of Type I code Q = EG(m, s 2) : Type I • n = 2ms points = number of code bits • J = 2(m-1)s(2ms -1)/(2s -1) lines = number of parity checks • = 2s points on each line • Each point is contained in = (2ms-1)/(2s-1) lines • Therefore the minimum distance is at least +1 = (2ms-1)/(2s-1)+1 Example: Q = EG(2, 24) • n = 2ms points = 256 • J = 2(m-1)s(2ms -1)/(2s -1) lines = 272 • = 2s = 16 points on each line • = (2ms-1)/(2s-1) = 17 minimum distance at least 18 (in fact =18) • The rank of HQ(1) = 81, so the dimension is 175 12 Q = EG(m, s 2) : Type II • J = 2(m-1)s(2ms -1)/(2s -1) = number of code bits • n = 2ms = number of parity checks • = (2ms-1)/(2s-1) Each point is contain • = 2s • Therefore the minimum distance is at least +1 = 2s +1 Example: Q = EG(2, 24) • J = 2(m-1)s(2ms -1)/(2s -1) points = 272 • n = 2ms lines = 256 • = (2ms-1)/(2s-1) = 17 points on each line • = 2s = 16 minimum distance at least 17 (in fact =17) • The rank of HQ(1) = 81, so the dimension is 191 13 Cyclic EG-LDPC codes • • • • • • • • • • Remove origin point and all lines passing through it J0 = (2(m-1)s-1 )(2ms -1)/(2s -1) lines that do not pass through the origin n0 = 2ms -1 points = 2s points on each line 0 = (2ms-1)/(2s-1)-1 lines through each point Type I code: Minimum distance at least 0 +1= (2ms-1)/(2s-1) This code, CEG,c(1)(m,0,s), turns out to be a cyclic code: The (0,sth)-order EG code (Ch. 8*), generator polynomial gEG,c(1)(X) primitive element of GF(2ms) h root of gEG,c(1)(X) for h < 2(m-1)s+ 2(m-2)s+1+1 minimum distance Tighter than the 0 +1 bound except for m=2 14 Cyclic EG-LDPC codes: Type I, m=2 • • • • • n = 22s – 1 points, J = 22s – 1 parity checks Can show: n – k = 3s – 1 parity check bits Dimension k = 22s – 3s Minimum distance at least +1 = 2s + 1 Density r = 2s / (22s – 1) 15 Projective Geometry LDPC codes • • LDPC codes can also be designed using projective geometries in the place of Q Slightly different parameters 16 Example: Type-I cyclic EG-LDPC • • m=2, s=5: (1023,781,33) code, R=0.763 Also shown: Type-I PG-LDPC (1057,813,34), R=0.769 17 Example: Type-I cyclic EG-LDPC • • m=2, s=6: (4095,3367,65) code, R=0.83 Also shown: Type-I PG-LDPC (4161,3431,66), R=0.825 18 Example: Type-I cyclic EG-LDPC • • m= s=3: Type I: a (511,139,79) code, R=0.272 Type-II EG-LDPC (4599,4227, 9), R=0.92 19 Yet another example • • Type I cyclic EG-LDPC (255,175) code Type I cyclic PG-LDPC (273,191); two random (273,191) codes 20 FG LDPC codes vs. random • • • Longer codes: Random LDPC codes should outperform FG LDPC codes. Encoding may be difficult in random codes due to lack of structure Iterative encoding? 21 Performance vs. number of iterations 22 Suggested exercises • 17.12-17.14,17.23 23