7
votes

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
That Python module may not be correct because if you look on the web page, and follow the link to Phil Karn's page, the library that it is based on had a bugfix in 2007 but the Python module dates from 2005. - Michael Dillon
A bit late here, but the primitive element would be x+0 or hex 02. The first consecutive root of the generator polynomial would normally also be hex 02: (x-0x02)(x-0x04)(x-0x08)(x-0x10) , but it could be hex 01: (x-0x01)(x-0x02)(x-0x04)(x-0x08). For the unusual case of using a self-reciprocal generator polynomial, the first consecutive root would be (hex 02)^126 (raised to the 126 power): (x-0x66)(x-0xcc)(x-0x85)(x-0x17) . - rcgldr

1 Answers

9
votes

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 document.

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