chapter 6 binary bch codessite.iugaza.edu.ps/mtastal/files/ch6final1.pdf · 2016. 5. 3. ·...

Post on 11-May-2021

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Chapter 6

Binary BCH CodesDr.Mohammed Taha El Astal

Introduction

• The BCH codes form a large class of cyclic

codes

• This class is a remarkable generalization of the

Hamming codes for multiple-error correction.

• Binary BCH codes were discovered by

Hocquenghem in 1959 and independently by

Bose and Chaudhuri in 1960.

• Cyclic structure was proved by Peterson in

1960.

• Binary BCH codes were generalized to codes

in pm symbols (p is a prime) by Gorenstein

and Zierler in 1961. (most important subclass

is the class of Reed-Solmon RS codes (1960)2

EELE 6338 3

Definition

Clearly, this code is capable of correct any combination of t

errors or fewer.

The generator polynomial is specified in terms of its roots

from GF(2𝑚).

Roots of the primitive polynomial

• Let 𝛼 be a primitive element in GF( 2𝑚 ). The generator

polynomial of the t-error-correcting BCH code of length 2𝑚 − 1is the lowest-degree polynomial over GF(2) that has

𝛼, 𝛼2, 𝛼3, ⋯ , 𝛼2𝑡

as its roots [i.e., 𝑔 𝛼𝑖 = 0 ∀ 1 ≤ 𝑖 ≤ 2𝑡].

• As a result of Theorem 2.11, 𝑔(𝑥) has 𝛼, 𝛼2, 𝛼3, ⋯ , 𝛼2𝑡 and their

conjugates as all its roots.

EELE 6338 4

• Given that 𝛼𝑖 has a minimal polynomial denoted as

𝜙𝑖(𝑥), then 𝑔(𝑥) must be the least common multiple

(LCM) of 𝜙1 𝑥 , 𝜙2 𝑥 ,⋯ , 𝜙2𝑡 𝑥 ,

𝑔 𝑥 = 𝐿𝐶𝑀 𝜙1 𝑥 , 𝜙2 𝑥 ,⋯ , 𝜙2𝑡 𝑥 .

• Then, you can deduce that for some i, 𝛼𝑖 = 𝛼𝑖′ 2𝑙

( conjugate of 𝛼𝑖′). As a result, both 𝛼𝑖 and 𝛼𝑖

′have the

same minimal polynomial (𝜙𝑖 𝑥 = 𝜙𝑖′ 𝑥 ).

• Refer to the chapter 2 note here to recall minimal polynomial 5

Roots of the primitive polynomial (2)

• If 𝑖 is an even integer, then it can be expressed as a product of

𝑖 = 𝑖′2𝑙 ,where 𝑖′ is an odd number, and 𝑙 ≥ 1.

• i.e: 2=1×21, 4=1 × 22,6=3 × 21,8=1 × 23,10=5 × 21,12=3×22

Roots of the primitive polynomial (3)

• Summary: Every even power of 𝛼 has same minimal

polynomial as some preceding odd power of 𝛼.

• Result: The generator polynomial 𝑔 𝑥 of the binary t-

error-correcting BCH code of length 2𝑚 − 1 can be

reduced from𝑔 𝑥 = 𝐿𝐶𝑀 𝜙1 𝑥 , 𝜙2 𝑥 ,⋯ , 𝜙2𝑡 𝑥 .

to

𝑔 𝑥 = 𝐿𝐶𝑀 𝜙1 𝑥 , 𝜙3 𝑥 ,⋯ , 𝜙2𝑡−1 𝑥 .

• The # become t instead of 2t.

EELE 6338 6

Roots of the primitive polynomial (4)

• Because the degree of each minimal polynomial is 𝑚 or less

(Thm. 2.19), then the degree of 𝑔 𝑥 is at most 𝑚𝑡(𝑚 × 𝑡),which is the number of parity-check digits 𝑛 − 𝑘.

• The parameters of all binary

BCH with m ≤10 are given

Table 6.1.

• Try to generate the table entries for

a given m?EELE 6338 7

Continue (page 195)

Examples

• Discuss the single error correcting BCH code .

As it is single-error correcting, this means that t=1 and

hence 𝑔 𝑥 = 𝜙1(𝑥). (𝜙2(𝑥) is same as 𝜙1 𝑥 , this is

because 𝛼2 is conjugate of 𝛼1).

length 2𝑚 − 1

As 𝛼 is a primitive element of GF(2𝑚) 𝜙1 𝑥 has a

degree m , then 𝑔 𝑥 has degree of m too (as t=1). This

mean that 𝑛 − 𝑘 = 𝑚.

It is Hamming code

EELE 6338 8

Examples (2)

EELE 6338 9

Double EC BCH

means that t=2,

hence 2t-1=3.

Thus, LCM of

∅1 𝑋 and ∅3 𝑋

Examples (3)

EELE 6338 10

This means that

m×t=8=n-k

This mean that

m×t=10=n-k

ELEE 6338 11

The Parity Check Matrix of BCH Codes

• Let v(X) be a codeword of a t-error correcting BCH code of

length . Then are roots of v(X) (can you

state Why?):

or

12m 2 2, , , t

2 ( 1)

1 2 1v( ) 0 ; 1 2i i i n i

o nv v v v for i t

2

1 1

( 1)

1

, , , 0 ; 1 2

i

i

o n

n i

v v v i t

Why? This is because they are all root of g(X) and based on v(X)=u(X)×g(X),

consequently what is root of g(X) it is directly also root of v(X).

12

1𝛼𝑖

⋮𝛼 𝑛−1 𝑖

1 ≤ 𝑖 ≤ 2𝑡

• As a result of , H is a parity check matrix of the code.

• Based on (mean is root) and is a conjugate of ,

then too. As any even power of is conjugate of a

proceeding odd power of , the H matrix may be reduced to:

2 3 1

2 2 2 2 3 2 1

3 3 2 3 3 3 1

2 2 2 2 3 2 1

1

1 ( ) ( ) ( )

1 ( ) ( ) ( )

1 ( ) ( ) ( )

n

n

n

t t t t n

H

0T v H

The Parity Check Matrix of BCH Codes (2)

v( ) 0i j

v( ) 0i

2 3 1

3 3 2 3 3 3 1

5 5 2 5 3 5 1

2 1 2 1 2 2 1 3 2 1 1

1

1 ( ) ( ) ( )

1 ( ) ( ) ( )

1 ( ) ( ) ( )

n

n

n

t t t t n

t n

H

13ELEE 6338

t=2 means

that 2×2

roots which

are=𝛼1, 𝛼2 ,

𝛼3, 𝛼4

You should

refer to chapter

2 to see how

Table 2.8 can

be generated

Minimum Distance proof

• Proving that a BCH code with 2t consecutive roots has a

minimum distance :

We need to show that no 2t or fewer columns of H sum to

zero.

Suppose there exists a nonzero codeword v with weight

.

Let be the nonzero components of v.

The product of reduces to:

ELEE 6338 14

2 1t

2t

1 2, , , j j jv v v

v TH

15

Interchanging powers of , we get:

1 1 1

2 2 2

1 2

2 2

2 2

2 2

( ) ( )

( ) ( )( , , , ) 0

( ) ( )

j j jt

j j jt

j j j

j j jt

v v v

1 1 1

2 2 2

2 2

2 2

2 2

( ) ( )

( ) ( )(1, 1, , 1) 0

( ) ( )

j j j t

j j j t

j j j t

ELEE 6338

16

The big matrix is . The product of

with the matrix formed from the first

columns should also be zero.

It follows that the determinant of the following

matrix must be zero:

OR

• But this is a Vandermonde determinant that is nonzero.

Therefore, our assumption that there exists a nonzero

codeword v of weight is invalid. Consequently, the

minimum distance of the code is at least

2 (2 )t t

(1, 1, , 1)

1 1 1

2 2 2

2 2

2 2

2 2

( ) ( )

( ) ( )0

( ) ( )

j j j t

j j j t

j j j t

ELEE 6338

1 1

2 2

1 2

1

1

( )

1

1 ( )

1 ( )0

1 ( )

j j

j j

j j j

j j

2t 2 1t

17

• Notes:

• If g(X) has 𝑙 roots that are consecutive powers of , an

element of GF( ), then the code generated has a minimum

distance .

• If , a primitive element of GF( ), the code generated

is a primitive BCH code.

• If 𝛽 is not a primitive element of GF( ), the code is not a

primitive BCH code and 𝑛 ≠ 2𝑚 − 1 .

• This chapter considers the primitive BCH code

2m

min 1d l

2m

ELEE 6338

2m

18

Decoding BCH Codes

• Decoding steps:

1. Syndrome computation.

2. Error pattern computation.

3. Correction .*v (X) r(X) e(X)

1. Syndrome computation:

Recalling the structure of H,

Show?

By examining H, you can deduce

that r.HT process is like 𝑟(𝛼𝑖).

Try it by yourself.

r( ) ; 1 2i

iS i t

1 2 2t, , , T S S S S r H

2 3 1

3 3 2 3 3 3 1

5 5 2 5 3 5 1

2 1 2 1 2 2 1 3 2 1 1

1

1 ( ) ( ) ( )

1 ( ) ( ) ( )

1 ( ) ( ) ( )

n

n

n

t t t t n

t n

H

19ELEE 6338

t=2 means that 2×2

roots which

are=𝛼1, 𝛼2 , 𝛼3 , 𝛼4

and S is 4-digits too

23

Step 2: Error pattern computation:

An error pattern e(X) of errors at locations

is:

The syndrome and the error pattern are related by:

Let

1 2e(X) X X Xjj j

1 2

1 2

1 2

1

2 2 2

2

2 2 2

2

r( ) v( ) e( ) e( ) ; 1 2

( ) ( ) ( )

( ) ( ) ( )

i i i i

i

jj j

jj j

jj jt t t

t

S i t

S

S

S

1 2, , , j j j

1 2

Solve these equations

for , , ,

There are many solutions

j j j

ELEE 6338

error location numbers ; 1lj

l l

24

Then,

Define the error-location polynomial:

The roots of 𝜎 𝑋 are the inverses of error location #’s.

can be expanded to:

where

1 1 2

2 2 2

2 1 2

2 2 2

2 1 2

( ) ( ) ( )

( ) ( ) ( )t t t

t

S

S

S

Power-sum

symmetric

functions

𝝈 𝑿 ≜ 𝟏 + 𝜷𝟏𝑿 . 𝟏 + 𝜷𝟐𝑿 ⋯(𝟏 + 𝜷𝒗𝑿)

(X) 2

1 2(X) X X Xo

1 1 2

2 1 2 2 3 1

1 2

1

o

's are called

elementary symmetric

functions of '

i

l s

25

It is clear that are related to . In fact, their relation

follows the Newton’s identities:

Again, there are many solutions, but we are interested in

finding the one that yields with minimum degree.

'si 'sjS

ELEE 6338

1 1

2 1 1 2

3 1 2 2 1 3

1 1 1 1

1 1 1 2 1

0

2 0

3 0

0

0

S

S S

S S S

S S S

S S S S

2t equations

𝒌𝝈𝒌 +

𝒊=𝟏

𝒌

𝝈𝒌−𝒊𝑺𝒊 = 𝟎

(X)

26

Decoding procedures (Updated):

1. Compute from r(X) .

2. Determine from by solving Newton’s

equations.

3. Find the roots of to determine the error location

numbers, then correct the errors in r(X) accordingly.

1 2 2( , , , )tS S S S

(X) 1 2 2( , , , )tS S S

(X)

ELEE 6338

27

Finding the Error Location Polynomial:

1. Find a minimum-degree polynomial whose

coefficients satisfy the 1st Newton identity.

3. Carry on like this until you form 𝜎 2𝑡 (𝑋), which is

the required polynomial, i.e. 𝜎 𝑋 = 𝜎 2𝑡 (𝑋).

(1) (X)

(1) (X)

(1) (X)(2) (1)(X) (X) term

(2) (X)

EELE 6338

2. Test if also satisfies the 2nd identity. We do this

with the aid of a quantity called the discrepancy ”d”.

(2) (1)(X) (X) add a correction term to ,

i.e. ,

such that satisfies both

identities.

The discrepancy quantity of the step is given by:

Where

In case that 𝑑𝜇 ≠ 0, then go back and find 𝜌 and determine

If the degree of , then the errors can be correctly

located and corrected.

28

(X) t

th

EELE 6338

• If 𝑑𝜇 = 0, the

𝜎 𝜇+1 𝑋 = 𝜎 𝜇 𝑋 and𝑙𝜇+1 = 𝑙𝜇

• If 𝑑𝜇 ≠ 0, we find another row 𝜌 prior to the 𝜇𝑡ℎ row such

that 𝑑𝜌 ≠ 0 and the number 𝜌 − 𝑙𝜌 in the last column of the

table has the largest value (.

• The error location polynomial should be modified and 𝑙𝜇+1= max 𝑙𝜇, 𝑙𝜌 + 𝜇 − 𝜌 .

29

Iterative Algorithm

As shown, initialize the rows for 𝜇= −1 𝑎𝑛𝑑 0

EELE 6338

Example 6.5

EELE 6338 30

Simplified Algorithm for Error Finding

• The simplified algorithm applies only to binary codes

while the previous algorithm applies for both binary and

non-binary BCH codes including Reed-Solomon codes.

• The previous algorithm can be simplified into t-steps.

• The (2𝜇-1)th and the 2𝜇 th steps of iteration can be

combined only even steps are needed.

• Step 1: Initialize the rows

for 𝜇 = −1

2𝑎𝑛𝑑 0 as shown.

31

Simplified Iterative Algorithm (2)

• If 𝑑𝜇 = 0, the 𝜎 𝜇+1 𝑋 = 𝜎 𝜇 𝑋

• If 𝑑𝜇 ≠ 0, we find another row 𝜌 prior to the 𝜇𝑡ℎ row such that

𝑑𝜌 ≠ 0 and the number 2𝜌 − 𝑙𝜌 in the last column of the table

has the largest value. The error location polynomial should be

modified and 𝑙𝜇+1 = 𝑑𝑒𝑔𝑟𝑒𝑒 𝑜𝑓 𝜎 𝜇+1 (𝑋).

• 𝑑𝜇 = 𝑆2𝜇+1 + 𝜎1𝜇𝑆2𝜇 +⋯+ 𝜎𝑙𝜇

𝜇𝑆2𝜇+1−𝑙𝜇

EELE 6338 32

Example 6.5 can be solved using the simplified algorithm to

get the same solution

• H.W – Detail all the steps required to get this table.

Example 6.6

EELE 6338 33

Chien Circuit

• Used to find the error location number which is the

inverse of the roots of .

• Remember that the roots of is found by substituting

1, 𝛼, 𝛼2, ⋯ , 𝛼𝑛−1 in .

• Since 𝑛 = 2𝑚 − 1 , if 𝛼𝑙 is a root 𝛼−𝑙 = 𝛼𝑛−𝑙 is an

error location.

• The received codeword is decoded bit by bit starting from

the high order bits.

EELE 6338 34

(X)

(X)

(X)

35

Chien Circuit:

If the last bit is erroneous, then is an error location

number and hence is a root of . In this case:

So, by forming this sum we can determine if is

erroneous or not (and can be corrected).

If the bit is erroneous, then is an error location

number and hence is a root of . In this case:

1nr 1n

(X)

2

1 21 0t

t

1nr

2nr 2n

2 (X)

2 4 2

1 21 0t

t

EELE 6338

36

In general, the bit can be checked by the sum: n lr

2

1 21 0l l tl

t

EELE 6338

37

The circuit works as follows:

The logic circuit A is designed to output “1” if the sum is

“1”. Otherwise the output is zero.

Initially, the buffer contains the received vector, and the

registers contain .

On the first pulse, the registers will contain ,

respectively. If is a root, the output of A will be

“1” and the bit will be corrected. If not, the output will

be “0”, and the bit is delivered as is.

1 2, , , t

i i

1 i t

1nr

1nr

EELE 6338

38

On the next pulse, the contents of the registers will be

modified to , . If their sum is “0” then

is a root. Logic circuit A will generate “1” and the bit

is corrected.

On the pulse, the contents of the registers will be

, , and their sum will be used to correct

bit.

thl

2i

i 1 i t 2

1nr

n lr li

i 1 i t

top related