Page 260 - Anatomy of a Robot
P. 260
09_200256_CH09/Bergren 4/17/03 11:24 AM Page 245
COMMUNICATIONS 245
Another popular RS code is used in satellite video transmissions. The Digital Video
Broadcast-Satellite (DVB-S) standard has been standardized on MPEG2 video transmis-
sion using, among other codes, RS(204,188). This code appends 16 parity checksum bytes
to a data block of 188 bytes for a code expansion of about 8.5 percent. The RS(204,188)
polynomial enables up to eight different bytes to be corrected at the same time.
The following web sites and PDF file outline RS encoding and decoding:
www.4i2i.com/reed_solomon_codes.htm
www.siam.org/siamnews/mtc/mtc193.htm
http://web.usna.navy.mil/ wdj/reed-sol.htm
http://reedsolomon.tripod.com/rs-encode.c
www.elektrobit.co.uk/pdf/reedsolomon.pdf
For fun, go to www.mat.dtu.dk/people/T.Hoeholdt/DVD/index.html, which shows RS
corrections in real time in a very graphic manner. The web page displays an image, shows
graphically the amount of redundant data, enables us to introduce errors in the graphics
image using the mouse, and corrects the errors before our eyes. If too many errors are
introduced, the errors cannot be corrected. This illustrates the limits of block encoding.
RETRANSMISSION
If an error is detected, the receiver can send a NACK, or Negative Acknowledge, back
to the transmitter. This NACK message will request the retransmission of the faulty data
block. Some bidirectional communication protocols call for the receiver to transmit an
acknowledge (ACK) message to acknowledge the reception of every perfectly good data
block. If the communication channel imposes a significant delay on transmissions (such
as what might occur to a remote space probe’s robot), then sending an ACK (or NACK)
message for every data block is impractical. If the transmission protocol enables the
transmitter to transmit multiple blocks of data without receiving messages from the
receiver, then the transmitter must append an identifier to each data block sent.
The identifier is often just a sequential count sufficient to distinguish each data block
from its adjacent neighbors. The receiver, upon identifying a bad checksum, appends
the identifier of the bad block to the NACK message for that block. When the trans-
mitter receives the NACK message, it reassembles the data block that corresponds to
the identifier and retransmits it. The receiver must compute the checksum of the
received retransmission and accept the data block. Note that this will require both the
receiver and the transmitter to buffer (keep) multiple blocks of data in memory during
the transmission cycle.