Cyclic Code shift registers with feedback connections inherent
Ⅲ Cyclic Code • shift registers with feedback connections inherent algebraic structure Algorithmic technique • random-error correction burst-error correction Def : Cyclic Code (i) one linear code ( subset of GF(q)[x]/xn-1 ) (n, k) (ii) x • c(x) mod xn-1 C(x) if c(x) C(x) Shift right i Shift left n-i • v = (v 0, v 1, . . . , vn-1) : code vector v(1) = (vn-1, v 0, v 1, …, vn-2) v(i) = (vn-i, vn-i+1, …, vn-1, v 0, v 1, …, vn-i-1) • v(x) = v 0 + v 1 x + … + vn-1 xn-1 : code polynomial • v(i)(x) = xiv(x)/xn-1 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 1
Def : generator polynomial : The nonzero monic code polynomial of minimum degree in a cyclic code C g(x) = g 0 + g 1 x + … + gr-1 xr-1 + xr ( note : multiply by a field element to make it monic ) • g(x) is unique • In GF(2), g 0 = 1 We claim : r = n - k For (n, k) cyclic code Consider : g(x), x 2 g(x), …, xn-r-1 g(x) = = = g(1)(x) g(2)(x) g(n-r-1)(x) code polynomials v(x) = u 0 g(x) + u 1 xg(x) + u 2 x 2 g(x) + … + un-r-1 xn-r-1 g(x) = ( u 0 + u 1 x + u 2 x 2 + … + un-r-1 xn-r-1 )g(x) = u(x)g(x) is also a code polynomial Note If r = n–k, deg u(x) = k-1 2004/3/17 u(x) : information polynomial Yuh-Ming Huang, CSIE NCNU Cyclic_Code 2
Thm : Let g(x) = 1 + g 1(x) + … + gr-1 xr-1 + xr be the generator polynomial in an (n, k) cyclic code. A binary polynomial of degree n-1 or less is a code polynomial iff it is a multiple of g(x). Proof: (i) v(x) = a(x)g(x) + b(x) ∴ b(x) = v(x) + a(x)g(x) and deg b(x)<deg g(x) (ii) v(x) = (a 0+a 1 x +…+an-r-1 xn-r-1)g(x)= a 0 g(x)+ a 1 xg(x)+…+an-r-1 xn-r-1 g(x) # of binary polynomial with degree ≤ n-1 that are multiples of g(x) = 2 n-r = 2 k r = n-k Thm : In an (n, k) cyclic code, there exists one and only one code polynomial of degree n-k g(x) = 1 + g 1 x + g 2 x 2 + … + gn-k-1 xn-k-1 + xn-k Every code polynomial is a multiple of g(x) and every binary polynomial of degree n-1 or less that is a multiple of g(x) is a code polynomial. Q: g(x), x 2 g(x), …, xk-1 g(x) are linear independent ? 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 3
Thm : g(x) | xn+1 (xn-1 ) pf: xn – 1 = Q(x)g(x) + s(x) 兩邊 mod xn-1 0 = Q(x)g(x)/xn-1 + s(x) Q: Thm : If g(x) is a polynomial of degree n-k and is a factor of xn+1(xn-1), then g(x) generate an (n, k) cyclic code pf: (1) v(x) = u 0 g(x) +u 1 xg(x) +…+uk-1 xk-1 g(x) = (u 0 +u 1 x +…+uk-1 xk-1)g(x)= v 0+v 1 x+…+vn-1 xn-1 there exists 2 k code polynomials (n, k) linear code (2) If v(x) is a code polynomial, then xv(x) = vn-1(xn-1)+v(1)(x) is a multiple of g(x) v(1)(x) is also a code polynomial 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 4
Q: For large n, xn+1 may have many factors of degree n-k. How to select g(x)? Non-Systematic Encoding v(x) = u(x)g(x) Systematic Encoding xn-ku(x) =a(x)g(x)+ t(x)+ xn-ku(x) = a(x)g(x) & deg[t(x)+ xn-ku(x)] n-1 ∴ It’s a code polynomial v(x) = xn-ku(x) + t(x) where t(x) is chosen st. (i) deg t(x) < n-k (ii) v(x)/g(x) = 0 ∴ t(x) = - xn-ku(x)/g(x) t 0 + t 1 x + … + tn-k-1 xn-k-1 Q: t(x) physical mean? v = (t 0, t 1, …, tn-k-1, u 0, u 1, …, uk-1) 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 5
TABLE 4. 1 A (7, 4) CYCLIC CODE GENERATED BY g(x) = 1+x+x 3 Messages Code Vectors Code polynomials (0000) 0 0 0 0 = 0 • g(x) (1000) 1 1 0 0 0 1+x+x 3 = 1 • g(x) (0100) 0 1 1 0 0 x+x 2+x 4 = x • g(x) (1100) 1 0 1 1 1 0 0 1+x 2+x 3+x 4 = (1+x) • g(x) (0010) 0 0 1 1 0 x 2+x 3+x 5 = x 2 • g(x) (1010) 1 1 1 0 0 1+x+x 2+x 5 = (1+x 2) • g(x) non-systematic ( 0 1 1 0 ) 0 1 1 1 0 x+x 3+x 4+x 5 = (x+x 2) • g(x) (1110) 1 0 0 0 1 1 0 1+x 4+x 5 = (1+x+x 2) • g(x) (0001) 0 0 0 1 1 0 1 x 3+x 4+x 6 = x 3 • g(x) (1001) 1 1 0 0 1 1+x+x 4+x 6 = x 3 • g(x) (0101) 0 1 1 1 0 0 1 x+x 2+x 3+x 6 = (x+x 3) • g(x) (1101) 1 0 0 0 1 1+x 2+x 6 = (1+x+x 3) • g(x) (0011) 0 0 1 1 1 x 2+x 4+x 5+x 6 = (x 2+x 3) • g(x) (1011) 1 1 1 1+x+x 2+x 3+x 4+x 5+x 6 = (1+x 2+x 4) • g(x) (0111) 0 1 0 0 0 1 1 x+x 5+x 6 = (x+x 2+x 3) • g(x) (1111) 1 0 0 1 1 1+x 3+x 5+x 6 = (1+x+x 2+x 3) • g(x) 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 6
TABLE 4. 1 A (7, 4) CYCLIC CODE GENERATED BY g(x) = 1+x+x 3 Messages Code Vectors Code polynomials (0000) 0 0 0 0 = 0 • g(x) (1000) 1 1 0 0 0 1+x+x 3 = 1 • g(x) (0100) 0 1 1 0 0 x+x 2+x 4 = x • g(x) (1100) 1 0 1 1 1 0 0 1+x 2+x 3+x 4 = (1+x) • g(x) (0010) 1 1 1 0 0 1+x+x 2+x 5 = (1+x 2) • g(x) (1010) 0 0 1 1 0 x 2+ x 3+x 5 = x 2 • g(x) systematic ( 0 1 1 0 ) 1 0 0 0 1 1 0 1+x 4+x 5 = (1+x+x 2) • g(x) (1110) 0 1 1 1 0 x+x 3+x 4+x 5 = (x+x 2) • g(x) ( 0 0 0 1 ) 1 0 0 0 1 1+x 2+x 6 = (1+x+x 3) • g(x) (1001) 0 1 1 1 0 0 1 x+x 2+x 3+x 6 = (x+x 3 ) • g(x) X 3(x 2+1) (0101) 1 1 0 0 1 1+x+x 4+x 6 = (1+x 3) • g(x) X 3+x+1) (1101) 0 0 0 1 1 0 1 x 3+x 4+x 6 = x 3 • g(x) = x 2 (0011) 0 1 0 0 0 1 1 x+x 5+x 6 = (x+x 2+x 3) • g(x) (1011) 1 0 0 1 1 1+x 3+x 5+x 6 = (1+x+x 2+x 3) • g(x) (0111) 0 0 1 1 1 x 2+ x 4+x 5+x 6 = (x 2+x 3) • g(x) (1111) 1 1 1 1+x+x 2+x 3+x 4+x 5+x 6 = (1+x 2+x 5) • g(x) 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 7
Generator & Parity-check Matrices (一) v=u • G v(x) = (u 0 + u 1 x + … + uk-1 xk-1)g(x) Q: GHT=0 G= kxn xn+1 = g(x)h(x) where h(x) = h 0 + h 1 x + … + hkxk : parity polynomial xkh(x-1) = hk + hk-1 x + … + h 0 xk Q: ∵ xkh(x-1) | xn+1 ∴ xkh(x-1) generate an (n, n-k) cyclic code 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 8
H= (n-k) x n Note If v(x) = a(x)g(x) v(x)h(x) = a(x)g(x)h(x) = a(x)(xn+1) = a(x) + xna(x) ∵ deg a(x) ≤ k-1 0 1 …k-1 n n+1 …n+k-1 deg = j 項係數 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 9
(二) consider each i corresponding to an information place xn-k+i = ai(x)g(x) + bi(x) 0 ≤ i ≤ k-1 xn-k, xn-k+1, …, xn-1 where bi(x) = bi 0 + bi 1 x + … + bi, n-k-1 xn-k-1 bi(x) + xn-k+i are code polynomials Q: (1) linear independent? (2) 與 xn-ku(x)/g(x)之 關係? G= kxn (3) check VHT=0 H= (4) (一)G與(二)G 之關係? (n-k) x n 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 10
Ans (2) xn-ku(x) = u 0 xn-k + u 1 xn-k+1 + … + uk-1 xn-1 g(x) = u 0 b 0(x) + u 1 b 1(x) + … + uk-1 bk-1(x) = t 0 + t 1 x + … + tn-k-1 xn-k-1 Ans (3) V = (v 0, v 1, …, vn-k-1, vn-k+1, …, vn-1) = (t 0, t 1, …, tn-k-1, u 0, u 1, …, uk-1) VHT=V 0+ Vn-kb 00+ Vn-k+1 b 10+…+ Vn-1 bk-1, 0 = t 0+ u 0 b 00+ u 1 b 10+…+ uk-1 bk-1, 0 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 11
(一). b(x) mod g(x) = x 2 + g 1 x + g 0 b(x) = b 3 x 3 + b 2 x 2 + b 1 x + b 0 n-k = deg[g(x)] = 2 Ax + B (=s(x)) g 0 g 1 -1 b 0, b 1, b 2, b 3 (i) b 3 在第 3 clock 啟動前位 於 -1 下方 G (ii) i. e. 就b 3 x 3 單獨而言, 在 第 4 clock 後, registers內 容為b 3 x 3 mod g(x) = = 2004/3/17 B A Yuh-Ming Huang, CSIE NCNU Cyclic_Code 12
(二). g 0 x 2 b(x) mod g(x) g 1 Q: (1) xb(x)/g(x) (i) while complete the computation b(x)/g(x) s(x) (ii) G disable (iii) one right shift (iv) result = xs(x)/g(x) xb(x) input 0, b 1, b 2 , b 3 -1 b 0, b 1, b 2, b 3 (i) 就b 3 x 3 單獨而言, 在第 4 clock 結 束後, registers內容為b 3 x 5 mod g(x). i. e. 相當於 (一), b 3由左方輸 入但需 6個clock. (2) x 2 b(x)/g(x) input 0, 0, b 1, b 2 , b 3 (ii) 同理 for b 2, b 1, b 0 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 13
Encoding < Method Ⅰ> step (i) xn-ku(x) (ii) xn-ku(x)/g(x) = b(x) (iii) b(x) + xn-ku(x) Gate g 2 g 1 b 0 b 1 n-k stage gn-k-1 b 2 … bn-k-1 Message Xn-ku(X) Code word Parity-check digits Figure 4. 1 Encoding circuit for an (n, k) cyclic code with generator polynomial g(X) = 1 + g 1 X + g 2 X 2 + … + gn-k-1 Xn-k-1 + Xn-k 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 14
Example 4. 5 Consider the (7, 4) cyclic code generated by g(X) = 1 + X 3. The encoding circuit based on g(X) is shown in Figure 4. 2. Suppose that the message u = (1 0 1 1) is to be encoded. As the message digits are shifted into the register, the contents in the register are as follows: Input Register contents 0 0 0 (initial state) 1 1 1 0 (first shift) 1 1 0 1 (second shift) 0 1 0 0 (third shift) 1 1 0 0 (fourth shift) After four shifts, the contents of the register are (1 0 0). Thus, the complete code vector is (1 0 0 1 1) and the code polynomial is 1 + X 3 + X 5 + X 6. Gate (1 0 1 1) Message Xn-ku(X) Parity digits Code word Figure 4. 2 Encoder for the (7, 4) cyclic code generated by g(X) = 1 + X 3 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 15
< Method Ⅱ> --- (1) given k information digits (vn-k, vn-k+1, …, vn-1) = (u 0, u 1, … , uk-1) By (1), to determine the n-k parity-check digits (v 0, v 1, … , vn-k-1) vn-k-1 = h 0 vn-1 + h 1 vn-2 + … + hk-1 vn-k = uk-1 + h 1 uk-2 + … + hk-1 u 0 vn-k-2 = h 0 vn-2 + h 1 vn-3 + … + hk-1 vn-k-1 = uk-2 + h 1 uk-3 + … + hk-2 u 0 + hk-1 vn-k-1 Gate 2 Gate 1 • u 0 + + + hk-1 hk-2 h 2 u 1 • • • • • ° Output to channel + h 1 Uk-2 Uk-1 k stage Figure 4. 3 Encoding circuit for an (n, k) cyclic code based on the parity polynomial h(x) = 1 + h 1 X + h 2 X 2 + …+ hk-1 Xk-1+Xk 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 16
h 0 = 1 Input Gate 1 Gate 2 p Output Figure 4. 4 Encoding circuit for the (7, 4) cyclic code based on its parity polynomial h(x) = 1 + X 2 + X 4 Suppose that the message to be encoded is (1 0 1 1). Then v 3 = 1, v 4 = 0, v 5 = 1, v 6 = 1. The first parity-check digit is v 2 = v 6 + v 5 + v 4 = 1 + 0 = 0 The second parity-check digit is Q: 觀察 Method Ⅰ, Ⅱ 結果相同 v 1 = v 5 + v 4 + v 3 = 1 + 0 + 1 = 0 The third parity-check digit is v 0 = v 4 + v 3 + v 2 = 0 + 1 + 0 = 1 Thus, the code vector that corresponds to the message (1 0 1 1) is (1 0 0 1 1). 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 17
Syndrome Computation & Error Detection < Type Ⅰ> r(x) = r 0 + r 1 x + … + rn-1 xn-1 = a(x) • g(x) + s(x) deg s(x) ≤ n-k-1 s(x) = 0 r(x) is a code polynomial syndrome Gate r(x)/g(x) ≈ g 2 g 1 r(X) Received vector s 0 s 1 gn-k-1 sn-k-1 … Figure 4. 5 An (n-k)-stage syndrome circuit with input from the left end. 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 18
Thm : Let s(x) be the syndrome of a receive polynomial r(x) Then s(1)(x) ( = x • s(x)/g(x) ) is the syndrome of r(1)(x) (= x • r(x)/xn+1) pf: 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 19
Ref : pp. 10 & 11 r = (r 0, r 1, … , rn-k-1, rn-k, … , rn-1) = (t 0, t 1, … , tn-k-1, u 0, u 1, … , uk-1) r • HT = (s 0, s 1, … , sn-k-1) s 0 = r 0 + rn-kb 00 + rn-k+1 b 10 + … + rn-1 bk-1, 0 = r 0 + t 0 … s 1 = r 1 + rn-kb 01 + rn-k+1 b 11 + … + rn-1 bk-1, 1 = r 1 + t 1 sn-k-1 = rn-k-1 + rn-kb 0, n-k-1 + rn-k+1 b 1, n-k-1 + … + rn-1 bk-1, n-k-1 Syndrome is simply the vector sum of the received parity digits and the parity-check digits recomputed from the received information digits ∵ r(x) = r 0 + r 1 x + … + rn-k-1 xn-k-1 + xn-k • u(x) = u 0 + u 1 x + … + uk-1 xk-1 ∴ r(x)/g(x) = r 0 + r 1 x + … + rn-k-1 xn-k-1 + xn-k • u(x)/g(x) = t 0 + t 1 x + … + tn-k-1 xn-k-1 ( rn-k, rn-k+1, … , rn-1 )G = ( t 0, t 1, … , tn-k-1, rn-k+1, rn-1 ) 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 20
Example 4. 7 A syndrome circuit for the (7, 4) cyclic code generated by g(X) = 1 + X 3 is shown in Figure 4. 6. Suppose that the receive vector is r = (0 0 1 1 0). The syndrome of r is s = (1 0 1). As the received vector is shifted into the circuit, the contents in the register are given in Table 4. 3. Gate input Gate 1 0 1 Figure 4. 6 Syndrome circuit for the (7, 4) cyclic code generated by g(X) = 1 + X 3. Shift 1 2 3 4 5 6 7 8 9 Input 0 1 1 0 0 - Register contents 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 (initial state) (syndrome s(1)) (syndrome s(2)) Table 4. 3 CONTENTS OF THE SYNDROME REGISTER SHOWN IN FIGURE 4. 6 WITH r = (0 0 1 1 0) AS INPUT 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 21
Gate < Type Ⅱ> xn-kr(x)/g(x) ≈ g 2 g 1 s 0 s 1 gn-k-1 sn-k-1 … Figure 4. 7 An (n-k)-stage syndrome circuit with input from the right end. r(X) Received vector Cor : The contents of the registers form the syndrome s(n-k)(x) of r(n-k)(x), which is the (n-k)th cyclic shift of r(x) Note : 1. xn-kr(x)/g(x) = [xn-kr(x)/xn+1]/g(x) = r(n-k)(x)/g(x) = s(n-k)(x) 2. r(x) = v(x) + e(x) xn-kr(x) ∴ s(x) = r(x)/g(x) = e(x)/g(x) = Q(x)(xn+1) + R(x) = Q(x)p(x)g(x) + q(x)g(x) + s(x) = [Q(x)p(x) + q(x)]g(x) + s(x) 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 22
Decoding Meggitt decoder 1. syndrome 2. error pattern 3. correct received digits are decoded one at a time and each digit is decoded with the same circuitry <see next page> Note : If Syndrome register ≠ 0’s at the end of decoding ( n shifts ) uncorrectable error pattern (i) r 1(x) = r(x) + xn-1 (ii) s 1(X) = s(x) + xn-1/g(x) (iii) s 1(1)(x) = x • s 1(x)/g(x) = xs(x)/g(x) + [x • xn-1/g(x)]/g(x) = xs(x)/g(x) + xn/g(x) = s(1)(x) + 1 2004/3/17 Yuh-Ming Huang, CSIE NCNU r(x) r(1)(x) r 1(1)(x) syndrome s(x) s(1)(x) s 1(1)(x) xn-1 = Q(x)g(x) xn = Q(x)g(x) + 1 Cyclic_Code 23
< Type Ⅰ> Gate (r 0, r 1, … , rn-1) = r(X) Received vector Gate ri Buffer registers Feedback connection Corrected vector Gate Syndrome register Error pattern detection circuit s(x) --- r(x) s(1)(x) --- r(1)(x) ei Gate Syndrome modification Figure 4. 8 General cyclic code decoder with received polynomial r(X) shifted into the syndrome register from the left end 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 24
Example 4. 9 Consider the decoding of the (7, 4) cyclic code generated by g(X) = 1 + X 3. This code has minimum distance 3 and is capable of correcting any single error over a block of seven digits. There are seven single-error patterns. These seven error patterns and the all-zero vector form all the coset leaders of the decoding table. Thus, they form all the correctable error patterns. Suppose that the received polynomial r(X) = r 0 + r 1 X + r 2 X 2 + r 3 X 3 + r 4 X 4 + r 5 X 5 + r 6 X 6 is shifted into the syndrome register from the left end. The seven single-error patterns and their corresponding syndromes are listed in Table 4. 4. TABLE 4. 4 ERROR PATTERNS AND THEIR SYNDROMES WITH THE RECEIVED POLYNOMIAL r(x) SHIFTED INTO THE SYNDROME REGISTER FROM THE LEFT END Error pattern e(X) e 6(X) = X 6 e 5(X) = X 5 e 4(X) = X 4 e 3(X) = X 3 e 2(X) = X 2 e 1(X) = X 1 e 0(X) = X 0 2004/3/17 Syndrome s(X) Syndrome vector (s 0, s 1, s 2) s(X) = 1 + X 2 s(X) = X + X 2 s(X) = 1 + X s(X) = X 2 s(X) = X s(X) = 1 Yuh-Ming Huang, CSIE NCNU (1 0 1) (1 1 1) (0 1 1) (1 1 0) (0 0 1) (0 1 0) (1 0 0) Cyclic_Code 25
Buffer register r(X) Input r’(X) Multiplexer Output Gate 0 0 1 Gate Figure 4. 9 Decoding circuit for the (7, 4) cyclic code generated by g(X) = 1 + X 3. 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 26
Syndrome register Initial 0 0 1 Buffer register Pointer Correction 0 1 1 0 1 st shift 1 1 0 2 st shift 0 1 1 1 0 0 3 rd shift 2004/3/17 1 1 1 0 1 1 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 27
1 4 th shift 1 0 1 1 1 0 1 Error corrected 5 th shift 0 0 0 1 1 1 0 0 6 th shift 0 0 0 1 1 1 Corrected word 7 th shift 0 0 1 1 Figure 4. 10 Error-correction process of the circuit shown in Figure 4. 9 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 28
(i) s(n-k)(x) : syndrome of r(n-k)(x) (ii) If en-1 = 1 In r(n-k)(x), the digit rn-1 is at the location xn-k-1 r 1(n-k)(x) = r(n-k)(x) + xn-k-1 s 1(n-k)(x) = s(n-k)(x) + xn-k-1 < Type Ⅱ> (r 0, r 1, … , rn-1) = Gate r(X) Received vector Gate Buffer register r(X) Corrected vector Gate Feedback connection Note: ri Gate <Type I> circular shift 後考量 <Type II> circular shift 前考量 Syndrome register Error-pattern detection circuit (Syndrome modification) ei Gate Figure 4. 11 General cyclic code decoder with received polynomial r(X) shifted into the syndrome register from the right end. 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 29
Example 4. 10 Again, we consider the decoding of the (7, 4) cyclic code generated by g(X) = 1 + X 3. Suppose that the received polynomial r(X) is shifted into the syndrome register from the right end. The seven single-error patterns and their corresponding syndromes are listed in Table 4. 5. We see that only when e(X) = X 6 occurs, the syndrome is (0 0 1) after the entire received polynomial r(X) has been shifted into the syndrome register. If the single error occurs at the location Xi with i ≠ 6, the syndrome in the register will not be (0 0 1) after the entire received polynomial r(X) has been shifted into the syndrome register. However, another 6 – i shifts, the syndrome register will contain (0 0 1). Based on this fact, we obtain another decoding circuit for the (7, 4) cyclic code generated by g(X) = 1 + X 3, as shown in Figure 4. 12. We see that the circuit shown in Figure 4. 9 and the circuit shown in Figure 4. 12 have the same complexity. 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 30
TABLE 4. 5 ERROR PATTERNS AND THEIR SYNDROMES WITH THE RECEIVED POLYNOMIAL r(x) SHIFTED INTO THE SYNDROME REGISTER FROM THE RIGHT END Error pattern e(X) = X 6 e(X) = X 5 e(X) = X 4 e(X) = X 3 e(X) = X 2 e(X) = X 1 e(X) = X 0 2004/3/17 Syndrome s(3)(X) Syndrome vector (s 0, s 1, s 2) s(3)(X) = X 2 s(3)(X) = X s(3)(X) = 1 + X 2 s(3)(X) = X + X 2 s(3)(X) = 1 + X (0 0 1) (0 1 0) (1 0 1) (1 1 1) (0 1 1) (1 1 0) Yuh-Ming Huang, CSIE NCNU Cyclic_Code 31
r(X) Input Buffer register Multiplexer r’(X) Output Gate Figure 4. 12 Decoding circuit for the (7, 4) cyclic code generated by g(X) = 1 + X 3. 2004/3/17 Yuh-Ming Huang, CSIE NCNU Cyclic_Code 32
- Slides: 32