chapter 6 binary bch codessite.iugaza.edu.ps/mtastal/files/ch6final1.pdf · 2016. 5. 3. ·...
Post on 11-May-2021
3 Views
Preview:
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