5 Error Mechanisms

Contents of this section

Initially we are recognizing at least the following categories of errors:

  1. Bit errors.
    1. Expected Bit Error Rate (BER) is at maximum 10E-5 (especially at AOS and LOS), typically 10E-8, at its best 10E-12.
    2. Do the errors come in bursts or as noise, single bits every now and then?
    3. If the errors come in bursts, what is the typical burst length?
  2. Extra/missing clocks. (Equivalent to wrong frame lengths.)
  3. Sync word errors. (Missing, extra, bit errors in sync.)

If we assume a frame size of 1000--2500bytes, BER of 10E-5 would mean one or two errors per each frame. This would dictate the use of an error-correcting encoding such as Reed-Solomon.

The ``stable state'' of the HRDL link is a continuous stream of frames. Thus it will be sensible to optimize sync word detection for this case, namely that the next sync word immediately follows the end of previous frame.

It is not advisable to re-trigger frame start if the sync word pattern occurs within the fixed-length data part of the frame.

To fight extra/missing clocks, all data except the sync words are modulated with a pseudo-random bit sequence described in CCSDS telemetry standard. This ensures that the data stream contains enough bit transitions regardless if the original stream is biased towards 0 or 1 bits or if it already is ``random'' data.

5.1 Error Detection

A straightforward way to detect errors in frames would be to use checksums, for instance CRC checksums. These cannot naturally guarantee that all errors are being detected, and they can be considered superficial in the presence of error-correcting codes such as Reed-Solomon. However, they are lighweight to compute and thus they are more useful during data capture than full-fledged error correction algorithms. This allows real-time data quality indicators to be calculated while data is being captured.

5.2 Error Correction

The Ku-band Signal Processor (KUSP) apparently prevents us from effectively applying enhanced bit-level encoding such as convolutional encoding. Viterbi decoding of such a transmission would ideally require multiple signal levels to be present. At the moment we are assuming that KUSP does its best to deliver us the raw bit stream in unaltered form.

Reed-Solomon encoding can be applied to all data bits of frames. We are unsure if encoding can be done in software in on-board computer or if chips like Matra MA1916 or LSI Logic L6471x need to be used.

A publicly-available software implementation of (249, 255) Reed-Solomon encoder/decoder is available as a part of Free Software Foundation GNU software library, for instance ftp://ftp.funet.fi/pub/mirrors/prep.ai.mit.edu/pub/gnu/ecc-1.3.5.tar.gz . It can recover from a maximum of 3 errors per one 255 byte block. Unfortunately (249, 255) encoding is different from the (235, 255) (or 233,255?) encoding presented in CCSDS materials.

Next Chapter, Previous Chapter

Table of contents of this chapter, General table of contents

Top of the document, Beginning of this Chapter