# A History of Channel Coding in Aeronautical Mobile Telemetry and Deep-Space Telemetry
## 3 Deep-Space Telemetry
### Voyager
The decoder input was the soft-decision output of the subcarrier PCM/PSK demodulator using 3-bit quantization [6]. The VA operated on a trellis with \(2^{6}=64\) states. The coded link achieved a bit error probability of \(5\times 10^{-5}\) at \(E_{b}/N_{0}=2.34\) dB. This code later became the NASA and CCSDS standard rate-\(1/2\) convolutional code [6; 50]. The standard code applies an inverter to \(c_{2}^{(n)}\) to increase the bit transition density in the case of a long string of all ones or all zeros at the encoder input [51]. The inverter does not change the distance properties of the code. A high bit transition density improves the performance of decision-directed bit synchronizers. The (24,12) Golay code was an extended version of the (23,12) Golay code. The (23,12) Golay code is a systematic cyclic code whose generator polynomial is [52]  
\[g(X)=X^{11}+X^{9}+X^{7}+X^{6}+X^{5}+X+1. \tag{7}\]  
The (23,12) Golay code has a minimum distance \(d_{\text{min}}=7\) and can correct \(t=3\) errors. To create the (14,12) Golay code, each 23-bit codeword was extended to 24 bits through the addition of a parity check bit. The extended Golay code has a minimum distance of 8 and, in addition to correcting 3-bit errors, can detect the presence of 4-bit errors. The decoder  
Figure 11: Coding procedures used for non-image telemetry data for _Voyager_ 1 and 2: (**a**) \((7,\
icefrac{{1}}{{2}})\) convolutional encoding; (**b**) concatenated coding using the (24,12) Golay code as the outer code and the \((7,\
icefrac{{1}}{{2}})\) convolutional code as the inner code; (**c**) concatenated coding using the (255,223) Reed–Solomon code as the outer and the \((7,\
icefrac{{1}}{{2}})\) convolutional code as the inner code. is based on the Berlekamp-Massey algorithm applied to the 23 bits corresponding to the codeword before extension [52]. The (255,223) Reed-Solomon code is a systematic code based on defined on GF(28), i.e., each code symbol is an 8-bit symbol. The field generator polynomial is [50]  
\[F(X)=X^{8}+X^{7}+X^{2}+X+1 \tag{8}\]  
over GF(2). The code generator polynomial is [50]  
\[G(X)=\prod_{j=112}^{144}(X-\alpha^{11j}) \tag{9}\]  
where \(\alpha^{11}\) is a primitive element in GF(28). The code has a minimum distance \(d_{\min}=33\) symbols, which gives it an error-correcting capability of \(t=16\) symbols. The interleaver is a block interleaver with 4 rows and 255 columns. The codewords are input into the block interleaver row-by-row and output column-by-column [6]. At the ground station, the deinterleaver reverses the procedure: the output bits from the Viterbi decoder are organized into 8-bit symbols and read into the interleaver column-by-column. The deinterleaver contents are read out row-by-row and applied to the Reed-Solomon decoder. The purpose of the deinterleaver is to account for the fact that decoding errors in the inner decoder produce error bursts in the decoder output. The error bursts can be several constraint lengths long [6]. Without interleaving several long error bursts can occur in a single Reed-Solomon codeword [53]. In such a case, the error burst can overwhelm the error-correcting capability of the Reed-Solomon code [54]. The interleaver distributes the error bursts produced by the inner decoder over multiple Reed-Solomon codewords. The interleaver, inner encoder, channel, inner decoder, and deinterleaver cascade tends to present to the outer decoder a discrete memoryless channel [6]; just what the Reed-Solomon code was designed for. This concatenated coding system was able to achieve a bit error probability of \(1\times 10^{-6}\) at \(E_{b}/N_{0}\) in the range of 2.5 to 3.0 dB. Because the achievable error rate was so low, lossless image compression was able to be applied to the image data encoded by the concatenated coded system [49].