# A History of Channel Coding in Aeronautical Mobile Telemetry and Deep-Space Telemetry
## 3 Deep-Space Telemetry
### Galileo
TMU-A remained unchanged from its original configuration shown in Figure 13.  
The addition of the longer convolutional on the orbiter initiated a hardware development effort to produce the corresponding decoder in the ground stations [63]. The decoder was a maximum-likelihood sequence detector using the Viterbi algorithm (VA) operating on a trellis with \(2^{14}=16384\) states. The new decoder was dubbed the \"Big Viterbi Decoder\" (BVD) [64; 65; 66]. The BVD was programmable to decode any code with a constraint length from 2 to 15 and rates 1/2, 1/3, 1/4, 1/5, or 1/6 [63]. (The author worked at JPL during the summer of 1994 on a NASA/ASEE Summer Faculty Fellowship. His work area was in a laboratory where his desk was next to the BVD prototype. A manager (who shall remain unmanned) commented, \"It is well-known JPL does software. It is well-known JPL does hardware. Now JPL does underwear.\", a pun on a popular product sold by the Fruit of the Loom company [67]). Equipped with the addition of the hardware encoder in TMU-B, _Galileo_ was launched in October 1989. In April of 1991, the command was sent to _Galileo_ to unfurl the high-gain antenna. The antenna failed to unfurl properly [59; 61]. This eliminated the use of high-gain antenna which, in turn, eliminated the use of X-band for the telemetry downlink. The only remaining communication link was through the low-gain antennas that operated only at the S-band. Once again, without changes, the telemetry downlink would have been limited to 10 b/s, severely compromising the scientific experiments that could be conducted. (The original plan, using the high-gain antenna at the X-band, could support 134.4 kbits/s). The response was a series of changes, called the \"_Galileo_ S-band mission\" that involved further upgrades to ground stations, advanced channel coding, and compression. The ground station upgrades included additional hardware upgrades and multi-site \"arraying\" [59] involving both inter-agency and international receiving sites. When receiving with only a single ground station antenna, the telemetry downlink was limited to about 10 bits/s. With arraying and improved channel coding (explained below), the telemetry downlink bit rate increased to the 40 bits/s-160 bits/s range. A new convolutional encoder, a modified Reed-Solomon encoder, and compression capabilities were added to the _Galileo_ TMU. As before, images were encoded using concatenated coding using a length-255 Reed-Solomon outer code and a convolutional inner code. But the convolutional code, the interleaver, and the the Reed-Solomon code were changed. A simplified block diagram of the _Galileo_ telemetry system is illustrated in Figure 15.  
Figure 14: A block diagram of the modified Galileo orbiter system completed before launch. Only TMU-B is shown. TMU-A remained unchanged from its original configuration shown in Figure 13. Simplified from [61]. The outer code was the \((255,k)\) Reed-Solomon code where \(k\) varied among four values in an 8-cycle pattern: \(k=161,245,225,245,195,245,225,245\). The reasons for this are explained below. The field generator for the Reed-Solomon code is given by (8). The code generator polynomials are a generalization of (9):  
\[G(X)=\prod_{j=128-t}^{127+t}(X-\alpha^{11j}),\quad t=\frac{n-k}{2} \tag{11}\]  
where \(\alpha^{11}\) is a primitive element in GF(28). The codewords were interleaved with depth eight and convolutionally encoded. Because the \((15,\
icefrac{{1}}{{4}})\) convolutional encoder in TMU-B could only operate at 115.2 or 134.4 kbits/s, it was unavailable to serve as the inner code for the Galileo S-band mission. Consequently, the inner code was changed to a \((14,\
icefrac{{1}}{{4}})\) code. Convolutional encoding was accomplished using the cascade of a \((11,\
icefrac{{1}}{{2}})\) convolutional encoder (in software, programmed into TMU-A) and the existing \((7,\
icefrac{{1}}{{2}})\) convolutional encoder in the TMU hardware. The polynomials that define the composite \((14,\
icefrac{{1}}{{4}})\) convolutional code are as follows [61]:  
\[