Can someone please explain how to define parameters for Reed-Solomon decoder correctly in GNU Radio? I have already looked at ETSI EN 300 744 Clause 4.3.2 , but it does not explain how to choose parameters for use cases which are not RS(204,188) or RS (255,239).

I have signal which I know is RS(255,223) encoded. If I understand correctly input parameters for Reed-Solomon Decoder should be

  • N = 255
  • K = 223
  • t = 16

But how should I choose p, m , GF polynomial, Shortening size, Blocks values? And Vector to stream/stream to vector num items before/after RSD? Thanks!


1 Answer 1


I know very little about GnuRadio (and your ETSI EN 300 744 link is broken) but typically $16$-error-correcting RS$(255,223)$ codes are what are called NASA Standard or JTIDS (Joint Tactical Information Distribution System) RS codes over the field GF$(2^8)$ (thus, $p=2, m=8)$ and use a specific degree-8 binary primitive polynomial to construct the field, and no, it is not the first one listed in any table of degree-8 binary primitive polynomials that I have seen; the polynomial was specifically chosen because the hardware decoder that was being developed for the code needed the smallest number of transistors for implementation in the technology of the early 1970s when that specific polynomial was being used. Remember that the choice of polynomial affects the design of the Galois field multiplier(s) needed. There is, of course, no reason to believe that all of the above was followed in the encoder that generated the OP's codeword. The codeword might well been generated whatever GnuRadio has implemented as its version of a RS$(255,223)$ encoder.

There is no shortening involved; I have no idea what is meant by "blocks values" and the vector stuff


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.