SPA decoding on the Tanner graph x,(i) q j,l = P(v l = x check sums A l \ {h j } at the ith iteration} x,(i) σ j,l = Σ P(s = 0 v = x,{v : t B(h )\{l}}) q {vt : t B(h j )\{l}} j l t j t B(h j )\{l} j,t v t,(i) x,(i+1) (i+1) x q j,l = α j,l p l σ ht A l \ {h j } t,l x,(i) v l σ a,l x,(i) σ j,l x,(i) q j,m x,(i) q j,l x,(i) + s j σ b,l x,(i) q j,n x,(i) 1
SPA decoding Initialization i = 0 For each pair (j,l) such that h j,l = 1, set q j,l 0,(i) = p l 0 and q j,l 1,(i) = p l 1 For each l and for each h j A l compute σ j,l x,(i), x {0,1} For each j and for each l such that h j A l compute q j,l x,(i+1) and P (i+1) (v l = x y), x {0,1} Determine the hard decisions based on P (i+1) (v l = x y) for each l and form the syndromes. If there remain parity check failures and if i < I max, set i = i + 1 and repeat Output hard decisions based on the previous step 2
Complexity of SPA decoding 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 Z 5
6
Requirements: Design of LDPC codes Satisfy the 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(2 s ) EG(m, 2 s ) consists of the set of all m-tuples (a 0,..., a m-1 ) such that each component a i GF (2 s ) Each m-tuple (a 0,..., a m-1 ) is called a point If a = (a 0,..., a m-1 ), then the set of 2 s points {βa: β GF(2 s )} is a line which contains the origin (0,..., 0) Let L = {βa: β GF(2 s )} 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, 2 s ) is given by {b+βa: β GF(2 s )} 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, 2 s ), there are exactly (2 ms -1)/(2 s -1) lines that intersect in the point a The total number of lines in EG(m, 2 s ) is 2 (m-1)s (2 ms -1)/(2 s -1) 8
Type-I geometry-q LDPC codes Q: A finite geometry with n points p 1,..., p n and J lines L 1,..., L J such that 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 Incidence vector of L: v L = (v 1,..., v n ) GF(2) n and v i = 1 iff. p i L Then, w(v L ) = ρ (1) H Q = J n 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 No pair of columns have more than one 1 in common Type-I geometry-q LDPC code 9
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 length 4 Does contain cycles of length 6 (Exercise 17.23) 10
Type-II geometry-q LDPC codes Q: A finite geometry with n points p 1,..., p n and J lines L 1,..., L J such that 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: v p = (v 1,..., v J ) GF(2) J and v i = 1 iff. p L i Then, w(v p ) = γ (2) (1) H Q = [H Q ] T = n J 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 No pair of columns have more than one 1 in common Type-II geometry-q LDPC code. Companion of type-i code 11
Q = EG(m, 2 s ) and type-i n = 2 ms points = number of code bits J = 2 (m-1)s (2 ms -1)/(2 s -1) lines = number of parity checks ρ = 2 s points on each line Each point is contained in γ = (2 ms -1)/(2 s -1) lines Therefore, the minimum distance is at least γ+1 = (2 ms -1)/(2 s -1)+1 Example: Q = EG(2, 2 4 ) n = 2 ms = 256 points J = 2 (m-1)s (2 ms -1)/(2 s -1) = 272 lines ρ = 2 s = 16 points on each line γ = (2 ms -1)/(2 s -1) = 17; minimum distance is at least 18 (in fact = 18) The rank of H Q (1) = 81, so the dimension is 175 12
Q = EG(m, 2 s ) and type-ii J = 2 (m-1)s (2 ms -1)/(2 s -1) = number of code bits n = 2 ms = number of parity checks γ = (2 ms -1)/(2 s -1) = number of points on each line ρ = 2 s Therefore, the minimum distance is at least ρ+1 = 2 s +1 Example: Q = EG(2, 2 4 ) J = 2 (m-1)s (2 ms -1)/(2 s -1) = 272 number of code bits n = 2 ms = 256 number of parity checks γ = (2 ms -1)/(2 s -1) = 17 points on each line ρ = 2 s = 16; minimum distance is at least 17 (in fact = 17) The rank of H Q (2) = 81, so the dimension is 191 13
Cyclic EG-LDPC codes Remove origin point and all lines passing through it J 0 = (2 (m-1)s -1 )(2 ms -1)/(2 s -1) lines that do not pass through the origin n 0 = 2 ms -1 points ρ = 2 s points on each line γ 0 = (2 ms -1)/(2 s -1)-1 lines through each point Type-I code: Minimum distance at least γ 0 + 1 = (2 ms -1)/(2 s -1) This code, C EG,c (1) (m,0,s) turns out to be a cyclic code (Ch. 8*) with generator polynomial g EG,c (1) (X) Let α be a primitive element of GF(2 ms ) α h is a root of g EG,c (1) (X) for h < 2 (m-1)s + 2 (m-2)s+1-1 minimum distance. This follows from the BCH bound This lower bound is tighter than the γ 0 + 1 bound, except for m = 2 14
Cyclic EG-LDPC codes: Type-I, m=2 n 0 = 2 2s 1 points and J 0 = 2 2s 1 parity checks Can show: n 0 k 0 = 3 s 1 parity check bits Dimension k 0 = 2 2s 3 s Minimum distance is at least γ 0 + 1 = 2 s + 1 (in fact, equality holds) Density r = 2 s / (2 2s 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 cyclic 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 cyclic PG-LDPC (4161,3431,66), R = 0.825 18
Example: Type-I cyclic EG-LDPC m = s = 3: (511,139, 79) code, R = 0.272 Type-II (quasi-cyclic) 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) and two random (273,191) codes 20
FG versus random LDPC codes Longer codes: Random LDPC codes should outperform FG LDPC codes Encoding may be difficult for random codes due to lack of structure 21
Performance vs. number of iterations 22