rsdec
Reed-Solomon decoder
Syntax
decoded = rsdec(code,n,k)
decoded = rsdec(code,n,k,genpoly)
decoded = rsdec(...,paritypos
)
[decoded,cnumerr] = rsdec(...)
[decoded,cnumerr,ccode] = rsdec(...)
Description
decoded = rsdec(code,n,k)
attempts
to decode the received signal in code
using an
[n
,k
] Reed-Solomon decoding
process with the narrow-sense generator polynomial. code
is
a Galois
array of symbols having m bits each. Each n
-element
row of code
represents a corrupted systematic codeword,
where the parity symbols are at the end and the leftmost symbol is
the most significant symbol. n
is at most 2m-1.
If n
is not exactly 2m-1, rsdec
assumes
that code
is a corrupted version of a shortened
code.
In the Galois array decoded
, each row represents
the attempt at decoding the corresponding row in code
.
A decoding failure occurs if rsdec
detects
more than (n-k)/2
errors in a row of code
.
In this case, rsdec
forms the corresponding row
of decoded
by merely removing n-k
symbols
from the end of the row of code
.
decoded = rsdec(code,n,k,genpoly)
is
the same as the syntax above, except that a nonempty value of genpoly
specifies
the generator polynomial for the code. In this case, genpoly
is
a Galois row vector that lists the coefficients, in order of descending
powers, of the generator polynomial. The generator polynomial must
have degree n-k
. To use the default narrow-sense
generator polynomial, set genpoly
to []
.
decoded = rsdec(...,
specifies whether the parity symbols in paritypos
)code
were appended or
prepended to the message in the coding operation. paritypos
can be either 'end'
or 'beginning'
. The default is
'end'
. If paritypos
is
'beginning'
, a decoding failure causes rsdec
to remove n-k
symbols from the beginning rather than the end of the
row.
[decoded,cnumerr] = rsdec(...)
returns
a column vector cnumerr
, each element of which
is the number of corrected errors in the corresponding row of code
.
A value of -1
in cnumerr
indicates
a decoding failure in that row in code
.
[decoded,cnumerr,ccode] = rsdec(...)
returns ccode
,
the corrected version of code
. The Galois array ccode
has
the same format as code
. If a decoding failure
occurs in a certain row of code
, the corresponding
row in ccode
contains that row unchanged.
Examples
Limitations
n
and k
must differ by
an even integer. n
must be between 3 and 65535.
Algorithms
rsdec
uses the Berlekamp-Massey decoding
algorithm. For information about this algorithm, see the works listed
in References below.
References
[1] Wicker, S. B., Error Control Systems for Digital Communication and Storage, Upper Saddle River, NJ, Prentice Hall, 1995.
[2] Berlekamp, E. R., Algebraic Coding Theory, New York, McGraw-Hill, 1968.
Version History
Introduced before R2006a