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.
   255   256   257   258   259   260   261   262   263   264   265