Sunteți pe pagina 1din 6

18/02/12

reed-solomon codes

Reed-Solomon Code
An in od c ion o Reed-Solomon code : p inciple , a chi ec

e and implemen a ion

1. In od c ion
Reed-Solomon code a e block-ba ed e o co ec ing code i h a ide ange of applica ion in digi al
comm nica ion and o age. Reed-Solomon code a e ed o co ec e o in man
em incl ding:
S o age de ice (incl ding ape, Compac Di k, DVD, ba code , e c)
Wi ele o mobile comm nica ion (incl ding cell la elephone , mic o a e link , e c)
Sa elli e comm nica ion
Digi al ele i ion / DVB
High- peed modem ch a ADSL, DSL, e c.
A pical

em i ho n he e:

The Reed-Solomon encode ake a block of digi al da a and add e a " ed ndan " bi . E o occ
d ing an mi ion o o age fo a n mbe of ea on (fo e ample noi e o in e fe ence, c a che on a CD,
e c). The Reed-Solomon decode p oce e each block and a emp o co ec e o and eco e he
o iginal da a. The n mbe and pe of e o ha can be co ec ed depend on he cha ac e i ic of he
Reed-Solomon code.
2. P ope ie of Reed-Solomon code
Reed Solomon code a e a b e of BCH code and a e linea block code . A Reed-Solomon code i
pecified a RS(n,k) i h -bi mbol .
Thi mean ha he encode ake k da a mbol of bi each and add pa i
mbol o make an n
mbol code o d. The e a e n-k pa i
mbol of bi each. A Reed-Solomon decode can co ec p o
mbol ha con ain e o in a code o d, he e 2 = n-k.
The follo ing diag am ho a pical Reed-Solomon code o d ( hi i kno n a a S
beca e he da a i lef nchanged and he pa i
mbol a e appended):

ema ic code

E ample: A pop la Reed-Solomon code i RS(255,223) i h 8-bi mbol .


Each code o d con ain 255 code o d b e , of hich 223 b e a e da a and
32 b e a e pa i . Fo hi code:
www.cs.cmu.edu/ guyb/realworld/reedsolomon/reed_solomon_codes.html

1/6

18/02/12

reed-solomon codes

= 255,

= 223, = 8

2 = 32, = 16
The dec de ca c ec a 16
16 b e a
he e i he c de
Gi e a
F

e a

i e , he a i

e, he a i

Reed-S
e c de ,

c de

b e
i he c de
d: i.e. e
d ca be a
a ica c ec ed.

c de i n = 2s

d e g h ( ) f a Reed-S

e g h f a c de i h 8-bi

( =8) i 255 b e .

c de a be h e ed b (c ce a ) a i g a
be
a i i g he , a d he e-i e i g he a he dec de .

f da a

a he

E a e: The (255,223) c de de c ibed ab e ca be h e ed (200,168).


The e c de a e a b c f 168 da a b e , (c ce a ) add 55 e b e ,
c ea e a (255,223) c de d a d a i
he 168 da a b e a d 32
ai b e.
The a
f ce i g "
e " e i ed e c de a d dec de Reed-S
be f a i
b
e c de d. A a ge a e f ea ha a a ge
c ec ed b e i e
ec
ai a
e ha a a a e f .
S
O e

c de i e a ed
he
be f e
ca be

b E
b e

cc

he 1 bi i a

b i

he a he bi i a

b ae

g.

E a e: RS(255,223) ca c ec 16
b e
. I he
ca e, 16 bi
e
a cc , each i a e a a e
b (b e)
ha he dec de c ec
16 bi e
. I he be ca e, 16 c
eeb ee
cc
ha he dec de
c ec 16 8 bi e
.
Reed-S
c de a e a ic a
c de d a e ecei ed i e ).

i ed

ec i g b

