views:

240

answers:

1

I've got a sequence of 28 bytes, which are supposedly encoded with a Reed-Solomon (28, 24, 5) code. The RS code uses 8-bit symbols and operates in GF(28). The field generator polynomial is x8+x4+x3+x2+1. I'm looking for a simple way to decode this sequence, so I can tell if this sequence has errors.

I've tried the Python ReedSolomon module, but I'm not even sure how to configure the codec properly for my RS code (e.g. what's the first consecutive root of the field generator polynomial, what's the primitive element). I also had a look at Schifra, but I couldn't even compile it on my Mac.

I don't care too much about the platform (e.g. Python, C, Scilab) as long as it is free.

+1  A: 

I successfully built an embedded data comms project that used Reed Solomon error correction a few years ago. I just had a look at it to refresh my memory, and I found that I used a fairly lightweight, GPL licenced, C language subsystem published by a well known guy named Phil Karn to do the encoding and decoding. It's only a few hundred lines of code, but it's pretty intense stuff. However I found I didn't need to understand the math to use the code.

Googling Phil Karn Reed Solomon got me this;

[http://www.piclist.com/tecHREF/method/error/rs-gp-pk-uoh-199609/index.htm%5D%5B1%5D

Which looks like a decent place to start. Hope this helps.

Bill Forster
Looks good, I'll give it a try. Many thanks!
geschema
Understanding the math is easy compared to reading that code. Lots of people have used it so I'm fairly certain it works, and if it solves your problem go for it. If you think you need to change any of the code, you should probably write your own RS library. It's the only way you'd get the education you need to have a prayer of understanding Karn's terse C code well enough to alter it.
Dan Hook