Golay Codes
Golay Codes
ABSTRACT
Recently, some table-lookup decoding algorithms (TLDAs) have been used to correct the binary Golay code. This
paper proposes an efficient high-speed TLDA called message-syndrome decoding algorithm (MSDA) by using the
message syndrome to correct the binary systematic Golay code. The proposed MSDA is based on the novel
message-syndrome lookup table (MSLT). The MSLT merely consists of 12 candidate syndromes and its memory size
is significantly smaller than other existing lookup tables. Computer software simulation results show that the decoding
speed of the proposed MSDA is superior to other proposed TLDAs.
Keywords: Golay code, weight, syndrome, error pattern
1. Introduction
The well-known binary Golay code, also called
the binary (23, 12, 7) quadratic residue (QR)
code [2], was first discovered by Golay [1] in
1949. It is a very useful perfect linear errorcorrecting code; particularly, it has been used in
the past decades for a variety of applications
involving a parity bit being added to each word
to yield a half-rate code called the binary (24, 12,
8) extended Golay code. One of its most
interesting applications is the provision of error
control in the Voyager missions [2]. The Golay
code can allow the correction of up to
t (d 1) / 2 = (7 1) / 2 3 errors, where x
denotes the greatest integer less than or equal
to x, t is the error-correcting capability, and d is
the minimum Hamming distance of the code.
In the past few decades, several decoding
techniques have been developed to decode the
binary Golay codes, for example, the famous
algebraic decoding algorithm (ADA) developed by
Elia [3], the notable shift-search algorithm
proposed by Reed et al. [4] after that, and the
inverse-free BerlekampMassey algorithm used to
obtain the error-locator polynomial by Chen et al.
[5]. The above is some representative literature on
ADAs used to correct Golay codes.
JournalofAppliedResearchandTechnology
331
HighSpeedDecodingoftheBinaryGolayCode,H.P.Leeetal./331337
(1)
i Q23 ( x i )
x 11 x 9 x 7 x 6 x 5 x 1,
332
Vol.11,June2013
(2)
n 1
i 0 Ci x i ,
k 1
i 0 mi x i , where k = 12 is the
(3)
i
22
i 12 pi x denotes the parity-check
where p( x )
i
is the error pattern polynomial,
22
i 0 ei x
r (E i )
e( E i )
c ( E i ) e( E i )
i j
22
j 0 e j (E )
(4)
where i Q23.
To simplify the polynomial expressions above,
the message, codeword, error pattern, received
word, and syndrome polynomials can be
expressed as the binary vector forms m = (m11
... m1 m0), c = (c22 ... c1 c0), e = (e22 ... e1 e0), r =
c + e = (r22 ... r1 r0), and s = (s10 ... s1 s0),
respectively. For the binary systematic Golay
code, it follows from [2, p85] that the systematic
generator matrix G can be expressed as follows:
HighSpeedDecodingoftheBinaryGolayCode,H.P.Leeetal./331337
10 10 1 1 10 0 0 1
1 1 1 1 10 0 1 0 0 1
1 1 0 1 0 0 10 10 1
1 1 0 0 0 1 1 1 0 1 1
1 1 0 0 1 1 0 1 10 0
0 1 1 0 0 1 1 0 1 1 0 I12
,
0 0 1 1 0 0 1
10 1 1
10 1 1 0 1 1 1 10 0
0 1 0 1 1 0 1 1 1 1 0
0 0 1 0 1 1 0 1 1 1 1
10 1 1 10 0 0 1 1 0
0 1 0 1 1 1 0 0 0 1 1
12 u 23
mG
(6)
>I
T
11 P 11u 23
(7)
(8)
(9)
(10)
23
1 i
= 2,047
JournalofAppliedResearchandTechnology
333
HighSpeedDecodingoftheBinaryGolayCode,H.P.Leeetal./331337
2
Therefore, the LTDA needs ti 11 23
276
i 1 23i
i
syndromes and their corresponding error patterns;
that is, the FLT needs 276 u (2 + 3) = 1,380 bytes
memory size. Nevertheless, the memory size of the
FLT is still large and the simulation result shows that
the average decoding time of the proposed MSDA
is about 10.6 times faster that the LTDA. To develop
the following TLDAs, Theorem 3 is useful to reduce
the memory size of the FLT. The well-known SDA
with RSLT [2, p119] has the following useful
theorem of the cyclic codes to dramatically reduce
the memory size of the FLT. For more detailed proof
of this theorem, see [2, p118].
334
Vol.11,June2013
Syndrome
s1 = (01011100011)
s2 = (10111000110)
s3 = (00101101111)
s4 = (01011011110)
s5 = (10110111100)
s6 = (00110011011)
s7 = (01100110110)
s8 = (11001101100)
s9 = (11000111011)
s10 = (11010010101)
s11 = (11111001001)
s12 = (10101110001)
(i)
w(sp) = w(ep);
(ii)
(iii)
HighSpeedDecodingoftheBinaryGolayCode,H.P.Leeetal./331337
(5)
(6)
(7)
(8)
(11)
For 1 d i 12, compute the syndrome sdi
(11)
(11)
( sdi
go to step 13.
(10) Compute r = r 1 and s = s s1.
(11) For 2 d i 12, compute the syndrome sdi =
s si and its weight w(sdi).
(12) If w(sdi) = 1, then return c = r (sdi << 12)
(1 << (i 1)).
(13) Stop.
An example is given below. By (6), a message
vector m = (100000000000) is encoded into a
binary
systematic
Golay
code
c
=
(10101110001100000000000). Assume that a
noise vector is e = (00010000000000010000001),
then the received word becomes r = c + e =
(10111110001100010000001).
The
decoding
steps proceed as follows:
(1)
(1)
(2)
The
received
vector
is
(10111110001100010000001).
(2)
(3)
(4)
(3)
(4)
JournalofAppliedResearchandTechnology
335
HighSpeedDecodingoftheBinaryGolayCode,H.P.Leeetal./331337
(5)
(4)
(5)
(6)
(7)
(8)
(11)
For i = 1, compute the syndrome sd1 =
(11)
(9)
(11)
(11)
For i = 12, compute the syndrome sd12 =
(11)
(11)
w( sd12 )
(9)
= 5.
(11)
(10) Compute
r
=
r
1
=
(10111110001100010000000) and s = s
s1 = (11011101100).
(11) For i = 2, compute the syndrome sd2 = s s2
= (01100101010) and its weight w(sd2) = 5.
(12) Given that w(sd2) > 1, go to step 11.
repeating steps 11 and 12
(11)
(13) For i = 8, compute the syndrome sd8 = s s8
= (00010000000) and its weight w(sd8) = 1.
(14) If w(sd8) = 1, then return the correct
(12)
codeword c = r1 (sd8 << 12) (1 << (i
1)) = (10111110001100010000000)
(00010000000000000000000)
(10000000) = (10101110001100000000000).
Go to step 13.
(15) Stop.
(13)
336
Vol.11,June2013
were
Number of errors
Algorithms
vectors,
w( sd1 ) = 7.
received
Proposed
MSDA
SDA with
RSLT
FLTDA
with table
SWDA with
RLT
Improved
EDA
Average
0.3396
0.4228
0.6364
0.6038
0.7332
0.8612
0.8876
0.8705
0.1774
0.1813
7.406
6.419
4.651
5.957
7.551
7.321
16.32
27.25
27.33
26.86
HighSpeedDecodingoftheBinaryGolayCode,H.P.Leeetal./331337
References
[1] M. Golay, Notes on digital coding, Proc. IRE, vol. 37,
p. 657, 1949.
[2] S. Wicker, "Error Control Systems for Digital
Communication and Storage, Prentice Hall: Upper
Saddle River, NJ, 1995.
[3] M. Elia, Algebraic decoding of the (23, 12, 7) Golay
code, IEEE Trans Inf Theory, vol. 33, no. 1, pp. 150151, 1987.
[4] I. S. Reed et al., Decoding the (24, 12, 8) Golay code,
IEE P-COMPUT DIG T, vol. 137, no. 3, pp. 202-206, 1990.
[5] Y. H. Chen et al., Algebraic decoding of quadratic
residue codes using Berlekamp-Massey algorithm, J Inf
Sci Eng, vol. 23, no. 1, 2007, pp. 127-145.
[6] H. Chang et al., A weight method of decoding the (23,
12, 7) Golay code Using Reduced Lookup Table, 2008
International Conference On Communication, Circuits and
Systems (ICCCAS 2008), Xiamen, China, 2008, pp. 1-5.
JournalofAppliedResearchandTechnology
337