( he e a e ie

f bi i he

Dec di g
Reed-S
a geb aic dec di g ced e ca c ec e
a d e a e . A e a e cc
he he
ii
f a e ed
b i
. A dec de ca c ec
e
2 ea e .Ea e
i f a i ca f e be
ied b he de d a i a digi a c
ica i
e , i.e. he de d a
"f ag " ecei ed
b
ha a e i e
c ai e
.
Whe a c de

d i dec ded, he e a e h ee

1. If 2 + < 2 ( e

, ea

e ) he he

ib e
igi a a

e:
i ed c de

d i a a

be ec e ed,

OTHERWISE
2. The dec de

i de ec ha i ca

ec e he

igi a c de

d a d i dica e hi fac .

OR
www.cs.cmu.edu/ guyb/realworld/reedsolomon/reed_solomon_codes.html

2/6

18/02/12

reed-solomon codes

3. The dec de
The

i -dec de a d ec e a i c

babii f each f he h ee
be a d di ib i
fe
.

ec c de

ibii ie de e d

d ih

i dica i .

he a ic a Reed-S

c de a d

he

C di g Gai
The ad a age f i g Reed-S
i ( a ) ch
e ha he
a coding gain.

c de i ha he
babii
babii f a e
if Reed-S

fa e
i

e ai i g i he dec ded da a
ed. Thi i f e de c ibed

E a e: A digi a c
ica i
e i de ig ed
e a e a a Bi E
Ra i (BER) f 10-9, i.e.
e ha 1 i 109 bi a e ecei ed i e . Thi ca
be achie ed b b
i g he
e f he a i e o b addi g Reed-S
( a he
e fF
adE
C ec i ). Reed-S
a
he
e
achie e hi a ge BER i h a
e a i e
e . The
e
" a i g" gi e b Reed-S
(i decibe ) i he coding gain.
3. A chi ec
Reed-S

e fo encoding and decoding Reed-Solomon code


e c di g a d dec di g ca be ca ied

f ae

ecia -

e ha d a e.

Fi i e (Ga i ) Fie d A i h e ic
Reed-S
c de a e ba ed a ecia i a ea
fi i e fie d ha he
e ha a i h e ic e a i
fie d. A Reed-S
e c de
dec de eed
e i e ecia ha d a e
f aef ci
i
Ge e a

ia

A Reed-S
c de
di i ib e b he ge e a

a d he c de

f a he a ic
a Ga i fie d
fi i e fie d . A
(+,-, ,/ e c.) fie d e e e a a ha e a e i he
ca
he e a i h e ic e a i . The e e a i
e e .

d i ge e a ed i g a ecia
ia . A
ia . The ge e a f
f he ge e a

di c

c ed

a id c de d a e e ac
ia i :

i g:

c( ) = g( ).i( )
he e g( ) i he ge e a
efe ed a a i i i e e e e
Ea

e: Ge e a

3.1 Encode a chi ec


The 2t a i

ia , i( ) i he i f
f he fie d.

ai

b c , c( ) i a a id c de

da dai

f RS(255,249)

i a

e a ic Reed-S

www.cs.cmu.edu/ guyb/realworld/reedsolomon/reed_solomon_codes.html

c de

d a e gi e b :
3/6

18/02/12

reed-solomon codes

The follo ing diag am ho

an a chi ec e fo a

ema ic RS(255,249) encode :

Each of he 6 egi e hold a mbol (8 bi ). The a i hme ic ope a o ca


m l iplica ion on a comple e mbol.

o fini e field addi ion o

3.2 Decoder architecture


A gene al a chi ec e fo decoding Reed-Solomon code i ho n in he follo ing diag am.

Ke
( ) Recei ed code o d
Si
S nd ome
L( ) E o loca o pol nomial
Xi
Yi
c( )

E o loca ion
E o magni de
Reco e ed code o d
N mbe of e o

The ecei ed code o d ( ) i he o iginal ( an mi ed) code o d c( ) pl e o :


( ) = c( ) + e( )
A Reed-Solomon decode a emp o iden if he po i ion and magni de of p o e o (o 2 e a
and o co ec he e o o e a e .

e)

S nd ome Calc la ion


Thi i a imila calc la ion o pa i calc la ion. A Reed-Solomon code o d ha 2 s ndromes ha depend
www.cs.cmu.edu/ guyb/realworld/reedsolomon/reed_solomon_codes.html

4/6

18/02/12

reed-solomon codes

only on errors (not on the transmitted code word). The syndromes can be calculated by substituting the 2t
roots of the generator polynomial g(x) into r(x).
Finding the Symbol Error Locations
This involves solving simultaneous equations with t unknowns. Several fast algorithms are available to do this.
These algorithms take advantage of the special matrix structure of Reed-Solomon codes and greatly reduce
the computational effort required. In general two steps are involved:
Find an error locator polynomial
This can be done using the Berlekamp-Massey algorithm or Euclid s algorithm. Euclid s
algorithm tends to be more widely used in practice because it is easier to implement: however,
the Berlekamp-Massey algorithm tends to lead to more efficient hardware and software
implementations.
Find the roots of this polynomial
This is done using the Chien search algorithm.
Finding the Symbol Error Values
Again, this involves solving simultaneous equations with t unknowns. A widely-used fast algorithm is the
Forney algorithm.
4. Implementation of Reed-Solomon encoders and decoders
Hardware Implementation
A number of commercial hardware implementations exist. Many existing systems use "off-the-shelf" integrated
circuits that encode and decode Reed-Solomon codes. These ICs tend to support a certain amount of
programmability (for example, RS(255,k) where t = 1 to 16 symbols). A recent trend is towards VHDL or
Verilog designs (logic cores or intellectual propert cores). These have a number of advantages over
standard ICs. A logic core can be integrated with other VHDL or Verilog components and synthesized to an
FPGA (Field Programmable Gate Array) or ASIC (Application Specific Integrated Circuit) this enables
so-called "System on Chip" designs where multiple modules can be combined in a single IC. Depending on
production volumes, logic cores can often give significantly lower system costs than "standard" ICs. By using
logic cores, a designer avoids the potential need to do a "lifetime buy" of a Reed-Solomon IC.
Software Implementation
Until recently, software implementations in "real-time" required too much computational power for all but the
simplest of Reed-Solomon codes (i.e. codes with small values of t). The major difficulty in implementing
Reed-Solomon codes in software is that general purpose processors do not support Galois field arithmetic
operations. For example, to implement a Galois field multiply in software requires a test for 0, two log table
look-ups, modulo add and anti-log table look-up. However, careful design together with increases in
processor performance mean that software implementations can operate at relatively high data rates. The
following table gives some example benchmark figures on a 166MHz Pentium PC:

www.cs.cmu.edu/ guyb/realworld/reedsolomon/reed_solomon_codes.html

5/6

18/02/12

reed-solomon codes

Code

Data rate

RS(255,251)

12 Mbps

RS(255,239)

2.7 Mbps

RS(255,223)

1.1 Mbps

These data rates are for decoding onl : encoding is considerabl faster since it requires less computation.
5. F

he

eading

In this paper we have deliberatel avoided discussing the theor and implementation of Reed-Solomon codes
in detail. For more detail please see the following books:
1.Wicker, "Error Control S stems for Digital Communication and Storage", Prentice-Hall 1995
2. Lin and Costello, "Error Control Coding: Fundamentals and Applications", Prentice-Hall 1983
3. Clark and Cain, "Error Correction Coding for Digital Communications", Plenum 1988
4. Wilson, "Digital Modulation and Coding", Prentice-Hall 1996
6. Abo

he a ho

This paper was written b Mart n Rile and Iain Richardson. For more details about the authors click here.

Copyright

4i2i Communications Ltd 1996, 1997, 1998

www.cs.cmu.edu/ guyb/realworld/reedsolomon/reed_solomon_codes.html

6/6

S-ar putea să vă placă și