0% found this document useful (0 votes)
23 views8 pages

TC10 4b MeggittDecoder

Classes

Uploaded by

Bharath TG
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views8 pages

TC10 4b MeggittDecoder

Classes

Uploaded by

Bharath TG
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

TC10 / 4b.

The Meggit decoder for cyclic codes


S. Xambó

Syndrome of the received vector (polynomial).


The Meggitt table
The Meggitt decoding algorithm
2

Syndromes
Let be the generating polynomial of a cyclic code of length
over . We want to implement the Meggitt decoder for . In this decod‐
er, a received vector ,…, is seen as a polynomial

and by definition the syndrome of , , is the remainder of the Eucli‐


dean division of by (in computational terms, remainder(y,g)).
The vectors with zero syndrome are, again by definition, the vectors of .
Proposition. We have the identity
.
Proof. By definition of , there exists such that
.
Multiplying by , and taking residue mod , we get the result.
3

Corollary. If we set and


, 1, … , 1,
then .

The Meggitt table


If we want to correct errors, where is not greater than the error‐
correcting capacity, then the Meggitt decoding scheme presupposes the
computation of a table of the syndromes of the error‐patterns of the
form , where and has degree 2 (or less)
and at most 1 non‐vanishing coefficients.

Example (Meggitt table of the binary Golay code). The binary Golay code
can be defined as the length 23 cyclic code generated by
1
4

and in this case, since the error‐correcting capacity is 3, the Meggitt table
can be encoded as follows:
# Meggitt table for the binary Golay code
n=23; R=0..(n-2);
g=x^11+x^9+x^7+x^6+x^5+x+1 : Zmod(2)[x];
# The table
E1=[remainder(x^(n-1),g) → x^(n-1)];
E2=[remainder(x^(n-1)+x^i,g) → x^(n-1)+x^i
with i in R];
E3=[remainder(x^(n-1)+x^i+x^j,g) → x^(n-1)+x^i+x^j
with (i,j) in (R,R) where j<i];
E=E1+E2+E3;
# Example
s=remainder(x^(n-1)+x^14+x^3,g) #
E(s) # → x^22+x^14+x^3
5

Thus we have that is 0 for all syndromes that do not coincide with
the syndrome of , or of for 0, . . . ,21, or of
for , 0,1, … ,21 and . Otherwise selects, among those po‐
lynomials, the one that has syndrome .

Example (Meggitt table of the ternary Golay code). The ternary Golay
code can be defined as the length 11 cyclic code generated by
2 2
and in this case, since the error‐correcting capacity is 2, the Meggitt table
can be defined as follows:
6

# Meggitt table for the binary Golay code


n=11; R=0..(n-2);
U={1,-1};
g=x^5+x^4-x^3+x^2+1 : Zmod(3)[x];
# The table
E1=[remainder(u*x^(n-1),g) → u*x^(n-1)
with u in U];
E2=[remainder(u*x^(n-1)+v*x^i,g)->u*x^(n-1)+v*x^i
with (i,u,v) in (R,U,U)];
E=E1+E2;

# Example
s=remainder(-x^(n-1)+x^5,g) #
E(s) # → 2*x^10+x^5
7

The Meggitt algorithm


If is the received vector (polynomial), the Meggitt algorithm goes as fol‐
lows:
1) Find the syndrome of .
2) If 0, return (we know is a code vector).
3) Otherwise compute, for 1,2, . . . , 1, the syndromes of
, and stop for the first 0 such that 0.
4) Return / .
Remark. The are computed recursively by and .
Remark. The in step 3 exists because the code is perfect.
8

# Meggitt decoder. We assume that g is known


meggitt(y):=
begin
local x=variable(g), s=remainder(y,g), j=0, e
if s==0 then say("Code vector "|y); return y end
while E(s)==0 do
j=j+1
s=remainder(x*s,g)
end
e=E(s)/x^j; say("Error pattern; "|e)
y=y-e
end;

You might also like