# A History of Channel Coding in Aeronautical Mobile Telemetry and Deep-Space Telemetry
## 3 Deep-Space Telemetry
### The Story behind the Pioneer and Mariner Code Designs  
Readers new to the field of deep-space communications should keep in mind that the design cycles for deep-space communications are very long. Planning and design start long before launch. Following best practices, the final design is \"locked in\" for thorough testing and debugging years before launch. This is why advancements in coding, published well before the launch date, were sometimes unavailable to the designers. The first of the two codes designed was for _Mariner_ 6/7. At the time, it was well-known that what is now called \"soft decision decoding\" was the best way to maximize coding gain [31]. Consequently, the first codes considered for _Mariner_ 6/7 were convolutional codes. At the time, the only known soft decision decoder was the sequential decoding algorithm developed by [PERSON] [32]. Sequential decoding models the convolutional code output as a tree and pursues branches in the tree that it believes are viable candidates for the decoded sequence. It pursues good branches as long as the branch is deemed good. If a previously pursued branch turns out to be a bad branch, the algorithm must back up and evaluate a different branch. The number of computations (and, hence, the amount of time) required to make a decision is variable and it depends strongly on channel conditions. Figure 8: A block diagram of the concatenated coding system used for _Mariner_ 9. A prototype of Wozencraft's sequential decoder, instantiated in custom hardware, had been tested over the dial-up telephone channel at MIT Lincoln Labs. The results were not promising and did not provide convincing evidence that convolutional codes with sequential decoding were a viable option for deep-space communications [31]. Consequently, the _Mariner_ 6/7 team elected to use block codes. [PERSON]'s sequential decoding algorithm [22], which accomplishes sequential decoding with fewer computations, had not yet been developed. Had [PERSON]'s algorithm been available, it is possible the decision would have been different. During the _Mariner_ 6/7 design phase, there were few block codes with viable soft-decision decoding algorithms. Of the few codes available, the family of Reed-Muller codes was an attractive choice. The attraction was the simplicity of the encoder [27; 33] and the use of the Hadamard transform to simplify soft-decision decoding [33]. For these reasons, the Reed-Muller code described in Section 3.2 was selected. The _Pioneer_ 9 team started the design effort in the mid-1960s, _after_ the _Mariner_ 6/7 team. By this time, [PERSON]'s sequential decoding algorithm was known and it was believed that convolutional codes with sequential decoding were viable for space communications. Convolutional codes designed for sequential decoding have good column distance properties [34]. With such codes, different branches (i.e., code sequences) are (usually) quickly distinguishable at the beginning of the decoding process. An in-depth study by [PERSON] [18] identified a good candidate convolutional code for use on _Pioneer_ 9. The search was an extension of the design procedure published by [PERSON] and [PERSON] [35]. To bypass NASA's lengthy qualification process, the recommended code was to be installed in _Pioneer_ 9 as a \"telemetry coding experiment\" [24]. The search for codes was constrained as follows:  
1. The code had to possess a good column distance profile for the reasons outlined in the previous paragraph. 2. The code rate was \(1/2\). Lower code rates reduced the received coded \(E_{b}/N_{0}\) below the threshold where carrier phase and symbol timing synchronizers could operate. 3. The code had to be systematic because systematic codes possess the \"quick-look-in\" property described in Section 3.1. ([PERSON] and [PERSON] later showed that it is possible to construct non-systematic convolutional codes with the quick-look-in property [23]). 4. The constraint length was limited to 25. Due to the code's status as an experiment, no hardware version of the decoder was developed.