Jump to content

Forney algorithm

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Glrx (talk | contribs) at 19:16, 3 September 2011 (References: add doi). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The Forney algorithm (or Forney's algorithm) calculates the error values at known error locations. It is used as one of the steps in decoding BCH codes and Reed–Solomon codes (a subclass of BCH codes). George David Forney, Jr. developed the algorithm.[1]

Procedure

Need to introduce terminology and the setup...

Syndromes

Error location polynomial

The zeros of Λ(x) are X1-1, ... , Xν-1. The zeros are the reciprocals of the error locations .


Once the error locations are known, the next step is to determine the error values at those locations. The error values are then used to correct the received values at those locations to recover the original codeword.

In the more general case, the error weights can be determined by solving the linear system

. . .

However, there is a more efficient method known as the Forney algorithm, which is based on Lagrange interpolation. First calculate the error evaluator polynomial[2]

Then evaluate the error values:[2]

For a narrow-sense BCH codes, c = 1, so the expression simplifies to:

Formal derivative

Λ'(x) is the formal derivative of the error locator polynomical Λ(x):[2]


Derivation

Lagrange interpolation

Erasures

Modification to handle erasures

See also

References

  1. ^ Forney 1965
  2. ^ a b c Gill & unknown, p. 47
  • Forney, Jr., G. (October 1965), "On Decoding BCH Codes", IEEE Transactions on Information Theory, 11 (4): 549–557, doi:10.1109/TIT.1965.1053825
  • Gill, John (unknown), EE387 Notes #7, Handout #28 (PDF), Stanford University, pp. 42–45, retrieved April 21, 2010 {{citation}}: Check date values in: |year= (help)CS1 maint: year (link)
  • W. Wesley Peterson's book