Initially we are recognizing at least the following categories of errors:
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.
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.
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