Page 267 - Anatomy of a Robot
P. 267
09_200256_CH09/Bergren 4/17/03 11:24 AM Page 252
252 CHAPTER NINE
finished with its job, all the channel noise has been turned into digitized noise,
data with some errors in it. The random noise from the channel is shown
unchanged after demodulation.
Convolutional decoder The convolutional decoder tends to gather errors
together and correct them. When it fails, it lets through a burst of errors. By and
large, it tends to gather errors together in time. This is a most useful function
because it will make the output of the deinterleaver very predictable. The noise is
shown gathered into bursts after the convolutional decoder.
Deinterleaver The deinterleaver takes the bursts of errors that come out of the
convolutional decoder and spreads them out evenly in time. This sets them all up
individually to be picked off by the RS decoder and corrected. The noise is shown
spread out into a regular pattern after the deinterleaver.
RS decoder The RS decoder, as discussed previously, is capable of correcting
multiple byte errors in a block of data. Most concatenated codes are constructed
in such a way that the burst of errors coming out of the convolutional decoder does
not, in general, contain more bytes than the RS decoder is capable of correcting.
The noise is shown completely corrected after the RS decoder. This finished the
stated goal of showing how the concatenated codes work. In practice, of course,
some noise always gets through.
MPEG decompressor The MPEG decompressor does not add any errors to the
data stream.
DVB concatenated codes are covered further at www.csee.wvu.edu/ mvalenti/
documents/milcom00.ppt. Such codes are used in the transmission of video data over
satellite links.
CONVOLUTIONAL CODES
Convolutional codes increase the amount of data redundancy in a data stream. The
decoders have memory within them and delay the output of data for a short while.
Redundant data can be added in a couple of different ways.
Expanding the Bandwidth
Certainly, redundant data can simply be added to the existing data. If this is done, then
extra bandwidth is required to transmit the extra data. We can illustrate this describing
Viterbi codes.
Viterbi Encoder (in the Transmitter) When we can expand the bandwidth, Viterbi
codes specify a state machine that has the unexpanded data as an input. The state