Forums

RTCA's reed-solomon logic or illogic.....

Started by Arash Partow July 14, 2004
Hi,

According to the RTCA's VDL mode specifications for 
reed-solomon (which btw is the same as the CCSDS), 
for messages less than NN (code length) padding of 0 
bytes has to be appiled.

The padding is not transmitted, however at the reciever 
it is reapplied, my question is that along with the padding 
not being transmitted so to are FEC symbols not being 
transmitted. 

according to the spec depending on how many data symbols there 
are only a certain number of FEC symbols will be tranmitted, 
however at the reciever end unlike the padding that is done, 
the FECs are said to be assumed as erasure positions.

Is it possible to give the FEC symbols as erasures?
If so how logical would that be?


The reed-solomon code is RS(249,255) GF(2^8) with the primitive 
polynomial:
 p(x) = 1x^8 + 1x^7 + 1x^2 + 1x^1 + 1

and a generator polynomial:  
 g(x) = 225 + 156x^1 + 176x^2 + 244x^3 + 186x^4 + 176x^5 + 0x^6 
 
 
 
Anyone with any theories? any ideas?





Arash Partow

__________________________________________________
Be one who knows what they don't know,
Instead of being one who knows not what they don't know,
Thinking they know everything about all things.
http://www.partow.net
Arash Partow wrote:

> Hi, > > According to the RTCA's VDL mode specifications for > reed-solomon (which btw is the same as the CCSDS), > for messages less than NN (code length) padding of 0 > bytes has to be appiled. > > The padding is not transmitted, however at the reciever > it is reapplied, my question is that along with the padding > not being transmitted so to are FEC symbols not being > transmitted. > > according to the spec depending on how many data symbols there > are only a certain number of FEC symbols will be tranmitted, > however at the reciever end unlike the padding that is done, > the FECs are said to be assumed as erasure positions. > > Is it possible to give the FEC symbols as erasures? > If so how logical would that be? > > > The reed-solomon code is RS(249,255) GF(2^8) with the primitive > polynomial: > p(x) = 1x^8 + 1x^7 + 1x^2 + 1x^1 + 1 > > and a generator polynomial: > g(x) = 225 + 156x^1 + 176x^2 + 244x^3 + 186x^4 + 176x^5 + 0x^6 > > > > Anyone with any theories? any ideas? > > > > > > Arash Partow >
An FEC decoder looks for a legal output signal that is the most similar to the input signal. So a '1' where a '1' should be builds confidence, a '1' where a '0' should be destroys it, and an erasure doesn't make any difference at all. I don't know the details of how it's done, but it makes intuitive sense and I do know that it can significantly increase your coding gain in some circumstances. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
arashp@hotmail.com (Arash Partow) wrote in message news:<dbac23c2.0407140336.23e118d5@posting.google.com>...
> Hi, > > According to the RTCA's VDL mode specifications for > reed-solomon (which btw is the same as the CCSDS), > for messages less than NN (code length) padding of 0 > bytes has to be appiled. > > The padding is not transmitted, however at the reciever > it is reapplied, my question is that along with the padding > not being transmitted so to are FEC symbols not being > transmitted. > > according to the spec depending on how many data symbols there > are only a certain number of FEC symbols will be tranmitted, > however at the reciever end unlike the padding that is done, > the FECs are said to be assumed as erasure positions. > > Is it possible to give the FEC symbols as erasures? > If so how logical would that be? > > > The reed-solomon code is RS(249,255) GF(2^8) with the primitive > polynomial: > p(x) = 1x^8 + 1x^7 + 1x^2 + 1x^1 + 1 > > and a generator polynomial: > g(x) = 225 + 156x^1 + 176x^2 + 244x^3 + 186x^4 + 176x^5 + 0x^6 > > > > Anyone with any theories? any ideas? > > > > > > Arash Partow > > __________________________________________________ > Be one who knows what they don't know, > Instead of being one who knows not what they don't know, > Thinking they know everything about all things. > http://www.partow.net
Hi, So, basically you have a (255,249) RS code, and you "puncture" the code, by making certain symbols zero. When you fix the symbols to zero, you reduce the rate of the code if you still send all the parity symbols along, which are 6 symbols for the (255,249) RS code. When you don't send some of the parity symbols (erase them), you can again increase the rate of the code. (rate = coding rate = k/n) I think, but please make sure of this, that this is to simplify the hardware implementation. Only one RS code needs to be implemented, and the length and coding rate can now be adjusted. Hope this helps a bit Jaco Versfeld (jaco underscore versfeld at ieee dot org)
arashp@hotmail.com (Arash Partow) wrote in message news:<dbac23c2.0407140336.23e118d5@posting.google.com>...
> Hi, > > According to the RTCA's VDL mode specifications for > reed-solomon (which btw is the same as the CCSDS), > for messages less than NN (code length) padding of 0 > bytes has to be appiled. > > The padding is not transmitted, however at the reciever > it is reapplied, my question is that along with the padding > not being transmitted so to are FEC symbols not being > transmitted. > > according to the spec depending on how many data symbols there > are only a certain number of FEC symbols will be tranmitted, > however at the reciever end unlike the padding that is done, > the FECs are said to be assumed as erasure positions. > > Is it possible to give the FEC symbols as erasures? > If so how logical would that be? > > > The reed-solomon code is RS(249,255) GF(2^8) with the primitive > polynomial: > p(x) = 1x^8 + 1x^7 + 1x^2 + 1x^1 + 1 > > and a generator polynomial: > g(x) = 225 + 156x^1 + 176x^2 + 244x^3 + 186x^4 + 176x^5 + 0x^6 > > > > Anyone with any theories? any ideas? > > > > > > Arash Partow > > __________________________________________________ > Be one who knows what they don't know, > Instead of being one who knows not what they don't know, > Thinking they know everything about all things. > http://www.partow.net
Hi! You may be talking of "Shortened" RS code. Say if you have RS(255,249), then you have 249 message symbols (k=249) and 255 code word symbols (n=255) with 255-249=6 parity symbols. If your message length is not exactly 249, then you can still use the same code over GF(2^8) by using shortening. In shortening, you simply omit the "Higher order symbols". Like if you have only 229 message symbols (k=229), then you can assume the 20 higher order symbols (249-229=20) as zeros(coefficients of X^248 to X^229 as 0's). Your message would then be a 228 degree polynomial as compared to actual 248 dergree for full message length of 249. Similarly, you will get 20 less code word symbols, and your codeword would be a 234 degree polynomial (235 symbols in total). So you will get a RS(235,229) code from a RS(255,249) code. Obviously, since the higher order symbols wrere 0's, you need not transmit them. I cant guess how you can replace the not-transmitted symbols as Erasures: You RS(255,249) can correct only upto 6 erasures (with no errors). So if you have not transmitted a lot of symbols (say even 10) then you cant flag them all as erasures on the receiver side and get the corerct decoding? Rider